2014-03-31 63 views
0

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

如果我解释说不够好,但总之我不知道:

不同长度的每次跑步是实时视频,只需要在最后10秒的一个新的文件。 需要一些资源,但仍然很快。

在此先感谢所有回答问题的人!

回答

0

这很容易,但不是很容易,当然不是很快。 一般你想要的是:

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

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

  • 对关键帧之后的几帧进行解码,直到达到这个-10秒。

  • 重新编码其余帧。理论上,如果你的关键帧正好在-10秒,你可以在不重新编码的情况下转储数据包,但你不可能如此幸运。