ffmpeg 解码 程序(Linux下编译FFmpeg支持硬件编解码)
本次编译FFmpeg库需要使用到如下资源版本:
- 操作系统:Linux系统的Redhat7.6,64位
- CPU:I5处理器
- 英伟达显卡:GTX1050Ti ,驱动版本:NVIDIA- 510.73
- FFmpeg版本:4.1.3
- CUDA版本:11.0
- VideoCodecSDK版本 :9.0.18
打开链接地址:https://www.nvidia.com/drivers,进入英伟达官网选择显卡驱动型号后,下一步点击SEARCH,搜索驱动版本,如下:
搜索到最新的驱动版本,点击下载即可,如下:
经过漫长的等待下载之后,将安装包设置最高权限,然后就可以直接命令安装,如下:
Sudo chmod 777 nvidia-Linux-x86_64-510.73.run
./ NVIDIA-Linux-x86_64-510.73.run
安装之后通过命令查看是否安装成功,检查命令:nvidia-smi,如果有打印出驱动版本号则标识安装成功,输出如下结果:
查看集成显卡是否关闭,查看nouneau命令如下:lsmod | grep nouveau,如果没有输出内容就代表集成显卡已关闭。
另外如果想要卸载显卡驱动,可以使用卸载命令,卸载命令如下:
sh ./NVIDIA-Linux-x86_64-510.73.run --uninstall
安装CUDA安装完驱动之后可以得到需要cuda版本,打开链接地址:
https://developer.nvidia.com/cuda-downloads,选择目标系统平台下载,如下:
下载完成之后,就可以通过命令直接安装,如下:
./cuda_11.0.168_418.67_linux.run
安装完之后,需要查看是否安装成功,需要在root账户下输入命令nvcc -V,有出现CUDA版本号就表示成功。
安装Video Codec SDK下载ffnvcodec,要根据驱动版本和cuda版本下载对应的版本,下载链接地址:https://github.com/FFmpeg/nv-codec-headers,
下载完之后直接通过命令安装,如下:
cd nv-codec-headers-master/
make && make install
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig:$PKG_CONFIG_PATH
编译FFmpeg打开链接地址:http://www.ffmpeg.org/download.html,选择FFmpeg版本下载,如下:
下载完源码之后,进入源码目录,通过命令直接编译,如下:
cd ffmpeg-4.1.3/
./configure --enable-gpl --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-nonfree --extra-cflags="-I/usr/local/cuda-11.0/include" --extra-ldflags=-L/usr/local/cuda-11.0/lib64 --extra-cflags=-fPIC--enable-shared--enable-static --enable-nvenc --enable-nvdec --enable-cuda --enable-cuvid --enable-libnpp
make -j$(nproc) && make -j$(nproc) install
如果需要调试FFmpeg源码,可以设置debug=3,打开调试模块,如下:
cd ffmpeg-4.1.3/
./configure --enable-gpl --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libx264 --enable-nonfree --extra-cflags="-I/usr/local/cuda-11.0/include" --extra-ldflags=-L/usr/local/cuda-11.0/lib64 --extra-cflags=-fPIC --enable-shared --enable-static --enable-nvenc --enable-nvdec --enable-cuda --enable-cuvid --enable-libnpp --enable-debug=3 --disable-optimizations --disable-asm --disable-stripping
make -j$(nproc) && make -j$(nproc) install
编译完成之后设置FFmpeg库目录,如下:
Vi /etc/ld.so.conf.d/ffmpeg.conf
/usr/local/lib 最后一行加入
:wq 退出并保存vi编辑器
ldconfig 立即生效ffmpeg.conf
测试硬件编解码测试硬件编码,命令如下:
ffmpeg -i in.MP4 -c:v h264_nvenc -c:a aac out.mp4
测试硬件解码,命令如下:
ffmpeg -hwaccel nvdec -i in.mp4 out.yuv
,免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com