ffmpeg的编译流程
1.下载ffmpeg源码,下载nv-codec-headers
2.编译和安装nv-codec-headers
https://gitee.com/crazyyuzcc/nv-codec-headers.git
3.编译ffmpeg
配置
Ubuntu下安装FFmpeg
代码语言:javascript复制sudo add-apt-repository ppa:kirillshkrogalev/ffmpeg-next
sudo apt-get update
sudo apt-get install ffmpeg
查看支持的编码器
ffmpeg -hwaccels
原因:FFmpeg编译时没有使用nv-codec-headers
解决办法:下载nv-codec-headers ,在nv-codec-headers目录下执行 make, make install。再次编译FFmpeg即可
问题
ERROR: cuvid requested, but not all dependencies are satisfied: cuda/ffnvcodec
ffmpeg使用GPU加速
根据nvidia给出的文档,建议使用如下命令
代码语言:javascript复制ffmpeg -y -vsync 0 -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:a copy -vf scale_npp=920:-2 -c:v h264_nvenc output.mp4
如果遇到报错”no such filter ‘scale_npp’ ffmpeg”,表示ffmpeg中没有scale_npp模块,需要重新编译ffmpeg。
很遗憾,我从rpmforge中安装的ffmpeg就是这样,只能用老参数了,性能会差一些。
代码语言:javascript复制ffmpeg -y -vsync 0 -hwaccel cuvid -c:v h264_cuvid -i input.mp4 -c:a copy -vf scale=920:-2 -c:v h264_nvenc output.mp4
GPU加速效果如下:
分辨率设置为860:-2
CPU模式转码fps 55-60 GPU模式转码fps 555-556
分辨率设置为920:-2
CPU模式转码fps 100-110 GPU模式转码fps 290-295
我的博客即将同步至腾讯云 社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=33a774wt5yqs0