nvidia显卡开启gstreamer的自动硬解

Totem,mplayer,sopcast,realplayer,bmp
回复
头像
flwwater
帖子: 613
注册时间: 2010-10-31 9:15
系统: kubuntu 21.10
送出感谢: 1 次
接收感谢: 21 次

nvidia显卡开启gstreamer的自动硬解

#1

帖子 flwwater » 2021-11-24 9:20

有Nivida显卡的用户,装了gstreamer之后,可能还是用的软解,其实是因为libav这个库的优先级比nvcode要高,幸好1.18版gstreamer提供了设置环境变量供用户选择。
1:首先用gstreamer自带的命令gst-inspect-1.0查看你目前装的编解码器,找到nvcodec开头的,这个是nvidia显卡支持硬解的编解码器。
nvcodec: nvmpegvideodec: NVDEC mpegvideo Video Decoder
nvcodec: nvmpeg2videodec: NVDEC mpeg2video Video Decoder
nvcodec: nvmpeg4videodec: NVDEC mpeg4video Video Decoder
nvcodec: nvh264sldec: NVDEC H.264 Stateless Decoder
nvcodec: nvh264dec: NVDEC h264 Video Decoder
nvcodec: nvjpegdec: NVDEC jpeg Video Decoder
nvcodec: nvh265sldec: NVDEC H.265 Stateless Decoder
nvcodec: nvh265dec: NVDEC h265 Video Decoder
nvcodec: nvvp8dec: NVDEC vp8 Video Decoder
nvcodec: nvvp9dec: NVDEC vp9 Video Decoder
nvcodec: nvh264enc: NVENC H.264 Video Encoder
nvcodec: nvh265enc: NVENC HEVC Video Encoder

2:在输出里再次找到libav开头的,因为上面的nvcodec列出了nvh264dec,vh265dec,nvvp9dec这些,那么在libav里找关于h264,h265,vp9相关的解码器,名字记录下来,例如:
libav: avdec_h265: libav HEVC (High Efficiency Video Coding) decoder
libav: avdec_h264: libav H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 decoder
libav: avdec_vp9: libav Google VP9 decoder

3:gstreamer支持的环境变量名是GST_PLUGIN_FEATURE_RANK
4:打开/etc/environment文件,在最后一行新增一行,输入:export GST_PLUGIN_FEATURE_RANK=nvcodec:256,nvh264dec:256,nvh265dec:256,nvvp9dec:256,nvvp8dec:256,avdec_h265:128,avdec_h264:128,avdec_vp9:128,avdec_vp8:128,avdec_av1:0,av1dec:0
5:可以用echo $GST_PLUGIN_FEATURE_RANK命令查看确认。

注:GST_PLUGIN_FEATURE_RANK支持的最高的优先级是256, 最低为0, 0表示禁用。想要软解的把它设为128这个中间值即可。
个人收藏的古风音乐:
https://url17.ctfile.com/d/15983117-44661221-77a33e
(访问密码:6220
回复