Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 将视频剪辑到最后10秒_Video_Ffmpeg_Mencoder - Fatal编程技术网

Video 将视频剪辑到最后10秒

Video 将视频剪辑到最后10秒,video,ffmpeg,mencoder,Video,Ffmpeg,Mencoder,因此,我正在寻找一种方法,将视频文件剪切到文件的最后10秒。通常我会使用FFMPEG或mencoder,但情况是每次剪切时,要剪切的文件的大小都会不同。所以我用ffmpeg找到了一些关于一般持续时间的东西,但问题是我需要持续时间是秒,而不是00:00:00,这样我就可以用var-10表示-ss了 我不知道我是否解释得足够好,但简而言之: 每次运行不同长度的视频时,只需在新文件中保存最后10秒。 需要一些轻资源,但仍然很快 提前感谢所有回答问题的人 这很容易,但不是很容易,当然也不是很快。 一般来

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

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

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


提前感谢所有回答问题的人

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

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

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

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

  • 对其余帧重新编码。理论上,如果你的关键帧正好处于-10s标记,你可以不重新编码就转储数据包,但你不太可能这么幸运