当前位置: 首页>>技术问答>>正文


从命令行准确地剪切视频文件

哪里有可以拍摄视频文件(avi,mkv和mp4)的cli应用程序,并能以精确的时间精度剪出非常短的剪辑(2-6秒)?我已经尝试过ffmpeg,mencoder,avidemux和mp4box,但是他们都在关键帧上创建了6个以上的剪辑。有没有一个工具重新编码(re-encode)输入文件剪切准确的时间或剪切不准确,re-encode,然后准确切割?

最佳解决办法

使用ffmpeg剪切视频

ffmpeg

您可以使用FFmpeg准确剪切视频。从2.5版开始,这非常简单。例如:从0分钟,3秒和123毫秒开始减少10秒。

ffmpeg -ss 00:00:03.123 -i input.mp4 -t 10 -c:v libx264 -c:a aac -strict experimental out.mp4

位置和时间可以是以秒或以hh:mm:ss[.xxx]形式。

请注意,在这些示例中,使用x264aac编码器的视频和音频将re-encoded。

您也可以使用-to而不是-t来指定结束点而不是持续时间。但是,在这种情况下,-to等同于-t,因为通过将-ss置于-i之前,ffmpeg将首先寻找该点,然后开始输出。

另请参阅Seeking维基条目。


准确切割,旧版ffmpeg版本

如果你有一个旧版本的ffmpeg,那么为了准确搜索,你需要把-ss放在-i之后,这会使编码过程慢一点,因为整个视频必须首先被解码:

ffmpeg -i input.mp4 -ss 00:00:03.123 -t 10 -c:v libx264 -c:a aac -strict experimental out.mp4

在这里,-to-t的行为有所不同。 -t 10将创建一个十秒的长剪辑,而-to 10将创建一个七秒长的剪辑。


流复制与重编码re-encoding

您也可以尝试使用-c:a copy复制音频流。复制视频流可以用-c:v copy完成。但它可能无法正常工作,因为您只能剪切一个视频关键帧,而这种关键帧并不经常出现。无论如何,如果您复制视频流,可能会导致剪切不准确。

ffmpeg

参考资料

本文由《纯净天空》出品。文章地址: https://vimsky.com/article/3740.html,未经允许,请勿转载。