将 mkv 转换为 h264 FFmpeg

Converting mkv to h264 FFmpeg

编辑: 这个问题已经变得非常流行,并且是搜索“convert mkv to h264 ffmpeg”的最佳结果之一,因此我觉得添加这个问题是合适的,因为任何绊倒这个问题的人都可以使用

ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4

因为 libvo_aacenc 已在最新版本的 FFmpeg 中删除,它现在具有原生 aac 编码器。欲了解更多信息,请访问 the FFmpeg wiki page 编码 AAC。

原题如下:

我想使用 FFmpeg 将我的 .mkv 文件转换为 .mp4。我试过以下代码:

ffmpeg -i input.mkv -c:v libx264 -c:a libvo_aacenc output.mp4

但我收到错误:

Error while opening encoder for output stream #0:1 - maybe incorrect parameters such as bit_rate, rate, width or height.

有什么办法可以解决这个问题吗?我已经尝试设置音频的比特率,但问题似乎仍然存在。

我建议您首先检查您的.mkv 文件是否已经有H.264/AAC 流。因为如果是这样,您所要做的就是复制流并更改容器:

ffmpeg -i input.mkv -c copy output.mp4

如果没有,您可能被拒绝了,因为您的格式与 .mp4 不兼容。尝试以下操作输出 H.264/AAC:

ffmpeg -i input.mkv -c:v libx264 -c:a aac output.mp4

但同样,如果您的 .mkv 已经包含 H.264/AAC,请使用第一个解决方案。速度会更快,质量也会更好。

作为 ffmpeg 的替代品,您可以使用 HandBrakeCLI,例如:

HandBrakeCLI --encoder "x264" --quality 25.0 --aencoder "copy:aac" --audio-fallback "av_aac" --all-audio --all-subtitles -i "input.mkv" -o "output.mkv"

HandBrakeCLI 是 handbrake-cli 包的一部分。

参数解释见HandBrakeCLI --help或https://handbrake.fr/docs/en/latest/cli/command-line-reference.html