安装
5.1安装
https://blog.csdn.net/JineD/article/details/113528285
3.4.8安装
https://blog.csdn.net/qq_42528520/article/details/120487457
编码格式
ffmpeg能转很多的视频格式,不同的格式对应的版本也不一样。如上述安装5.1和3.4.8都是一样的流程,但5.1中转h264格式会报错,找不到对应的设备,就需要安装3.4.8的低版本才行。
编码格式
执行命令ffmpeg -i {video_path} -vcodec h264 {h264_video_path}
可能报错:Cannot load libnvcuvid.so.1 Cannot load libnvidia-encode.so.1 [h264_nvenc @ 0x17f6270] Cannot load libnvidia-encode.so.1 [h264_nvenc @ 0x17f6270] The minimum required Nvidia driver for nvenc is 445.87 or newer Error initializing output stream 0:0 – Error while opening encoder for output stream #0:0 - maybe incorrect parameters such as bit_rate, rate, width or height
解决方案:
因为docker容器内没有这两个文件,经过我查找发现,在宿主机中有,我们需要拷贝今容器内,然后再作一个软连接。在这些目录下查找上述文件 /usr/lib/x86_64-linux-gnu 和 /usr/lib/x86_64-linux-gnu我们ll命令文件,找到原始文件,
libnvcuvid.so.440.100
libnvidia-encode.so.440.100
后面的尾号可能不一样,它是显卡驱动版本号,
我们把这个拷贝到docker中,然后软连接宿主机
/usr/lib/x86_64-linux-gnu/libnvcuvid.so.440.100
/usr/lib/x86_64-linux-gnu/libnvidia-encode.so.440.100
拷贝到docker这里
/lib64/libnvcuvid.so.440.100
/lib64/libnvidia-encode.so.440.100
docker内软连接
ln -s /lib64/libnvcuvid.so.440.100 /lib64/libnvcuvid.so.1
ln -s /lib64/libnvidia-encode.so.440.100 /lib64/libnvidia-encode.so.1
然后vi /etc/ld.so.conf
添加软连接路径 /lib64
更新 ldconfig
最后再次测试GPU视频编解码
参考:https://blog.csdn.net/sunt2018/article/details/107483599