如何在Windows下使用FFmpeg批量添加音频后将输出文件保存至指定路径
解决FFmpeg批量输出到指定目录的问题
当然可以轻松实现!你只需要修改命令里的输出文件路径部分就好,我给你两种实用的方案:
1. 输出到固定绝对路径的目录
如果你想把所有处理后的视频放到一个指定的文件夹(比如D:\ProcessedVideos),直接把输出文件名前加上完整路径就行。记得路径要加引号(如果有空格的话),并且提前创建好目标文件夹(FFmpeg不会自动生成目录)。
修改后的命令示例:
for %i in (*.mp4) do ffmpeg -y -i "%i" -i m.mp3 -af apad -map 0:v -map 1:a -c:v copy -shortest "D:\ProcessedVideos\%~ni with audio.mp4"
把D:\ProcessedVideos换成你实际想要保存的目录路径即可。
2. 输出到当前目录的子文件夹
如果想在原视频所在目录下新建一个子文件夹(比如叫output)来存放处理后的文件,只需要在输出文件名前加上子文件夹名称:
修改后的命令示例:
for %i in (*.mp4) do ffmpeg -y -i "%i" -i m.mp3 -af apad -map 0:v -map 1:a -c:v copy -shortest "output\%~ni with audio.mp4"
注意:执行命令前要先手动创建output子文件夹,否则FFmpeg会报错无法写入文件。
额外小技巧(适合写成批处理脚本)
如果不想每次手动创建文件夹,可以把命令写成.bat脚本,先自动创建目标目录:
@echo off md "D:\ProcessedVideos" 2>nul for %%i in (*.mp4) do ffmpeg -y -i "%%i" -i m.mp3 -af apad -map 0:v -map 1:a -c:v copy -shortest "D:\ProcessedVideos\%%~ni with audio.mp4"
这里用md "路径" 2>nul的作用是:如果目录不存在就创建,存在的话忽略错误信息(不会弹出报错窗口)。另外批处理里的循环变量要写成%%i而不是%i哦。
内容的提问来源于stack exchange,提问作者Spectra
相关产品推荐
相关产品推荐

