拖放 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..
注意!此代码未经测试,因为我是通过手机发布的。
我对 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..
注意!此代码未经测试,因为我是通过手机发布的。