dos命令+ffmpeg 实现 视频均等分割成多块

先上源码

echo 请输入视频地址:
set /p fp=
echo 请输入开始时间:
set /p st=
echo 请输入结束时间:
set /p et=
echo 请输入分片时间:
set /p sgt=
echo 注意:循环范围参数要空格。
for /l %%i in (%st%, %sgt%, %et%) do call :aaa %sgt% %%i
pause

:aaa
set /a sgt_2=%2 + sgt
ffmpeg -i %fp% -ss %2 -to %sgt_2% -acodec copy -vcodec copy %2.mp4

分析:

1.echo 是DOS命令中输出语句

2.set /p st= 、set /p et=、是DOS命令中用于接收用户输入的数据的语句,(相当于编程语言中声明一个变量,并给其赋值)

3.fp、st、sgt、都属于是变量(注意:dos命令中一切变量都要用 % ,将其包围起来,

例如 %fp%,当然除了 set /p a= 的时候)

4.后面的是 for循环和call跳转语句他配使用

5.

for 循环的模式 /L

in后面的括号(开始,步长,结束)

DOS命令中for循环 循环体do 只能执行一行命令,所以这里需要跳转语句来执行多行命令,这里我使用的是call跳转语句(他可以传参数),而另外一个goto跳转语句不建议使用(他不可以传参)

call跳转语句,%sgt%是步长参数(即分割视频时间间隔),%%i 是for循环的循环变量参数

接着我们进入跳转语句中 :aaa 中

set /a sgt_2= %2 + sgt (这里的%2就是%%i 循环变量,而sgt是%sgt%)在这做了个简单的运算,这里的sgt_2变量,每循环一次就会对应增加一个步长,与循环变量%%i对应,使得可以更好地执行下的ffmpeg代码

ffmpeg -i %fp% -ss %2 -to %sgt_2% -acodec copy -vcodec copy %2.mp4

这个是ffmpeg命令,-i 表示输入的文件 、-ss 表示开始的时间、-to 表示结束的时间、

-acodec copy -vcodec copy 表示直接复制音视频的编码方式 、%2.mp4 表示以循环变量命名切割后的文件。

OK,下面就演示一下吧!

1.首先,将代码复制到TXT文本中,在该其后缀名为bat批处理文件,然后双击运行。

2.输入相关参数,视频路径为绝对路径、这里的时间以秒为单位,

3.结果。

经验分享 程序员 微信小程序 职场和发展