使用FFmpeg将视频拆分为等长段

时间:2017-01-10 18:55:39

标签: bash video split ffmpeg

我需要将许多未知长度的视频分成2分钟的块。我可以使用https://unix.stackexchange.com/questions/1670/how-can-i-use-ffmpeg-to-split-mpeg-video-into-10-minute-chunks中接受的答案来执行此操作,但这需要复制,粘贴和修改多行并手动计算每个视频中有多少2分钟的部分(对于一些视频来说不是很重要) ,但过了一段时间它真的很乏味。)

我过去曾使用过代码,我只需要指定输入视频,开始时间,段长度和输出名称,并在与输入相同的文件夹中的.sh文件中运行它视频会生成所有必需的单独视频,这些视频标有" output_video01," " output_video02,"然而,不知怎的,它并不想在我的新电脑上工作。声称能够做到这一点的其他答案也不适用于我(当作为.bat或.sh文件运行时)。我相信我之前使用的代码是:

ffmpeg -i "input_video.MTS" -ss 164 -f segment -segment_time 120 -vcodec copy -reset_timestamps 1 -map 0:0 -an output_video%d.MTS

另一个对我不起作用的建议,但显然适用于其他人(见https://superuser.com/a/820773/313829):

ffmpeg -i input_video.MTS -c copy -map 0 -segment_time 8 -f segment output_video%03d.MTS

我目前在Windows 10中使用了周年纪念更新版本,我已启用了Bash,但出于某种原因,它并不想工作。我甚至看不到它给我的错误,因为窗户突然关闭了。

1 个答案:

答案 0 :(得分:0)

原始代码(对我不起作用)是:

ffmpeg -i input_video.MTS -c copy -map 0 -segment_time 8 -f segment output_video%03d.MTS

最终为我工作的代码:

ffmpeg -i input_video.MTS -c copy -map 0 -segment_time 8 -f segment output_video%%03d.MTS

“%”必须为“%%”。此外,它在.bat文件(不是.sh)中工作。