Windows下视频文件处理脚本 - Mr.Ding

Windows下视频文件处理脚本

天天记事 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





ffmpegbat