【问题标题】:Cutting a video to the last 10 seconds将视频剪切到最后 10 秒
【发布时间】:2014-04-01 16:37:11
【问题描述】:

所以我正在寻找一种将视频文件剪切到文件最后 10 秒的方法。通常我会使用 FFMPEG 或 mencoder,但情况是每次剪切时要剪切的文件的大小都会不同。所以我使用 ffmpeg 找到了一些一般持续时间的东西,但问题是我需要持续时间以秒为单位而不是 00:00:00,所以我可以只使用 var-10 作为 -ss。

我不知道我是否解释得足够好,但简而言之:

每次运行不同长度的视频,新文件只需要最后10秒。 需要一些轻资源但仍然很快。

提前感谢任何回答的人!

【问题讨论】:

    标签: video ffmpeg mencoder


    【解决方案1】:

    这很容易,但不是很容易,当然也不是很快。 通常你想要的是:

    • 获取完整的视频长度。这可能很容易从标头中获取它,或者可能非常困难,例如当您在文件中有 RTP 流转储时,或者当文件格式支持(并使用)变量 FPS 并且在其中没有“长度”字段时标题。这些情况可能需要播放整个文件以确定长度。

    • 在此长度的 -10 秒之前寻找最近的关键帧。如果索引文件具有适当的关键帧,这可能非常容易,或者在上述情况下很困难。也可能是唯一的关键帧是第一个关键帧,因此您需要解码整个流才能到达最后 10 秒。

    • 在关键帧之后解码几帧,直到达到 -10 秒标记。

    • 重新编码剩余的帧。理论上,如果您的关键帧正好在 -10 秒标记处,您可以直接转储数据包而无需重新编码,但您不太可能这么幸运。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      • 2013-12-28
      • 1970-01-01
      • 2018-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多