FFmpeg 用显卡解码编码
先看看当前 ffmpeg 支持那些编解码器。
ffmpeg -codecs
DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (decoders: h264 h264_qsv h264_cuvid) (encoders: libx264 libx264rgb h264_amf h264_mf h264_nvenc h264_qsv)
DEV.L. hevc H.265 / HEVC (High Efficiency Video Coding) (decoders: hevc hevc_qsv hevc_cuvid) (encoders: libx265 hevc_amf hevc_mf hevc_nvenc hevc_qsv)
这个命令自动选择硬件解码器。用Nvdia显卡转为 H265, 分辨率不变,音频转换为 AAC 128Kbps,质量参数 31 。ffmpeg -y -hwaccel auto -hwaccel_output_format auto -i "%%~f" -c:v hevc_nvenc -c:a aac -b:a 128k -cq 31
H264 转 H264 720P,编码和解码都用 Nvdia 独立显卡。音频编码 AAC 128Kbps, 质量参数 35。高度限制为720P。ffmpeg -c:v h264_cuvid -i 源文件.mp4 -c:v h264_nvenc -filter:v scale=-1:720 -c:a aac -b:a 128k -cq 35 转码后.mp4
H264 转 H265,分辨率不变,编码和解码都用 Nvdia 独立显卡,音频编码 AAC 128Kbps,质量参数 31。ffmpeg -c:v h264_cuvid -i 源文件.mp4 -c:v hevc_nvenc -c:a aac -b:a 128k -cq 31 转码后.mp4
可以看到 CPU 没怎么用,GPU 占满了。GTX 1650S 转码 1080P 的速度大约 380 fps。
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。