手机b站上下载了不少视频,不想在电脑再下一遍了(其实是没无线网,只能用流量。。。)
于是,我用刚刚学习的批处理知识写了一个程序,方便自己使用。下面是核心代码。
代码使用了FFmpeg:下载链接
为FFmpeg设置好环境变量后,可直接在需要合并的视频目录下双击运行用以下代码创建的bat文件。
@echo off
setlocal enabledelayedexpansion
@REM 创建一个文件夹放视频
if not exist 输出视频 md 输出视频
@REM cnt是一个计数器,循环一次就加1
set cnt=1
@REM 下面的for循环是取出该“bat文件”所在目录下所有以.m4s结尾的文件
for /r %%i in (*.m4s) do (
@REM 将cnt对2取余的结果赋值给tmp
set /a tmp=!cnt!^&1
@REM 如果tmp等于1,把当前文件的绝对路径的字符串赋值给a,这里a就是音频文件
if !tmp!==1 set a=%%i
if !tmp!==0 (
@REM 这里分别显示音频、视频的绝对路径
echo ********************************************************************************
echo !a!
echo %%i
echo ********************************************************************************
@REM 因为是视频、音频合并,所以要把cnt/2
set /a p=!cnt!/2
@REM 保留四位数,不足补全0
Set "Num=0000!p!"&Set "Num=!Num:~-4!"
@REM 显示以下这个四位数
echo !Num!
@REM 用FFmpeg把视频、音频合并,并输出到当前目录下已经创建的“输出视频”下,格式为xxxx.mp4
ffmpeg -i %%i -i !a! -c copy .\输出视频\!Num!.mp4
)
@REM 每次for循环计数器加1
set /a cnt+=1
)
echo 当前视频合并已完成!!!
pause>nul
最后,给出我的批处理自学路线