10

编辑:这个问题已经变得非常流行,并且是搜索“将 mkv 转换为 h264 ffmpeg”的最佳结果之一,因此我觉得添加这个对于任何偶然发现这个问题的人来说是合适的,而不是使用

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

libvo_aacenc在最新版本的 FFmpeg 中删除,现在它具有原生 aac 编码器。有关更多信息,请访问FFmpeg wiki 页面以编码 AAC。

这是原始问题:

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

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

但我得到了错误:

打开输出流 #0:1 的编码器时出错 - 可能是不正确的参数,例如 bit_rate、速率、宽度或高度。

有没有办法解决这个问题?我尝试设置音频的比特率,但问题似乎仍然存在。

4

2 回答 2

20

我建议你首先检查你的 .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,请使用第一个解决方案。它会更快,质量也会更好。

于 2015-06-20T13:33:55.463 回答
1

作为 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

于 2020-05-11T16:40:44.203 回答