拖放 ffmpeg 批处理文件

Drag and drop ffmpeg batch file

我对 ffmpeg 几乎一无所知,发现了这个不错的拖放脚本,但它当时只适用于一个文件。可以修改为同时处理多个文件吗?

pushd %~dp0
echo Encoding 720p ... 
ffmpeg.exe -i "%~1" -vf scale=1280x720:flags=spline,format=yuv420p,"subtitles='%~n1'%~x1" -map_metadata -1 -movflags faststart -c:v libx264 -profile:v main -level:v 4.0 -preset veryfast -crf 16 -maxrate 20M -bufsize 25M -x264-params colormatrix=bt709 -c:a copy "%~n1_720p.mp4"
popd
echo Done. 
PAUSE

您需要在 %* 上 运行 一个 for 循环来执行每个项目的操作,然后在 ffmpeg 命令中使用元变量(这将是每个拖动的项目):

@echo off
pushd %~dp0
echo Encoding 720p ... 
for %%i in (%*) do if not exist "%%~ni_720p.mp4" (
   ffmpeg.exe -i "%%~i" -vf scale=1280x720:flags=spline,format=yuv420p,"subtitles='%%~ni'%%~xi" -map_metadata -1 -movflags faststart -c:v libx264 -profile:v main -level:v 4.0 -preset veryfast -crf 16 -maxrate 20M -bufsize 25M -x264-params colormatrix=bt709 -c:a copy "%%~ni_720p.mp4"
)
popd
echo Done..

注意!此代码未经测试,因为我是通过手机发布的。