如何使用 ffmpeg 转换文件夹及其所有子文件夹的全部内容,但仅针对.mpg
、.avi
和格式的视频.vob
。
此外,我希望输出文件夹与输入文件夹相同,输出名称与输入名称相同,但输出文件扩展名当然为.mp4
。
我尝试编写批处理脚本来实现这一点,但是没有成功。
@echo off
set "source_folder=C:\path\to\source\folder"
for /r "%source_folder%" %%F in (*.avi *.mpg *.vob) do (
ffmpeg -i "%%F" -c:v libx264 -c:a aac -strict experimental -b:a 192k "%%~dpnF.mp4"
)
答案1
@echo off
cd /d "D:\The\Full\Path\To\Folder\"
set "_FFbin=C:\Program Files\FFmpeg\bin\ffmpeg.exe"
set "_FFswt=-hide_banner -v error -stats -c:v libx264"
set "_FFswt=%_FFswt% -c:a aac -strict experimental -b:a 192k"
for /f ^delims^= %%i in =;(' 2^>nul %__AppDir__%where.exe /r . *.avi *.vob *.mpg
');= do echo/ & echo\ Input: "%%~dpnxi" && echo\Output: "%%~dpni.mp4" && =;(
"%_FFbin%" -y -i "%%~dpnxi" %_FFswt% "%%~dpni.mp4" && echo========= );=