如何在FOR循环中引用文件名下划线前部分完成FFMPEG音视频混流
Windows CMD 批处理修改方案
针对你描述的文件名规则(前缀_后缀.扩展名),可以通过字符串切割提取下划线前的统一前缀,再匹配对应的音视频文件,修改后的脚本如下:
@echo off :: 先创建output文件夹防止写入报错 if not exist output md output :: 遍历所有带_video后缀的mp4视频文件 FOR %%A IN (*_video.mp4) DO ( :: 按下划线切割文件名,提取下划线前的前缀内容 FOR /F "delims=_" %%B IN ("%%~nA") DO ( :: 用前缀匹配对应的音频文件执行混流 ffmpeg -i "%%A" -i "%%B_audio.m4a" -vcodec copy -acodec copy -movflags faststart "output\%%B.mp4" ) )
脚本说明
- 遍历阶段直接筛选
*_video.mp4格式的文件,避免匹配到无关MP4文件 - 通过
FOR /F的delims=_参数按下划线切割文件名,提取首个分段作为音视频匹配的统一前缀 - 混流输出的文件默认以匹配前缀命名,可自行修改输出文件名规则
- 即使文件名包含多个下划线,也默认取第一个下划线前的内容作为匹配依据,适配性更强
内容的提问来源于stack exchange,提问作者Sean McNally
相关产品推荐
相关产品推荐

