我经常搜索但却找不到我想要的东西。 我用这个命令:
ffmpeg -ss <start> -i <SrcFile> -t <duration> -c copy <DstFile>
复制视频的一部分,但输出文件的开始时间和持续时间可能不同于&#34; start&#34;和#34;持续时间&#34;指定。
据我所知,ffmpeg寻求最接近的Keyframe,除非重新编码视频,否则无法精确寻找时间戳(我尝试过,但输出视频会损失质量!)。
了解ffmpeg用于生成输出的确切开始和结束时间戳对我来说很重要,因为我使用此信息来调整字幕时序。
有没有办法让ffmpeg报告开始时间戳和结束时间戳?
或者:有没有办法知道特定时间戳的上一个和下一个关键帧,所以我可以调整项目中的视频剪切标记以适应最近的关键帧?
感谢。
更新: - 是否可以在最后一个关键帧之前寻找第二个关键帧和关键帧? - 两个关键帧之间的时间间隔是多少?
答案 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。