所以我正在寻找一种方法将视频文件剪切到文件的最后10秒。通常我会使用FFMPEG或mencoder,但情况是每次剪切时要剪切的文件大小不同。所以我使用ffmpeg在一般持续时间内发现了一些东西,但问题是我需要持续时间为秒而不是00:00:00所以我可以使用var-10作为-ss。
我不知道我是否解释得那么好,但简而言之:
每次运行时视频长度不同,只需要新文件中的最后10秒。 需要对资源有所帮助,但仍然很快。
提前感谢任何回答的人!
答案 0 :(得分:0)
这很容易,但不是很容易,当然也不是很快。 一般来说你想要的是:
获取全长视频。这可能很容易从头部获取,或者可能非常困难,例如当您在文件中有RTP流转储时,或者当文件格式支持(并使用)变量FPS且没有" length&时#34;标题中的字段。这些情况可能需要播放整个文件以确定长度。
在此长度的-10秒之前寻找最近的关键帧。对于具有适当关键帧的索引文件,或者在上述情况下困难,这可能非常容易。也可能是唯一的关键帧是第一个关键帧,因此您需要解码整个流才能到达最后10个。
在关键帧后解码几帧,直到达到-10秒标记。
重新编码剩余的帧。理论上,如果您的关键帧正好在-10秒标记处,您可以在不重新编码的情况下转储数据包,但您可能不会那么幸运。