[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 根据子目录下视频单独一键合并

@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

安装FFmepg 为前提

TOP

返回列表