【问题标题】:ffmpeg exact start and end timesffmpeg 确切的开始和结束时间
【发布时间】:2017-06-19 13:18:43
【问题描述】:

我搜索了很多,但没有找到我想要的。 我使用这个命令:

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

复制视频的一部分,但输出文件的开始时间和持续时间可能与指定的“开始”和“持续时间”不同。 我知道 ffmpeg 会寻找最近的关键帧,并且除非重新编码视频(我尝试过但输出视频质量下降!),否则不可能精确地寻找时间戳。 知道 ffmpeg 用于生成输出的确切开始和结束时间戳对我来说很重要,因为我使用此信息来调整字幕时间。 有没有办法让ffmpeg报告开始时间戳和结束时间戳? 或者:有什么方法可以知道特定时间戳的上一个和下一个关键帧,以便我可以调整项目中的视频剪辑标记以适应最近的关键帧?
谢谢。

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

【问题讨论】:

    标签: ffmpeg


    【解决方案1】:

    你可以跑

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

    然后检查

    ffprobe Dstfile
    

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

    ffmpeg -i Dstfile -c copy FinalFile
    

    拥有一个开始时间为 0 的文件。

    【讨论】:

    • 非常喜欢坦克,Mulvya。有效。所以,如果我可能会问: 1- 为什么 ffmpeg 不直接将此信息输出到标准输出?.. 它会为我们省去麻烦和时间! 2-此步骤的输出视频: ffmpeg -i Dstfile -c copy FinalFile 在 MPC-HC 中播放大约需要 10 秒,而临时文件启动速度很快并且运行良好。为什么会这样,首先需要最后一个命令是什么?
    • 3-我仍然有一个问题:有时 ffmpeg 会寻找上一个关键帧,因此输出视频可能包含原始视频中不需要的秒数!.. 现在我知道临时输出视频的偏移时间,所以我想通过寻找下一个关键帧(即 tmpfile 中的第二个关键帧)在最终输出视频中解决这个问题。这可能吗?再次感谢。
    • - 是否可以搜索到第二个关键帧和最后一个关键帧之前的关键帧? - 2 个关键帧之间的时间间隔是多少?
    猜你喜欢
    • 2013-08-28
    • 2013-12-16
    • 1970-01-01
    • 2015-09-11
    • 1970-01-01
    • 1970-01-01
    • 2016-09-24
    • 2018-11-07
    • 2016-02-03
    相关资源
    最近更新 更多