【问题标题】:ffmpeg to split mp4 file into segments... after first segment, audio unsyncedffmpeg 将 mp4 文件分割成段...在第一段之后,音频不同步
【发布时间】:2015-05-13 17:58:02
【问题描述】:

长期以来,我一直使用this question 中显示的 ffmpeg 命令行完美分割 MKV 文件。现在我有一些我想拆分的 MP4 文件,起初它似乎可以工作,但是第一个之后的每个后续片段都没有同步音频!几秒钟。

我试过强制关键帧(我在其他一些网站上找到的建议)但没有帮助。

我完全尝试了一个不同的程序(Avidemux),它能够以正确的输出分割文件,但速度慢了很多,需要 3 分钟以上,而使用 ffmpeg 则不到 2 秒。使用 Avidemux,我能够确定我想要拆分的 i 帧的确切位置,所以我想这可能是同步问题,我尝试了那个确切的位置(即 00:12:17.111 而不是 00:12:16 或无论如何)但这也无济于事。

我是否缺少 ffmpeg 的选项,以便在拆分时将音频正确同步到视频?

【问题讨论】:

  • 尝试不同版本的 FFmpeg。而且,不要在 Stack Overflow 上发布 FFmpeg CLI 问题。他们在这里跑题了。使用 SuperUser.com,您可能会得到更好的响应。
  • 我引用了一个 Stack Overflow FFMpeg CLI 问题,所以我只是假设 Q 是否正常……这也是。刚刚通过谷歌找到它...并没有真正考虑第二个想法,抱歉。
  • 仅供参考 - 更新 FFmpeg 根本没有帮助。完全相同的问题。
  • 您可以尝试回滚到旧版本。这绝对听起来像一个错误。
  • 回滚是个坏主意。 ffmpeg 的最新版本总是更好。请在此处删除此问题,因为您已经在超级用户上转发了它。

标签: ffmpeg mp4 video-editing


【解决方案1】:

我不确定我理解为什么,但问题是参数的顺序。

在链接的例子中,命令如下:

ffmpeg -i input.avi -vcodec copy -acodec copy -ss 00:30:00 -t 00:30:00 output2.avi

当然,我使用的是 mp4 而不是 avi,但除此之外,我输入的命令与上面完全相同,并且(使用 mp4)我得到了一个不同步的音频结果。我不小心偶然发现了这个“修复”……如果我这样输入命令:

ffmpeg -ss 00:30:00 -i input.mp4 -vcodec copy -acodec copy -t 00:30:00 output2.mp4

我没有收到同步问题。为什么?不知道。但它有效。我已经尝试了几次以确认...仅更改参数的顺序可以解决问题。

【讨论】:

  • 使用 ffmpeg 版本 N-72460-g11aa050 以 -ss 位置和 -t 持续时间从 MP4 中复制 AAC。第一/正常参数顺序产生了良好的结果。第二个/更改的参数顺序产生了不好的结果。第一个曲目之后的所有曲目的开头都包括前一曲目的结尾。这将是一个错误。
  • 我认为当您看到曲目的开头包括前一曲目的结尾时,这并不是真正的“错误”,而是与关键帧的位置有关。
  • 好的@bcsteeve,但不管它与什么有关,如果没有充分的理由让改变的参数顺序产生影响,和/或如果它产生的差异和原因是没有记录,那么这是导致错误/类似错误的输出的问题。优化建议:当输出为纯音频时,尽可能忽略仅影响视频的关键帧等任何内容。
  • 奇怪的是:如果我使用第二个语法,第二个块是可以的,但 VLC 在导航第一个块时有问题(它认为它的结束时间是整个文件的结束时间);如果我使用第一个语法,第一个块是好的,但第二个块的音频不同步 3 秒。
猜你喜欢
  • 1970-01-01
  • 2012-05-01
  • 1970-01-01
  • 2012-02-09
  • 2016-11-06
  • 1970-01-01
  • 2017-05-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多