我需要找到一种在不破坏音频/视频同步的情况下使用-SS剪切视频的方法。
有时,它可以很好地工作,但是在大多数情况下,音频会稍微不同步。显然,有一些类似于音频关键帧的东西,但是我不知道如何找到它们。
将-SS与任何规范一起用于编解码器(包括-c复制)时,会发生此问题。
出于我的目的,我不会失去品质,因此这是必需的。
ffmpeg -i src.mp4 -ss 1:00 -t 30 -c copy result.mp4
倾向于中断同步。
ffmpeg -i src.mpr -ss 1:00 -t 30 result.mp4
产生匹配的a / v,但由于使用默认压缩,因此质量损失很大。
我需要一种方法来查找剪切将导致a / v匹配的时间。
答案 0 :(得分:1)
问题实际上与视频关键帧有关。音频/视频实际上是在MP4输出中的不同时间开始的。
对于它的价值,我发现使用Matroska输出效果很好,因为它似乎比MP4更好地支持这些不同的时间戳。
无论如何,您可能会发现此讨论有帮助:https://github.com/mifi/lossless-cut/pull/13
这是相关的FFmpeg命令,可能对您有用。请尝试一下!
ffmpeg -ss 1:00 -i src.mp4 -t 30 -avoid_negative_ts make_zero -c copy result.mp4
这里的键是avoid_negative_ts
,我相信它可以将先前的GOP输出到文件,但是将它们的时间戳设置为全部为零(当然,直到它们不应该发生)为止,这样可以用于解码,使您可以任意剪切文件而无需转码。