我想使用ffmpeg将.mp4文件分成更小的.mp4剪辑。
这是没有循环的代码:
ffmpeg -i source-file.mp4 -ss 0 -t 600 first-10-min.mp4
ffmpeg -i source-file.mp4 -ss 600 -t 600 second-10-min.mp4
ffmpeg -i source-file.mp4 -ss 1200 -t 600 third-10-min.mp4
...
如何在Microsoft DOS中将其转换为循环?到目前为止,我有这个:
for /r $i in (*.mp4) do "C:\Program Files\FFMPEG\bin\ffmpeg.exe" -i "C:\Users\Name\Videos\2014-12-27-0926-45.mp4" -ss 0 -t 600
也有人说把--codec拷贝放在某个地方,但我不知道在哪里。
答案 0 :(得分:0)
你可以构建一个FOR
来生成600
递增的命令:
SETLOCAL EnableExtensions EnableDelayedExpansion
SET SourceFile="source-file.mp4"
SET Increment=600
REM This is how long the file is.
SET Length=1800
REM For keeping track of the number file we are processing.
SET Count=1
FOR /L IN %%I (0,%Increment%,%Length%) DO (
ffmpeg -i %SourceFile% -ss %%I -t %Increment% !Count!-10-min.mp4
SET Count=!Count!+1
)
ENDLOCAL