此命令对我而言适用于 h264 编解码器。
ffmpeg -i a.mp4 -c:v libx264 -maxrate 800k -bufsize 800k -ar 48k -ab 192k b.mp4
但是,如果该命令中的 libx265 不是 libx264,则输出结果与没有 maxrate 和 bufsize 参数时完全相同。就好像 h265 忽略了这些参数。是这样吗,还是有其他原因导致此方法无法正常工作?
更新:
我将 libx265 改为 hevc_nvenc。现在,它似乎可以正确处理 maxrate 和 bufsize,但不能处理 b:v。相比之下,libx265 可以处理 b:v,但不能处理上述 maxrate 和 bufsize!
更新 2:FFmpeg 的 x265 包装器已更新,现在终于能够获取 libavcodec 的 bufsize 和 maxrate。
答案1
FFmpeg 的 x265 包装器不会拾取 libavcodec 的 bufsize 和 maxrate,因此目前,您可以私下传递它。
ffmpeg -i a.mp4 -c:v libx265 -x265-params "vbv-maxrate=800:vbv-bufsize=800" ...
单位是千比特,不同于以比特为单位的 libavcodec。
一旦包装器选取通用选项,我就会更新此帖子。