Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @echo off
- cd %~dp0
- if "%~f1" == "" goto fail
- echo Preparing to recode "%~f1"...
- setlocal enabledelayedexpansion
- set tmpname=%Time%
- set tmpname=%tmpname::=%
- set tmpname=%tmpname:.=%
- set tmpname=%tmpname:,=%
- set tmpname=%tmpname: =%
- for /l %%a in (0,1,1) do set tmpname=!tmpname!!random!
- endlocal & set tmpfile=%tmpname%
- if not exist tmp mkdir tmp
- del /q tmp\*.*
- echo Building Avisynth script...
- echo LoadPlugin("%~dp0bin\plugins\ffms2.dll") > tmp\%tmpfile%.avs
- echo LoadPlugin("%~dp0bin\plugins\vsfilter.dll") >> tmp\%tmpfile%.avs
- echo LoadPlugin("%~dp0bin\plugins\LoadFont.dll") >> tmp\%tmpfile%.avs
- echo Import("%~dp0bin\plugins\ResizeKAR.avsi") >> tmp\%tmpfile%.avs
- echo FFIndex("%~f1",cachefile="%~dp0tmp\%tmpfile%.index") >> tmp\%tmpfile%.avs
- echo v=FFVideoSource("%~f1",cachefile="%~dp0tmp\%tmpfile%.index").ChangeFPS(23.976) >> tmp\%tmpfile%.avs
- echo a=FFAudioSource("%~f1",cachefile="%~dp0tmp\%tmpfile%.index") >> tmp\%tmpfile%.avs
- echo AudioDub(v,a) >> tmp\%tmpfile%.avs
- if not exist "%~dpn1.ass" goto srt
- echo Detected external ASS subtitles...
- echo TextSub("%~dpn1.ass") >> tmp\%tmpfile%.avs
- goto endsub
- :srt
- if not exist "%~dpn1.srt" goto internal
- echo Detected external SRT subtitles...
- echo TextSub("%~dpn1.srt") >> tmp\%tmpfile%.avs
- goto endsub
- :internal
- if /i "%~x1" NEQ ".mkv" goto endsub
- echo Detected MKV container. Trying to parse...
- set subnum == ""
- bin\mkvmerge -i "%~f1" >> tmp\%tmpfile%.info
- findstr subtitles tmp\%tmpfile%.info >> tmp\%tmpfile%.subsinfo
- for /f "tokens=3 delims=: " %%a in (tmp\%tmpfile%.subsinfo) do set subnum=%%a
- if %subnum% == "" goto endsub
- echo Detected internal subtitles. Extracting...
- findstr truetype tmp\%tmpfile%.info >> tmp\%tmpfile%.fontsinfo
- for /f "tokens=1,5 delims=:'" %%i in (tmp\%tmpfile%.fontsinfo) do for /f "tokens=3" %%k in ("%%i") do (
- bin\mkvextract attachments "%~f1" %%k:"tmp\%%j" > nul
- echo LoadFont^("%~dp0tmp\%%j"^) >> tmp\%tmpfile%.avs
- )
- bin\mkvextract tracks "%~f1" %subnum%:"tmp\%tmpfile%.ass" > nul
- echo TextSub("%~dp0tmp\%tmpfile%.ass") >> tmp\%tmpfile%.avs
- :endsub
- echo ResizeKAR(640,360) >> tmp\%tmpfile%.avs
- rem echo Trim(0,300) >> tmp\%tmpfile%.avs
- echo Avisynth script is ready.
- echo Encoding video. Pass 1...
- bin\xvid_encraw -i tmp\%tmpfile%.avs -o nul -pass1 tmp\%tmpfile%.stats -w 640 -h 360 -framerate 23.976 -bitrate 550 -max_bframes 0 -progress
- echo Encoding video. Pass 2...
- bin\xvid_encraw -i tmp\%tmpfile%.avs -avi tmp\%tmpfile%.avi -pass2 tmp\%tmpfile%.stats -w 640 -h 360 -framerate 23.976 -bitrate 550 -max_bframes 0 -progress
- echo Encoding audio...
- bin\ffmpeg -i tmp\%tmpfile%.avs -vn -acodec pcm_s16le -f wav -y tmp\%tmpfile%.wav
- bin\neroaacenc -br 96000 -lc -2pass -if tmp\%tmpfile%.wav -of tmp\%tmpfile%.m4a
- echo Muxing...
- if exist "%~dpn1.phone.mp4" del "%~dpn1.phone.mp4"
- bin\mp4box -add tmp\%tmpfile%.avi -add tmp\%tmpfile%.m4a "%~dpn1.phone.mp4"
- echo Removing temporary files...
- del /q tmp\%tmpfile%.*
- del /q tmp\*.?tf
- echo Recode is completed.
- goto done
- :fail
- echo FAIL
- :done
- pause
Add Comment
Please, Sign In to add comment