在文件夹及其所有子文件夹上运行 ffmpeg,仅转换某些视频类型

在文件夹及其所有子文件夹上运行 ffmpeg,仅转换某些视频类型

如何使用 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========= );=


相关内容