- @echo off
- setlocal enabledelayedexpansion
- cd /d "%~dp0"
- set "TmpFile=Video.txt"
- set "LogFile=%~dp0Log.txt"
- set "OutputVideoName=修改此文字为合成视频名称.mp4" ;; 自定义输出文件名
- echo 正在执行视频合并操作。 > "%LogFile%"
- echo 日志开始:%date% %time% >> "%LogFile%"
-
- :: 遍历当前目录下的直接子目录
- for /d %%d in (*) do (
- set "Folder=%%d"
- echo 正在处理文件夹:!Folder! >> "%LogFile%"
- pushd "!Folder!"
- if exist "!TmpFile!" del /f /q "!TmpFile!"
-
- :: 查找当前子目录下的所有视频文件并写入TmpFile
- for %%f in (*.mp4 *.avi *.mov *.wmv *.mkv *.ts) do (
- echo file '%%f' >> "!TmpFile!"
- )
-
- :: 如果TmpFile存在,使用ffmpeg合并视频
- if exist "!TmpFile!" (
- ffmpeg -f concat -safe 0 -i "!TmpFile!" -c copy "!OutputVideoName!" >> "%LogFile%" 2>&1
- if errorlevel 1 echo 错误:ffmpeg 命令执行失败 >> "%LogFile%"
- del /f /q "!TmpFile!"
- ) else (
- echo 错误:没有找到视频文件 >> "%LogFile%"
- )
- popd
- )
-
- echo 日志结束:%date% %time% >> "%LogFile%"
- echo 视频合并操作完成。 >> "%LogFile%"
- pause
- endlocal
复制代码
|