使用FFmpeg批量合并同名音视频的批处理脚本问题
解决FFmpeg批量合并同名ADX音频与M2V视频的问题
原脚本的问题在于用了两层嵌套循环,会把每一个.adx音频和所有.m2v视频逐一配对处理,导致每个视频文件被重复处理N次(N是音频文件的数量),最终生成的.mp4会被最后一次处理的音频覆盖,自然出现所有视频都用同一个音频的情况。
正确的做法是直接匹配同名文件,只需要遍历其中一种格式的文件,提取文件名后对应另一种格式的文件即可。下面是修正后的批处理脚本:
for %%F in (*.m2v) do ( ffmpeg -i "%%~nF.adx" -i "%%F" "%%~nF.mp4" )
脚本说明:
%%~nF会提取当前.m2v文件的纯文件名(不含后缀),这样就能精准匹配到同名的.adx音频文件- 给文件名加上双引号
"",避免文件名包含空格或特殊字符时出错 - 执行后,每个
xxx.m2v会和xxx.adx合并生成xxx.mp4
如果想反过来遍历音频文件,脚本也可以写成:
for %%F in (*.adx) do ( ffmpeg -i "%%F" -i "%%~nF.m2v" "%%~nF.mp4" )
内容的提问来源于stack exchange,提问作者nanpa janaiyo
相关产品推荐
相关产品推荐

