我需要用 将一个视频剪切成多个片段ffmpeg
。
当我只剪掉一集的时候
ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:00:25.500 -strict -2 out1.mp4
或者
ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:25.500 -t 00:00:33.750 -strict -2 out2.mp4
我的视频瞬间被切断了。
但当我把标记连在一起,我想剪裁的地方
ffmpeg -i 001.mp4 -vcodec copy -acodec copy -ss 00:00:00.000 -t 00:00:25.500 -strict -2 out1.mp4 -ss 00:00:25.500 -t 00:00:33.750 -strict -2 out2.mp4
它仍然有效,但需要花费更多的时间(大约 10 秒),并且我看到的输出与转换某些内容时相同。
是不是我的哪里错了ffmpeg-command
,还是建议ffmpeg-commands
一个一个的执行?
答案1
ffmpeg 可能正在重新编码,out2.mp4
因为您没有为第二个输出包含复制选项:
ffmpeg -i 001.mp4 -codec copy -t 00:00:25.5 out1.mp4 -codec copy -ss 00:00:25.5 -t 00:00:33.75 out2.mp4
-strict -2
在这种情况下不是必需的。如果您正在重新编码,并且没有其他可用的 AAC 编码器,则 ffmpeg 将使用-codec:a aac
需要的-strict -2
(或我更喜欢的别名-strict experimental
)。-codec copy
如果存在,将复制每种类型的所有流。对于 MP4,这通常仅意味着音频和视频,但其他容器可以有字幕甚至数据流。-ss
如果值为 0,则无需使用。