将视频剪切到最后10秒

时间:2014-03-31 07:53:11

标签: video ffmpeg mencoder

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

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

每次运行时视频长度不同,只需要新文件中的最后10秒。 需要对资源有所帮助,但仍然很快。

提前感谢任何回答的人!

1 个答案:

答案 0 :(得分:0)

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

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

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

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

  • 重新编码剩余的帧。理论上,如果您的关键帧正好在-10秒标记处,您可以在不重新编码的情况下转储数据包,但您可能不会那么幸运。