天天记事 1269 / 2020-04-29 12:31:47
此脚本适合于windows操作系统,了解linux下的脚本可阅读 Linux视频文件处理脚本 windows下的方法和linux是一样的
@echo off
setlocal enabledelayedexpansion 
set filename=%1
if not defined filename goto :SHOWHELP
for /f "delims=" %%i in ('ffmpeg -i "!filename!" 2^>^&1') do (
	echo %%i | findstr "Duration:" > nul && (set vtime=%%i)
	echo %%i | findstr "Video:" > nul && (set vsize=%%i)
	if defined vtime if defined vsize goto :checkfinished
)
:checkfinished
if defined vtime (
	set times=0
	for %%i in ('echo !vtime!') do (
		if "!times!"=="2" (
			set vvtime=%%i
			for /f "tokens=1 delims=." %%a IN ('echo !vvtime!') DO set vvtime=%%a
			goto :ccvtimefinished
		)
		set /a times=times+1
	)
)
:ccvtimefinished
if defined vsize (
	for %%i in ('echo !vsize!') do (
		@echo %%i | findstr "[0-9][0-9][0-9]*x[0-9][0-9][0-9]*" > nul && (
			set vvsize=%%i
			for /f "tokens=1 delims=x" %%a IN ('echo !vvsize!') DO set vvwidth=%%a
			for /f "tokens=2 delims=x" %%a IN ('echo !vvsize!') DO set vvheight=%%a
			goto :ccvsizefinished
		)
	)
)
:ccvsizefinished
set dwidth=%2
if not defined dwidth (
	echo 视频时长: !vvtime!
	echo 视频尺寸: !vvsize!
	goto :EOFSCRIPT
)
set /a dheight=!dwidth!*!vvheight!/!vvwidth!
set vvdsize=!dwidth!^x!dheight!
set savepath=%3
if not defined savepath (
	echo 视频时长: !vvtime!
	echo 视频尺寸: !vvsize! =^> !vvdsize!
	goto :EOFSCRIPT
)
shift & shift & shift
echo 视频时长: !vvtime!
echo 视频尺寸: !vvsize! =^> !vvdsize!
set pArgs=
set tmpArg=%1
shift
:genArgs
if defined tmpArg (
	set pArgs=!pArgs! !tmpArg!
	shift
	set tmpArg=%1
	goto :genArgs
)
echo 处理命令: ffmpeg -y -i "!filename!" -s "!vvdsize!"!pArgs! "!savepath!"
echo 即将开始处理(按Ctrl+C可终止脚本执行)
pause
ffmpeg -y -i "!filename!" -s "!vvdsize!"!pArgs! "!savepath!"
goto :EOFSCRIPT
:SHOWHELP
echo ===========================================
echo 文件转换脚本"
echo ===========================================
echo 1. 获取视频尺寸
echo   mediainfo ^<SourceFilePath^>
echo 2. 获取视频转换信息
echo   mediainfo ^<SourceFilePath^> ^<ToWidth^>
echo 3. 视频转换"
echo   mediainfo ^<SourceFilePath^> ^<ToWidth^> ^<SaveFilePath^> [ffmpegArguments]
echo ===========================================
:EOFSCRIPT下一篇:Linux下视频文件处理脚本