ffmpeg使用NVIDIA显卡CUDA硬件加速转码命令行

ffmpeg调用CUDA硬件加速转码的代码。自用备份。

-hide_banner用来隐藏构建信息,就是输入ffmpeg直接回车后出来的一大堆参数

音频编码直接拷贝,根据实际情况修改。

对于画质要求不那么高的情况下,使用显卡加速可以大大提升转码效率。

在低码率(小于10MB/s)的视频里,还是用CPU编码(x264)画质更好。(个人看法。其实有人分析过这个问题,可自行搜索参考资料)

h264编码:

ffmpeg -hwaccel cuda -hide_banner -i input.mp4 -c:v h264_nvenc -preset p5 -cq 30 -c:a copy output.mp4

h265 (HEVC)编码:

ffmpeg -hwaccel cuda -hide_banner -i input.mp4 -c:v hevc_nvenc -preset p5 -cq 30 -c:a copy output.mp4

如果提示“No decoder surfaces left”,需要加上 -extra_hw_frames参数:

ffmpeg -hwaccel cuda -hide_banner -extra_hw_frames 5 -i input.mp4 -c:v h264_nvenc -preset p6 -cq 30 -c:a copy output.mp4

一般设为5即可,如果还是提示错误,改成6,7,8……挨个尝试。 

Preset参数说明:

     p1              12           E..V....... fastest (lowest quality)
     p2              13           E..V....... faster (lower quality)
     p3              14           E..V....... fast (low quality)
     p4              15           E..V....... medium (default)
     p5              16           E..V....... slow (good quality)
     p6              17           E..V....... slower (better quality)
     p7              18           E..V....... slowest (best quality)
 

你可能感兴趣的:(ffmpeg)