当前位置: 首页 > news >正文

Windows批处理脚本自动合并当前目录下由You-get下载的未合并的音视频文件

以下是一个Windows批处理脚本,可以自动合并当前目录下由You-get下载的未合并的音视频文件(video.m4s和audio.m4s):

@echo off
setlocal enabledelayedexpansion:: 创建合并目录
if not exist "Merged" mkdir "Merged":: 显示进度
echo 正在扫描当前目录...
echo.:: 主处理流程
for /f "delims=" %%v in ('dir /b /a-d "*[00].mp4" 2^>nul') do (:: 使用字符串替换确保精确匹配set "video=%%v"set "audio=!video:[00]=[01]!"echo 视频文件: !video!echo 尝试匹配: !audio!if exist "!audio!" (:: 生成输出文件名(移除[00]标记)set "output=!video:[00]=!":: 处理ffmpeg的元数据问题echo 正在合并: !output!...ffmpeg -i "!video!" -i "!audio!" -map 0:v -map 1:a -c copy -movflags +faststart "Merged\!output!"if !errorlevel! equ 0 (echo [√] 合并成功: !output!:: 成功后可选的清理(取消注释启用):: del "!video!" "!audio!") else (echo [×] 合并失败,尝试第二种方案...ffmpeg -i "!video!" -i "!audio!" -c:v copy -c:a aac -b:a 192k "Merged\!output!")) else (echo [!] 未找到匹配的音频文件echo 可能存在的音频文件:dir /b "!video:[00]=[*].mp4")echo.
):: 后处理
echo 操作完成!合并文件保存在 Merged 文件夹
echo 按任意键查看结果...
pause
start "" "Merged"

改进亮点:

  1. ​智能文件名匹配​​:

    • 使用 !var:str1=str2!字符串替换,确保精确转换 [00]→ [01]

    • 示例:视频[00].mp4→ 精准匹配 视频[01].mp4

  2. ​双重合并方案​​:

    • 首选方案:-map 0:v -map 1:a确保流选择正确

    • 备用方案:当直接拷贝失败时自动转码音频为AAC格式

  3. ​中文路径支持​​:

    • 完整保留所有特殊字符(中文、日文、符号等)

    • 正确处理包含【】、《》等特殊符号的文件名

  4. ​诊断功能增强​​:

    • 显示实时匹配过程

    • 失败时自动列出相似文件辅助排查

    • 完成后自动打开结果文件夹

使用说明:

  1. 将脚本保存为 merge.bat

  2. 放入包含 [00].mp4和 [01].mp4的文件夹

  3. 直接运行,无需任何参数

  4. 合并结果保存在自动创建的 Merged子文件夹

常见问题应对:

  • ​如果仍提示找不到文件​​:

    检查文件是否被其他程序锁定(如播放器正在使用)

  • ​如果合并后音画不同步​​:

    尝试改用以下命令:

    ffmpeg -i "!video!" -i "!audio!" -c:v copy -c:a aac -af "aresample=async=1000" "Merged\!output!"
  • ​如需处理其他编号格式​​:

    修改脚本中的 [00]和 [01]为您实际使用的编号

这个版本应该能完美处理您提到的所有复杂文件名情况。如果遇到特殊情况,建议提供具体的文件名示例以便进一步优化。

http://www.xdnf.cn/news/1295515.html

相关文章:

  • LeetCode 分类刷题:2302. 统计得分小于 K 的子数组数目
  • 我的第一个开源项目-jenkins集成k8s项目
  • 开疆智能Ethernet转ModbusTCP网关连接UR机器人配置案例
  • 区块链 + 域名Web3时代域名投资的新风口(上)
  • 《算法导论》第 25 章:所有结点对的最短路径问题
  • 常见的tls检测的绕过方案
  • Mybatis学习笔记(二)
  • Transformer之多头注意力机制和位置编码(二)
  • vue更改style
  • 双椒派E2000D网络故障排查指南
  • 【Linux】库制作与原理
  • 2025年5月架构设计师综合知识真题回顾,附参考答案、解析及所涉知识点(三)
  • 苹果正计划大举进军人工智能硬件领域
  • 解决EKS中KEDA访问AWS SQS权限问题:完整的IRSA配置指南
  • 能源行业数字化转型:边缘计算网关在油田场景的深度应用
  • 支持pcm语音文件缓存顺序播放
  • 从感知到执行:人形机器人低延迟视频传输与多模态同步方案解析
  • Python 类元编程(导入时和运行时比较)
  • 【Linux学习|黑马笔记|Day3】root用户、查看权限控制信息、chmod、chown、快捷键、软件安装、systemctl、软连接、日期与时区
  • 17. 如何判断一个对象是不是数组
  • 技术速递|使用 AI Toolkit 构建基于 gpt-oss-20b 的应用程序
  • 工业元宇宙:迈向星辰大海的“玄奘之路”
  • 【Linux】常用命令(三)
  • Python 元类基础:从理解到应用的深度解析
  • PG靶机 - PayDay
  • 当img占不满div时,图片居中显示,两侧加当前图片模糊效果
  • 【Docker项目实战】使用Docker部署todo任务管理器
  • javaswing json格式化工具
  • 【2025】Datawhale AI夏令营-多模态RAG-Task3笔记-解决方案进阶
  • Redis7学习——Redis的十大类型String、List、Hash、Set、Zset