ffmpeg确切的开始和结束时间

时间:2017-06-18 15:59:14

标签: ffmpeg

我经常搜索但却找不到我想要的东西。 我用这个命令:

ffmpeg -ss <start> -i <SrcFile> -t <duration> -c copy <DstFile>

复制视频的一部分,但输出文件的开始时间和持续时间可能不同于&#34; start&#34;和#34;持续时间&#34;指定。 据我所知,ffmpeg寻求最接近的Keyframe,除非重新编码视频,否则无法精确寻找时间戳(我尝试过,但输出视频会损失质量!)。 了解ffmpeg用于生成输出的确切开始和结束时间戳对我来说很重要,因为我使用此信息来调整字幕时序。 有没有办法让ffmpeg报告开始时间戳和结束时间戳? 或者:有没有办法知道特定时间戳的上一个和下一个关键帧,所以我可以调整项目中的视频剪切标记以适应最近的关键帧?
感谢。

更新: - 是否可以在最后一个关键帧之前寻找第二个关键帧和关键帧? - 两个关键帧之间的时间间隔是多少?

1 个答案:

答案 0 :(得分:1)

你可以运行

ffmpeg -start_at_zero -copyts -ss <start> -t <duration> -i <SrcFile> -c copy <DstFile>

然后检查

ffprobe Dstfile

开始时间将是来自源的开始时间戳。开始时间+持续时间为您提供结束时间。获得此信息后,请运行

ffmpeg -i Dstfile -c copy FinalFile

使文件的开始时间为0。