游戏引擎能吃么
发布于 IP属地内华达

字幕内嵌脚本

如何将提供的视频内嵌字幕

安装FFmpeg

  • 官网链接
  • 下载对应版本并解压
  • 将解压路径添加至环境变了Path中
  • 输入ffmpeg -version进行验证

处理脚本

@echo off
SETLOCAL ENABLEDELAYEDEXPANSION
REM 使用方法:batch_script.bat "文件目录路径"

SET "inputDir=%~1"
REM 如果没有提供目录路径,则默认为当前目录
IF "%inputDir%"=="" SET "inputDir=."

FOR /R "%inputDir%" %%f IN (*.mkv, *.mp4) DO (
    REM 可以对字幕后缀进行修改,一般字幕文件名都是相同的,双语字幕也是一样,可以直接覆盖
    SET "videoFile=%%~dpnF"
    SET "subtitle=!videoFile!_en.srt"
    SET "outputFileMKV=!videoFile!.mkv"
    SET "outputFileMP4=!videoFile!.mp4"

    REM 检查输出文件是否已存在
    IF "%%~xf"==".mkv" (
        SET "outputFile=!outputFileMKV!"
    ) ELSE IF "%%~xf"==".mp4" (
        SET "outputFile=!outputFileMP4!"
    )

    IF NOT EXIST "!outputFile!" (
        REM 初始化参数
        SET "subtitleArgs="
        SET "inputIndex=0"
        SET "mapArgs=-map 0"

        REM 检查英文字幕文件是否存在
        IF EXIST "!subtitle!" (
            SET /A inputIndex+=1
            SET "subtitleArgs=!subtitleArgs! -i "!subtitle!""
            SET "mapArgs=!mapArgs! -map !inputIndex!"
        )

        IF NOT "!subtitleArgs!"=="" (
            echo 正在为 "%%f" 嵌入字幕
            REM 运行 FFmpeg 命令
            ffmpeg -i "%%f" !subtitleArgs! !mapArgs! -c copy -c:s copy "!outputFile!"
        ) ELSE (
            echo 没有找到字幕文件: "%%f"
        )
    ) ELSE (
        echo 输出文件已存在: "!outputFile!"
    )
)

echo 文件处理完成。
pause
浏览 (737)
点赞 (1)
收藏
评论