FFmpeg使用GPU编解码
- 本文内容只针对
NVIDIA
的GPU
网络上面有一些教程需要重新编译FFmpeg
,经过我的实验,直接使用软件包管理器安装的FFmpeg
也可以直接使用GPU
加速。
请提前安装CUDA
查看支持的编解码器:
1 | ffmpeg -codecs | grep cuvid |
转码命令:
1 | ffmpeg -hwaccel cuvid -c:v 解码器 -i "input.mkv" -c:v 编码器 "output.mkv" |
如果编解码器都在GPU
上,则添加-hwaccel cuvid
可以防止解码后的数据在主机和设备之间移动,如果使用GPU
解码、使用CPU
编码,则不需要添加这一个参数。
例如使用h264_cuvid
解码再用h264_nvenc
编码:
1 | ffmpeg -hwaccel cuvid -c:v h264_cuvid -i "input.mkv" -c:v h264_nvenc "output.mkv" |
例如使用hevc_cuvid
解码再用hevc
(在CPU
上)编码:
1 | ffmpeg -c:v hevc_cuvid -i "input.mkv" -c:v hevc "output.mkv" |
参考
https://yukihane.work/li-gong/ffmpeg-with-gpu
https://blog.csdn.net/zengraoli/article/details/119789655
https://www.jianshu.com/p/01dcd43ac4ed
https://developer.nvidia.com/zh-cn/blog/nvidia-ffmpeg-transcoding-guide/