【问题标题】:ffmpeg video-concatenation - audio-/videotrack Synchronisationffmpeg 视频连接 - 音频/视频轨道同步
【发布时间】:2012-10-02 13:44:04
【问题描述】:

我想连接随机格式的不同视频文件。首先,我将它们转换为 flv,将每个视频的帧速率调整为最低的相关视频。下一步是解码它们并删除标题(但不是序列中第一个视频的标题,然后我将它们与 cat 连接,最后我对结果序列进行编码。

但是从序列部分到序列部分,视频和音频轨道越来越不同步。

很高兴有任何想法。

【问题讨论】:

标签: ffmpeg concatenation audio-video-sync


【解决方案1】:

然后,您的问题是在执行 concat 过程时保持同步。经验法则,步骤越少越好。这应该可以解决您的问题。首先,使用 mpg 而不是 flv 作为中间格式。其次,将 -copyts 添加到每个命令(复制时间戳以保持同步)。此外,无需转到最低帧速率。您可以通过此过程保留最高视频的质量。试试这个:

$ ffmpeg -i a.mp4 -qscale:v 1 -copyts a.mpg
$ ffmpeg -i b.flv -qscale:v 1 -copyts b.mpg

现在您应该有两个(大)兼容视频质量的中间文件(变量:-qscale:v 1)。您已准备好将它们粘合在一起。

$ ffmpeg -i concat:"a.mpg|b.mpg" -c copy all.mpg

如果您使用的是 Windows,那么您就可以正常使用。在 UNIX 风格上,您需要在管道之前添加一个反斜杠。 (在我的版本中,我收到大量的buffer underflow / packet too large, ignoring buffer limits to mux it 错误。它们似乎是无害的。)现在您可以转换为任何您想要的更有用的格式,并且质量更逼真。

$ ffmpeg -i all.mpg -qscale:v 2 -copyts all.mp4

我已经成功地使连接的视频保持同步,但质量似乎没有达到应有的水平。也许调整中间文件参数。

【讨论】:

    猜你喜欢
    • 2014-10-16
    • 2016-05-25
    • 2012-03-09
    • 2012-03-16
    • 2017-04-26
    • 2016-05-26
    • 1970-01-01
    • 2016-09-06
    • 2017-04-13
    相关资源
    最近更新 更多