当前位置: 首页 > 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.lryc.cn/news/620813.html

相关文章:

  • 【Unity3D实例-功能-移动】角色行走和奔跑的相互切换
  • AI智能体|扣子(Coze)搭建【批量识别发票并录入飞书】Agent
  • Cookie、Session、Token详解
  • 如何在 Ubuntu 24.04 LTS Noble Linux 上安装 Wine HQ
  • OpenCV对椒盐处理后的视频进行均值滤波处理
  • 短剧小程序系统开发:赋能创作者,推动短剧艺术创新发展
  • 【软件测试】自动化测试 — selenium快速上手
  • BitDock——让你的Windows桌面变为Mac
  • 如何查看SQL Server的当前端口
  • filezilla mac新版本MacOS-12.6.3会自动进入全屏模式BUG解决方法
  • 我的第一个开源项目-jenkins集成k8s项目
  • 软件测试中,常用的抓包工具有哪些?抓包的原理是什么?
  • FPGA读取AHT20温湿度模块思路及实现,包含遇到的问题(IIC协议)
  • 快速部署一个鉴黄服务
  • React数据请求
  • Android 项目:画图白板APP开发(二)——历史点、数学方式推导点
  • 2.0t的涡轮增压器结构设计说明书cad【5张】设计说明说
  • OpenSatKit技术详解
  • 《Leetcode》-面试题-hot100-动态规划
  • C++实现序列匹配与分类处理
  • 深度学习-卷积神经网络CNN-批量归一化 BatchNorm
  • React和Vue
  • React 中播放HLS 视频流 ,超简单的组件高度复用
  • 2019 GPT2原文 Language Models are Unsupervised Multitask Learners - Reading Notes
  • 微美全息(WIMI.US)借区块链与聚类技术,开启物联网去中心化安全架构新纪元
  • C#WPF实战出真汁03--登录功能实现
  • 阿里云Spring Cloud架构分析
  • 无人机双目视觉设计要点概述!
  • .Net4.0 WPF中实现下拉框搜索效果
  • 4. 索引数据的增删改查