You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于调整HandbrakeCLI批量自动转换脚本输入输出路径的技术咨询

关于调整HandbrakeCLI批量自动转换脚本输入输出路径的技术咨询

嘿,我来帮你把这个批量转换脚本调整成从C:\unc读取MKV源文件,最终把转换完成的MP4文件输出到C:\enc目录里。原来的脚本是把转换后的文件存在源文件同目录,现在我们修改路径逻辑,让所有输出都统一到指定目录。

修改后的完整脚本

@echo off
SET "SOURCE_DIR=C:\unc"
SET "OUTPUT_DIR=C:\enc"

:: 确保输出目录存在,不存在则创建
if not exist "%OUTPUT_DIR%" mkdir "%OUTPUT_DIR%"

:: 遍历源目录下所有MKV文件
for /R "%SOURCE_DIR%" %%F in (*.mkv) do (
    :: 用HandBrakeCLI转换生成临时文件,输出到指定目录
    "C:\Program Files\HandBrake\HandBrakeCLI.exe" --preset-import-file anime.json -Z "anime" --optimize --align-av -i "%%~fF" -o "%OUTPUT_DIR%\%%~nF_conv.mp4"

    :: 检查临时转换文件是否生成成功
    if exist "%OUTPUT_DIR%\%%~nF_conv.mp4" (
        :: 用ffmpeg迁移原文件元数据到转换后的文件,输出到指定目录
        "C:\Conversion\ffmpeg\bin\ffmpeg.exe" -i "%%~fF" -i "%OUTPUT_DIR%\%%~nF_conv.mp4" -map 1 -map_metadata 0 -c copy "%OUTPUT_DIR%\%%~nF.mp4"
        
        :: 删除源MKV文件和临时转换文件
        del "%%~fF"
        del "%OUTPUT_DIR%\%%~nF_conv.mp4"
    )
)

关键改动说明

  • 新增了SOURCE_DIROUTPUT_DIR变量,让路径配置更清晰,后续要改路径直接修改这两行即可
  • 增加了mkdir命令确保输出目录存在,避免因为目录不存在导致转换失败
  • 把所有输出路径里的%%~dpF(源文件所在目录)替换成%OUTPUT_DIR%,这样临时文件和最终文件都会输出到C:\enc
  • 保留了原脚本的核心逻辑:HandBrakeCLI转换、ffmpeg迁移元数据、清理源文件和临时文件

注意事项

  • 确保anime.json预设文件和脚本在同一目录,或者你可以给它加上完整路径(比如"C:\YourPresetPath\anime.json"
  • 如果C:\enc是系统盘目录,可能需要右键以管理员身份运行脚本,避免权限不足导致文件无法写入
  • 转换前建议先拿单个小文件测试脚本,确认输出路径和转换效果符合预期再批量运行

备注:内容来源于stack exchange,提问作者 Opaque Oreo

火山引擎 最新活动