所以我对视频编码还很陌生,目前正在使用 FFmpeg 将视频编码从 H.265 更改为 H.264,以使其适合网络。
我正在运行的命令的当前语法是
ffmpeg -i input.mp4 -c:v libx264 -crf 51 -preset ultrafast -c:a aac output.mp4
我目前只是想让这种编码尽可能快地运行,但我不确定是否有任何其他标志或设置可以调整以使其运行得更快。
我也尝试过设置zerolatency
和fastdecode
调整以查看其如何影响它,但对速度没有太大影响。
据我所知,设置crf
值和ultrafast
预设基本上是我加快编码速度的选项,但是是否有任何其他标志或设置可以用来帮助加快速度?
答案1
显示的命令无法执行太多操作,但这里有一些“建议”:
流复制(重新混合)音频而不是通过更改为
-c:a aac
来重新编码-c:a copy
。看看硬件加速编码器例如 h264_nvenc 而不是 libx264 速度更快。
还要检查硬件解码器是否更快。
添加
-movflags +faststart
输出选项。这实际上会增加一点处理时间(与总时间相比),但可以让观众更快地开始观看视频。使用输出选项将视频缩放至一半大小
-vf scale=iw/2:-2
还有那个显而易见的强制性声明:使用更快的 CPU 或在多台机器上进行编码。
将其保留为 H.265 并仅支持 Android、Edge 和 Safari。如果您已经提供 VP9 (Webm),这不是一个糟糕的解决方案。那么只有 Internet Explorer 会缺失。