【问题标题】:How to concatenate multiple MP4 videos with FFMPEG without audio sync issues?如何在没有音频同步问题的情况下使用 FFMPEG 连接多个 MP4 视频?
【发布时间】:2016-06-24 08:28:27
【问题描述】:

我一直在尝试使用记录在 here 的 FFMPEG 连接协议连接多个 MP4 剪辑 (h264,aac)。剪辑连接成功,但日志中有多个错误,包括:

  • 输出流中的非单调 DTS
  • 过去的持续时间过长

此外,随着添加更多剪辑,音频和视频似乎略有不同步 - 尽管在某些播放器(Quicktime 和 Chrome HTML5)上更明显。

这是我正在使用的代码,任何提示将不胜感激!

将每个视频转换为临时文件

ffmpeg -y -i <input file> -vcodec libx264 -acodec aac -f mpegts -bsf:v h264_mp4toannexb -mpegts_copyts 1 <temp file>

连接临时文件

ffmpeg -i concat <input1|input2 ...> -map 0 -vcodec copy -aprofile aac_low -acodec aac -strict experimental -cutoff 15000 -vbsf aac_adtstoasc -b:a 32k <output file>

【问题讨论】:

  • 我也遇到了类似的问题,连接两个视频会导致音频问题以及播放问题,您找到解决方案了吗? (下面mulvya的回答对我不起作用)。对我来说,音频质量变得非常糟糕,与原始视频相比,第二个视频以大约 0.5 的速度播放,并且总视频长度比预期的要长。

标签: audio video ffmpeg


【解决方案1】:

由于您同时编码音频和视频,只需使用 concat demuxer:

使用要加入的文件列表创建一个文本文件

file 'input1'
file 'input2'
file 'input3'
...

然后运行

ffmpeg -f concat -i textfile -map 0 \
-vcodec libx264 \
-aprofile aac_low -acodec aac -strict experimental -cutoff 15000 -b:a 32k <output file>

【讨论】:

  • 感谢 Mulvya,我们试过了,但遇到了同样的时间戳问题。
  • 这些将保留,因为它们与源文件中的 DTS 系列相关。您应该只担心听到的音频不同步。
猜你喜欢
  • 2016-11-06
  • 2016-05-25
  • 2012-10-02
  • 2017-04-13
  • 2019-03-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多