【问题标题】:Converting mkv to h264 FFmpeg将 mkv 转换为 h264 FFmpeg
【发布时间】:2015-09-03 02:33:50
【问题描述】:

编辑: 这个问题已经变得非常流行,并且是搜索“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

但我得到了错误:

为输出流 #0:1 打开编码器时出错 - 可能是比特率、速率、宽度或高度等参数不正确。

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

【问题讨论】:

标签: video ffmpeg mp4 h.264 mkv


【解决方案1】:

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

【讨论】:

  • 您可以使用-codec copy-c copy 代替-vcodec copy -acodec copy
  • 另外,如果您想使用 x264 进行编码,通常最好设置一些特定的编码设置(预设和一些速率/q 控制方法),请参阅trac.ffmpeg.org/wiki/Encode/H.264
【解决方案2】:

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

【讨论】:

  • 虽然最初的问题是它是如何使用 ffmpeg 完成的,但这是一个有效的答案,因为 HandBrake 确实使用 ffmpeg... 很好的解决方案,谢谢!
猜你喜欢
  • 1970-01-01
  • 2014-11-04
  • 1970-01-01
  • 2021-02-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-17
  • 1970-01-01
相关资源
最近更新 更多