Browser view only. Use the download link if you want to save the file.
Back to Toolbox@echo off
set versionnum=4.6
:: Versions
:: rem 1.0 initial release
:: rem 1.1 used remoteshooter flag to trigger sameq x265 for master, rather than crf18 for minimum size needed for send-in masters. Folder name reflects this
:: rem 1.2 added similar.exe support (optional) to check for concat with wildly differing filenames
:: rem 1.3 - fixed bug where 16x9 was translated to 4:3 in param.
:: - enabled archiverez use, which was there but not called out in params.
:: - Prettied the see files function
:: - Started groups for joining in Seefiles
:: rem 1.4 - added DAR/Rez/samplerate comparison against all files in list -- that's you Nora!
:: rem 1.5 - added debug stuff with line numbers
:: rem 1.6 - added support for passing in video adjustments (brightness, contrast, etc), and MTS joining before conversion
:: rem 1.7 - added support for makeARCHIVE=0 going straight to MP4, processing from root. MakeMP4 and MakeMP3 should still function as expected
:: rem 1.8 - added skip for DAR/rez/samplerates check when concat is 0 -- they don't have to match if they aren't being joined
:: rem 1.9 - added duration check
:: rem 2.0 - added support for up to 20 files; fixed duration to re-read the merged file when MTS pre-merge is used
:: - reloaded file stats after MTS joining -- not that the runtime will be right, but we'll cross that bridge later
:: rem 2.1 - added 2nd remoteshooter mode to make mp4 and no archive
:: rem 2.2 - added batch_masters mode to have dissimilar filenames, no single witnessname, but each filebase is its own witnessname.
:: This lets you convert a bunch of different witness files in a single folder with or without MKV generation enabled
:: rem 2.3 - Added pass-through support for Audioboost in decimal form only (no X in the string). No folder name indication yet
:: rem 2.4 - Fixed concat to have -y to overwrite existing concat file without halting there for keypress
:: - Fixed remoteshooter last minute window pop open to be x265 sameq folder, since Toutfolder was set per MP4 use (but skipped)
:: rem 2.5 - Fixed accidentally forgotten comma in 2 of the 3 scale params
:: rem 2.6 - Adjusted threads down to 2 for better running of multiples at once
:: - added duration of video in the title bars
:: rem 2.7 - Fixed bug with transition from [10] to [11]. (just a typo)
:: rem 2.8 - Added remote shooter modes 3 and 4 for CRF18
:: rem 2.9 - Fixed Terry's bug where RemoteShooter 3 and 4 weren't fully fleshed out. Killed folder open and launch to WeTransfer for
:: remote shooter modes.
:: rem 3.0 - Added Wetransfer kickoff back in
:: rem 3.1 - Added HW enable for Nvidia as experimental (disabled by default) and now threads is configurable
:: rem 3.2 - Added second move line with ?? instead of just ?, in order to catch #10 on.
:: rem 3.3 - Added warning if framerates differ among files, and also a warning if the video isn't 29.97, 30, 59.97, or 60 fps
:: rem 3.4 - Beefed up explanations of fatal detections, but concat=0 still doesn't give big warning5 blerb
:: rem 3.5 - Big rework of warnings and fatalcaught blerb, went to warning5x pairs system
:: rem 3.6 - Added support for Mpeg1 480p 1800k as passed in by targetrezstring being set to mpg1
:: rem 3.7 - Tweaked initial FSM prompt to be small, and put big help screen under a Help key choice
:: rem 3.8 - Fixed bug that still made MP4 when Mpg1 selected for target (at least with stack of masters mode, not sure of other modes)
:: rem 3.9 - Added 60000/1001 to list of known good framerates. Softened warning about 25fps, since it's fine, just not optimal
:: rem 4.0 - Added call to cleanuptools.bat if found. Just remove that if you want to do multiple runs without reloading the toolset
:: rem 4.1 - Added duration check just above each FFmpeg call for more accurate conversion times after concat
:: rem 4.2 - Fixed cleanuptools being called if user aborts before conversion (ie, from help screen), tweaked some warning messages to be less scary
:: rem 4.3 - Added "-select_streams v:0" to all FFprobe checks to not catch subtitles with 1920 width throwing off comparisons (and in videoinfo.bat too)
:: rem 4.4 - Added check for filecount==1 to skip repair mode entirely. Removed warning for 25fps
:: rem 4.5 - Removed repair mode prompt up front, staying in normal mode until we hit issues. Demoted some warnings to non-fatal (codec,samplerate)
:: since we rail these (unless MKV=joining pre conversion).
:: rem 4.6 - Fixed missing quotes on %sourcefile% in the duration checks added recently. Added new duration check for concatted file so window title
:: will have right runtime. Didn't work because of binary concat.
:: To Do : get F7 (stack?) not dependent on ..\ffmpeg.exe, make it .\
:: Make split and trim use ultrafast mode when only repair choice made
:: Remote shooter modes:
:: 1= Mkv x265 sameq only
:: 2= Mp4 x264 sameq only
:: 3= Mkv x265 crf18 only
:: 4= Mp4 x264 crf18 only
set remoteshooter=0
if not exist settings.bat goto error0
if not exist ffmpeg.exe goto error1
if not exist ffprobe.exe goto error2
if not exist automini.bat goto error3
:: set hwenable=-hwaccel cuda -hwaccel_output_format cuda
set threadcount=2
set allow_upscales=1
set enable_debug=1
if [%enable_debug%]==[1] set logfile=%~pn0.log
if [%enable_debug%]==[0] set logfile=NUL
set debug=echo.
%debug% (L51) %~n0 v%versionnum% starting >"%logfile%"
echo %~n0 ver %versionnum%
%debug% ======================================== >>"%logfile%"
%debug% (L64) Calling settings >>"%logfile%"
call settings.bat
echo. ===== Settings.bat ===== >>"%logfile%"
type settings.bat >>"%logfile%"
echo. ======================== >>"%logfile%"
if [%remoteshooter%] == [0] goto normalstart
if not defined remoteshooter goto normalstart
echo.
echo **************************************************
echo ******* REMOTE SHOOTER MODE %remoteshooter% ENABLED!!! *********
echo **************************************************
echo.
timeout /t 4 >nul
:normalstart
if [%filecount%] == [1] set concat=0
if [%remoteshooter%] == [1] set makeMP4=0
if [%remoteshooter%] == [2] set makeMP4=1
if [%remoteshooter%] == [1] set makeMP3=0
if [%remoteshooter%] == [2] set makeMP3=0
:checkToolMode
:: if there's only one file, no need to check tool mode or even use repair mode. Just go normal
if x%filecount%x == x1x goto gonormal
:: the next jump below might render checking of allow_upscale below it useless but leaving the below code in case this is bad and pulled out later
if /i x%allow_upscales%x == x1x goto wereupscaling
:: if we're here, it's strict no-upscaling mode (ie, NORMAL mode)
:: so run checks 1 and 2 which are upscale checks on Archive then Target
goto normalflow
:wereupscaling
:: [KH testing] Let's skip the choice now and stick with normal and only ask if they hit issues.
set allow_upscales=0
goto normalflow
:: [KH testing] end of patch
echo.
echo.
echo Do you expect these files to be inconsistent?
echo.
echo. N = Normal -- these files are from a camera or ninja, same across the whole set
echo.
echo. R = Repair Mode -- files are inconsistent resolution, aspect, etc
echo.
echo. H = Help, tell me more about this choice
echo.
echo. Q = Quit the program for now
echo.
echo.
choice /c nrqhm /n /m "Normal or Repair Mode? [R/N/Q/H] "
if errorlevel 5 goto moreinfo
if errorlevel 4 goto moreinfo
if errorlevel 3 goto end3
if errorlevel 2 goto stayforced
if errorlevel 1 goto gonormal
goto end3
:moreinfo
cls
echo.
echo. REPAIR MODE is available.
echo.
echo. Repair mode allows you to repair bizarre filesets, like you might get from ZOOM or bad videographers, where the
echo. resolution / framerate / aspect ratio are different from file to file. Zoom is known to break files and change
echo. parameters based on internet conditions, right in the middle of a recording, without you even pausing. Files
echo. that vary across the set cannot be joined together into one video because weird distortions will happen when
echo. they are played. Your videos will be unusable.
echo.
echo. IMPORTANT: In order to repair files of different resolution, you MUST SCALE YOUR ARCHIVE TO SOME RESOLUTION
echo. TO REPAIR THEM. That means picking something OTHER than "noscale" for the archive size.
echo. Whatever resolution you request WILL be used on all files, whether it's upscaling, downscaling, or some of both.
echo.
echo. --------------------------------------
echo. Your archive is set to %archiverezstring%
echo. --------------------------------------
echo.
echo. After changing to a scaled resolution, such as 720p, 480p, etc, everything should join together correctly and
echo. play nicely on any player and sync without issues. Note that if the ASPECT RATIO varies across the files, this
echo. could stretch or squeeze that part of the video relative to other parts, and it might require video editing that
echo. piece to make it look ok before joining.
echo.
echo. On the other hand, if you are processing files from your Ninja or Camcorder, weird file differences are not going
echo. to happen, unless you did something dumb.
echo.
echo. Either way, the program will look at settings you've chosen and try to predict whether it's a good idea to
echo. continue or not.
echo.
echo. In short, if you think your files will be perfectly matched, you probably want NORMAL mode, so your archive is
echo. the best it can be. If you are processing files from Zoom or random videographers, you might need Repair Mode.
echo. If you aren't sure what to choose, try Normal mode first. If anything is wrong, it will be detected and give you
echo. warnings and suggestions.
echo.
echo. N = Normal mode -- my files should be perfect!
echo.
echo. R = Repair mode -- these files might be junk!
echo.
echo. Q = Quit the program for now, I'll start again after I talk to Kelly
echo.
echo.
choice /c rnq /n /m "Stay in Repair Mode? [R/N/Q] "
if errorlevel 3 goto end3
if errorlevel 2 goto gonormal
if errorlevel 1 goto stayforced
goto end3
:stayforced
::was bypasswarn
if x%concat%x == x0x goto normalflow
set noscalearchive=0
set noscaletarget=0
if /i not x%archiverezstring%x == xnoscalex goto normalflow
echo Continuing with FSM and archive set to NOSCALE, this should be fun
timeout /t 3 >nul
goto normalflow
:gonormal
set allow_upscales=0
goto normalflow
:normalflow
:: now let's make sure the files exist
set badlist=
if not defined filename[1] goto filecheck2
if not exist %filename[1]% set badlist=%badlist% %filename[1]%
:filecheck2
if not defined filename[2] goto filecheck3
if not exist %filename[2]% set badlist=%badlist% %filename[2]%
:filecheck3
if not defined filename[3] goto filecheck4
if not exist %filename[3]% set badlist=%badlist% %filename[3]%
:filecheck4
if not defined filename[4] goto filecheck5
if not exist %filename[4]% set badlist=%badlist% %filename[4]%
:filecheck5
if not defined filename[5] goto filecheck6
if not exist %filename[5]% set badlist=%badlist% %filename[5]%
:filecheck6
if not defined filename[6] goto filecheck7
if not exist %filename[6]% set badlist=%badlist% %filename[6]%
:filecheck7
if not defined filename[7] goto filecheck8
if not exist %filename[7]% set badlist=%badlist% %filename[7]%
:filecheck8
if not defined filename[8] goto filecheck9
if not exist %filename[8]% set badlist=%badlist% %filename[8]%
:filecheck9
if not defined filename[9] goto filecheck10
if not exist %filename[9]% set badlist=%badlist% %filename[9]%
:filecheck10
if not defined badlist goto afterfilechecks
cls
echo.
echo. Fatal : these files are not here : %badlist%
echo.
echo. Perhaps they got moved to an "orig %filetype% files" folder?
echo.
goto end3
:afterfilechecks
cls
%debug% (L87) (time=%time%) Grabbing file stats of first file >>"%logfile%"
:: Read file statistics from first file in the list and store info in variables
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "width=%%I"
rem echo Width is: %width%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "height=%%I"
rem echo Height is: %height%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "display_aspect_ratio=%%I"
rem echo Aspect is: %display_aspect_ratio%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "samplerate=%%I"
rem echo Sample_rate is: %samplerate%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=profile -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "profile=%%I"
rem echo Profile is: %profile%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "framerate=%%I"
rem echo Framerate is: %framerate%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "codec=%%I"
rem echo Codec is %codec%
%debug% (L101) (time=%time%) File stats based on file %filename[1]%. >>"%logfile%"
%debug% (L102) (time=%time%) File stats found : Width=%width%. >>"%logfile%"
%debug% (L103) (time=%time%) File stats found : Height=%height%. >>"%logfile%"
%debug% (L104) (time=%time%) File stats found : Aspect=%display_aspect_ratio%. >>"%logfile%"
%debug% (L105) (time=%time%) File stats found : Sample=%samplerate%. >>"%logfile%"
%debug% (L106) (time=%time%) File stats found : Profile=%profile%. >>"%logfile%"
%debug% (L107) (time=%time%) File stats found : Framerate=%framerate%. >>"%logfile%"
%debug% (L107) (time=%time%) File stats found : Codec=%codec%. >>"%logfile%"
:check1
%debug% (L111) (time=%time%) Warning1 check >>"%logfile%"
if /i x%allow_upscales%x == x1x goto check2
:: ============ Warn if we're about to upscale ARCHIVE ==============
set Warning1=
set rezcheck=
if [%archiverezstring%] == [1080p] set rezcheck=1080
if [%archiverezstring%] == [720p] set rezcheck=720
if [%archiverezstring%] == [480p] set rezcheck=480
if [%rezcheck%]==[] goto check2
if %height% GTR %rezcheck% goto check2
if %height% EQU %rezcheck% set Warning1=ADJUSTMENT : Source is %height%p and you requested %rezcheck%p ARCHIVE! Setting it to noscale to avoid needless resize
if %height% LSS %rezcheck% set Warning1=ADJUSTMENT : Source is %height%p and you requested %rezcheck%p ARCHIVE! Setting it to noscale to avoid upscale
set archiverez=0
set archiverezstring=noscale
:: ============ Warn if we're about to upscale TARGET ==============
:check2
if /i x%allow_upscales%x == x1x goto check3
%debug% (L127) (time=%time%) Warning2 check. Height=%height%. >>"%logfile%"
set Warning2=
set rezcheck=
if [%targetrezstring%] == [1080p] set rezcheck=1080
if [%targetrezstring%] == [720p] set rezcheck=720
if [%targetrezstring%] == [480p] set rezcheck=480
:: if we're doing Mpeg1, just skip this cuz we don't care if we upscale and don't want targetrezstring getting axed (which make MP4 come back into swing)
if [%targetrezstring%] == [mpg1] goto check3
if [%rezcheck%]==[] goto check3
if %height% GTR %rezcheck% goto check3
if %height% EQU %rezcheck% goto needless
:: if we're here, it wants to upscale the target because LSS is true. Let's decide to do that based on an override variable
if /i x%allow_upscales%x == x1x goto gonnaupscale
:: didn't jump, allow_upscales must be off
set Warning2=ADJUSTMENT : Source is %height%p - changing %rezcheck%p request to noscale for TARGET rez, to avoid upscale
set targetrez=0
if [%targetrezstring%] == [mpg1] goto nolosempg1
set targetrezstring=noscale
goto check3
:gonnaupscale
set Warning2=WARNING : %height%p source being UPSCALED to %rezcheck%p because Allow_Upscales is ON
goto check3
:needless
set Warning2=ADJUSTMENT : Source is %height%p and you requested %rezcheck%p TARGET! Setting it to noscale to avoid needless resize
set targetrez=0
set targetrezstring=noscale
goto check3
:bypasswarn
rem set Warning2a=WARNING : ARCHIVE and TARGET scaling is enabled because the Allow_Upscales variable is ON (A=%archiverezstring% / T=%targetrezstring%)
goto check3
:: ============ Warn if we're about to double crop ==============
:check3
%debug% (L142) (time=%time%) Warning3 check >>"%logfile%"
set Warning3=
if [%display_aspect_ratio%] == [4:3] goto check3b
goto check4
:check3b
if [%crop%] == [0] goto check4
set Warning3=Source video already 4x3. Turning off the CROP request
set crop=0
:: ============ Warn if audio bitrate breaks sync ==============
:check4
%debug% (L154) (time=%time%) Warning4 check >>"%logfile%"
set Warning4=
if x%samplerate%x == x48000x goto audioOK
if x%samplerate%x == x44100x goto audioOK
set Warning4=Audio bitrate isn't 48000 or 44100 (Yeslaw won't sync). Setting 48k audio
set afix44k=1
:audioOK
:: ============ Check that all the Rez and DARs are the same for all the files ==============
:check5
%debug% (L165) (time=%time%) Warning5 check >>"%logfile%"
set Warning5=
set Warning5a=
set Warning5b=
set Warning5c=
set Warning5d=
set Warning5e=
set Warning5f=
set Warning5g=
set Warning5h=
set Warning5i=
set Warning5j=
set fatalcaught=
set mismatches=
set mask=
echo.
echo. Let me check out these files...
echo.
:DARload
%debug% (L175) (time=%time%) DARload >>"%logfile%"
:: screw it, I'll just hardcode them
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "width[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "height[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "DAR[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "samplerate[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "duration[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "framerate[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "codecs[1]=%%I"
if not defined filename[2] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "width[2]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "height[2]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "DAR[2]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "samplerate[2]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "duration[2]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "framerate[2]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[2]%" 2^>^&1') do set "codecs[2]=%%I"
if not defined filename[3] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "width[3]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "height[3]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "DAR[3]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "samplerate[3]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "duration[3]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "framerate[3]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[3]%" 2^>^&1') do set "codecs[3]=%%I"
if not defined filename[4] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "width[4]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "height[4]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "DAR[4]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "samplerate[4]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "duration[4]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "framerate[4]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[4]%" 2^>^&1') do set "codecs[4]=%%I"
if not defined filename[5] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "width[5]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "height[5]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "DAR[5]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "samplerate[5]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "duration[5]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "framerate[5]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[5]%" 2^>^&1') do set "codecs[5]=%%I"
if not defined filename[6] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "width[6]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "height[6]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "DAR[6]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "samplerate[6]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "duration[6]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "framerate[6]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[6]%" 2^>^&1') do set "codecs[6]=%%I"
if not defined filename[7] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "width[7]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "height[7]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "DAR[7]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "samplerate[7]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "duration[7]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "framerate[7]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[7]%" 2^>^&1') do set "codecs[7]=%%I"
if not defined filename[8] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "width[8]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "height[8]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "DAR[8]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "samplerate[8]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "duration[8]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "framerate[8]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[8]%" 2^>^&1') do set "codecs[8]=%%I"
if not defined filename[9] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "width[9]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "height[9]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "DAR[9]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "samplerate[9]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "duration[9]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "framerate[9]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[9]%" 2^>^&1') do set "codecs[9]=%%I"
if not defined filename[10] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "width[10]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "height[10]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "DAR[10]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "samplerate[10]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "duration[10]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "framerate[10]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[10]%" 2^>^&1') do set "codecs[10]=%%I"
if not defined filename[11] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "width[11]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "height[11]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "DAR[11]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "samplerate[11]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "duration[11]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "framerate[11]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[11]%" 2^>^&1') do set "codecs[11]=%%I"
if not defined filename[12] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "width[12]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "height[12]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "DAR[12]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "samplerate[12]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "duration[12]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "framerate[12]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[12]%" 2^>^&1') do set "codecs[12]=%%I"
if not defined filename[13] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "width[13]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "height[13]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "DAR[13]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "samplerate[13]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "duration[13]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "framerate[13]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[13]%" 2^>^&1') do set "codecs[13]=%%I"
if not defined filename[14] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "width[14]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "height[14]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "DAR[14]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "samplerate[14]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "duration[14]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "framerate[14]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[14]%" 2^>^&1') do set "codecs[14]=%%I"
if not defined filename[15] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "width[15]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "height[15]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "DAR[15]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "samplerate[15]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "duration[15]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "framerate[15]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[15]%" 2^>^&1') do set "codecs[15]=%%I"
if not defined filename[16] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "width[16]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "height[16]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "DAR[16]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "samplerate[16]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "duration[16]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "framerate[16]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[16]%" 2^>^&1') do set "codecs[16]=%%I"
if not defined filename[17] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "width[17]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "height[17]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "DAR[17]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "samplerate[17]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "duration[17]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "framerate[17]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[17]%" 2^>^&1') do set "codecs[17]=%%I"
if not defined filename[18] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "width[18]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "height[18]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "DAR[18]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "samplerate[18]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "duration[18]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "framerate[18]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[18]%" 2^>^&1') do set "codecs[18]=%%I"
if not defined filename[19] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "width[19]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "height[19]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "DAR[19]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "samplerate[19]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "duration[19]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "framerate[19]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[19]%" 2^>^&1') do set "codecs[19]=%%I"
if not defined filename[20] goto afterDARload
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "width[20]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "height[20]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "DAR[20]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "samplerate[20]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "duration[20]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=avg_frame_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "framerate[20]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=codec_name -of default^=noprint_wrappers^=1:nokey^=1 "%filename[20]%" 2^>^&1') do set "codecs[20]=%%I"
:afterDARload
:: if we aren't concatting, we can skip the safety checks for rez,aspect,samplerate being the same across the list -- we're doing individual files, which
:: could even be multiple witnesses from different shooters
:: [kh] turning it back on even for concat=0 because we want a warning for differing resolutions
rem [kh] if [%concat%] == [0] goto showlist
:DARcompares
%debug% (L344) (time=%time%) DARcompares - heights >>"%logfile%"
set badheights=
if not defined height[1] goto endheights
if not defined height[2] goto endheights
if not %height[1]% == %height[2]% set badheights=%badheights% %filename[2]%
if not defined height[3] goto endheights
if not %height[1]% == %height[3]% set badheights=%badheights% %filename[3]%
if not defined height[4] goto endheights
if not %height[1]% == %height[4]% set badheights=%badheights% %filename[4]%
if not defined height[5] goto endheights
if not %height[1]% == %height[5]% set badheights=%badheights% %filename[5]%
if not defined height[6] goto endheights
if not %height[1]% == %height[6]% set badheights=%badheights% %filename[6]%
if not defined height[7] goto endheights
if not %height[1]% == %height[7]% set badheights=%badheights% %filename[7]%
if not defined height[8] goto endheights
if not %height[1]% == %height[8]% set badheights=%badheights% %filename[8]%
if not defined height[9] goto endheights
if not %height[1]% == %height[9]% set badheights=%badheights% %filename[9]%
if not defined height[10] goto endheights
if not %height[1]% == %height[10]% set badheights=%badheights% %filename[10]%
if not defined height[11] goto endheights
if not %height[1]% == %height[11]% set badheights=%badheights% %filename[11]%
if not defined height[12] goto endheights
if not %height[1]% == %height[12]% set badheights=%badheights% %filename[12]%
if not defined height[13] goto endheights
if not %height[1]% == %height[13]% set badheights=%badheights% %filename[13]%
if not defined height[14] goto endheights
if not %height[1]% == %height[14]% set badheights=%badheights% %filename[14]%
if not defined height[15] goto endheights
if not %height[1]% == %height[15]% set badheights=%badheights% %filename[15]%
if not defined height[16] goto endheights
if not %height[1]% == %height[16]% set badheights=%badheights% %filename[16]%
if not defined height[17] goto endheights
if not %height[1]% == %height[17]% set badheights=%badheights% %filename[17]%
if not defined height[18] goto endheights
if not %height[1]% == %height[18]% set badheights=%badheights% %filename[18]%
if not defined height[19] goto endheights
if not %height[1]% == %height[19]% set badheights=%badheights% %filename[19]%
if not defined height[20] goto endheights
if not %height[1]% == %height[20]% set badheights=%badheights% %filename[20]%
:endheights
if not defined badheights goto allgood1
set Warning5a=PROBLEM : %filename[1]% is %height[1]% pixels tall, but these files aren't : %badheights%
set mask=%concat%-%allow_upscales%
if x%mask%x == x0-0x set Warning5b=PREDICTION : Joining is off, OK to continue, but final files WILL DIFFER
if x%mask%x == x0-1x set Warning5b=PREDICTION: You aren't joining, and upscaling is enabled, so you should be ok.
if x%mask%x == x1-0x set Warning5b=PREDICTION: Joining is ON but forced scaling isn't - FILES WILL BE BAD!
if x%mask%x == x1-1x set Warning5b=PREDICTION: Joining is ON, but so is forced scaling - should be OK to continue
if x%mask%x == x1-0x set fatalcaught=1
set mismatches=1
:allgood1
%debug% (L389) (time=%time%) DARcompares - widths >>"%logfile%"
set badwidths=
if not defined width[1] goto endwidths
if not defined width[2] goto endwidths
if not %width[1]% == %width[2]% set badwidths=%badwidths% %filename[2]%
if not defined width[3] goto endwidths
if not %width[1]% == %width[3]% set badwidths=%badwidths% %filename[3]%
if not defined width[4] goto endwidths
if not %width[1]% == %width[4]% set badwidths=%badwidths% %filename[4]%
if not defined width[5] goto endwidths
if not %width[1]% == %width[5]% set badwidths=%badwidths% %filename[5]%
if not defined width[6] goto endwidths
if not %width[1]% == %width[6]% set badwidths=%badwidths% %filename[6]%
if not defined width[7] goto endwidths
if not %width[1]% == %width[7]% set badwidths=%badwidths% %filename[7]%
if not defined width[8] goto endwidths
if not %width[1]% == %width[8]% set badwidths=%badwidths% %filename[8]%
if not defined width[9] goto endwidths
if not %width[1]% == %width[9]% set badwidths=%badwidths% %filename[9]%
if not defined width[10] goto endwidths
if not %width[1]% == %width[10]% set badwidths=%badwidths% %filename[10]%
if not defined width[11] goto endwidths
if not %width[1]% == %width[11]% set badwidths=%badwidths% %filename[11]%
if not defined width[12] goto endwidths
if not %width[1]% == %width[12]% set badwidths=%badwidths% %filename[12]%
if not defined width[13] goto endwidths
if not %width[1]% == %width[13]% set badwidths=%badwidths% %filename[13]%
if not defined width[14] goto endwidths
if not %width[1]% == %width[14]% set badwidths=%badwidths% %filename[14]%
if not defined width[15] goto endwidths
if not %width[1]% == %width[15]% set badwidths=%badwidths% %filename[15]%
if not defined width[16] goto endwidths
if not %width[1]% == %width[16]% set badwidths=%badwidths% %filename[16]%
if not defined width[17] goto endwidths
if not %width[1]% == %width[17]% set badwidths=%badwidths% %filename[17]%
if not defined width[18] goto endwidths
if not %width[1]% == %width[18]% set badwidths=%badwidths% %filename[18]%
if not defined width[19] goto endwidths
if not %width[1]% == %width[19]% set badwidths=%badwidths% %filename[19]%
if not defined width[20] goto endwidths
if not %width[1]% == %width[20]% set badwidths=%badwidths% %filename[20]%
:endwidths
if not defined badwidths goto allgood2
set Warning5c=PROBLEM : %filename[1]% is %width% pixels wide, but these files aren't : %badwidths%
set mask=%concat%-%allow_upscales%
if x%mask%x == x0-0x set Warning5d=PREDICTION : Joining is off, OK to continue, but final files WILL DIFFER
if x%mask%x == x0-1x set Warning5d=PREDICTION: You aren't joining, and upscaling is enabled, so you should be ok.
if x%mask%x == x1-0x set Warning5d=PREDICTION: Joining is ON but forced scaling isn't - FILES WILL BE BAD!
if x%mask%x == x1-1x set Warning5d=PREDICTION: Joining is ON, but so is forced scaling - should be OK to continue
if x%mask%x == x1-0x set fatalcaught=1
set mismatches=1
:allgood2
%debug% (L434) (time=%time%) DARcompares - aspects >>"%logfile%"
set badDARs=
if not defined DAR[1] goto endDARs
if not defined DAR[2] goto endDARs
if not %DAR[1]% == %DAR[2]% set badDARs=%badDARs% %filename[2]%
if not defined DAR[3] goto endDARs
if not %DAR[1]% == %DAR[3]% set badDARs=%badDARs% %filename[3]%
if not defined DAR[4] goto endDARs
if not %DAR[1]% == %DAR[4]% set badDARs=%badDARs% %filename[4]%
if not defined DAR[5] goto endDARs
if not %DAR[1]% == %DAR[5]% set badDARs=%badDARs% %filename[5]%
if not defined DAR[6] goto endDARs
if not %DAR[1]% == %DAR[6]% set badDARs=%badDARs% %filename[6]%
if not defined DAR[7] goto endDARs
if not %DAR[1]% == %DAR[7]% set badDARs=%badDARs% %filename[7]%
if not defined DAR[8] goto endDARs
if not %DAR[1]% == %DAR[8]% set badDARs=%badDARs% %filename[8]%
if not defined DAR[9] goto endDARs
if not %DAR[1]% == %DAR[9]% set badDARs=%badDARs% %filename[9]%
if not defined DAR[10] goto endDARs
if not %DAR[1]% == %DAR[10]% set badDARs=%badDARs% %filename[10]%
if not defined DAR[11] goto endDARs
if not %DAR[1]% == %DAR[11]% set badDARs=%badDARs% %filename[11]%
if not defined DAR[12] goto endDARs
if not %DAR[1]% == %DAR[12]% set badDARs=%badDARs% %filename[12]%
if not defined DAR[13] goto endDARs
if not %DAR[1]% == %DAR[13]% set badDARs=%badDARs% %filename[13]%
if not defined DAR[14] goto endDARs
if not %DAR[1]% == %DAR[14]% set badDARs=%badDARs% %filename[14]%
if not defined DAR[15] goto endDARs
if not %DAR[1]% == %DAR[15]% set badDARs=%badDARs% %filename[15]%
if not defined DAR[16] goto endDARs
if not %DAR[1]% == %DAR[16]% set badDARs=%badDARs% %filename[16]%
if not defined DAR[17] goto endDARs
if not %DAR[1]% == %DAR[17]% set badDARs=%badDARs% %filename[17]%
if not defined DAR[18] goto endDARs
if not %DAR[1]% == %DAR[18]% set badDARs=%badDARs% %filename[18]%
if not defined DAR[19] goto endDARs
if not %DAR[1]% == %DAR[19]% set badDARs=%badDARs% %filename[19]%
if not defined DAR[20] goto endDARs
if not %DAR[1]% == %DAR[20]% set badDARs=%badDARs% %filename[20]%
:endDARs
if not defined badDARs goto allgood3
set Warning5e=PROBLEM : %filename[1]% is %DAR[1]% but these files aren't : %badDARs%
set mask=%concat%-%allow_upscales%
if x%mask%x == x0-0x set Warning5f=PREDICTION : Joining is off, OK to continue, but final files WILL DIFFER
if x%mask%x == x0-1x set Warning5f=PREDICTION: You aren't joining, and upscaling is enabled, so you should be ok.
if x%mask%x == x1-0x set Warning5f=PREDICTION: Joining is ON but forced scaling isn't - FILES WILL BE BAD!
if x%mask%x == x1-1x set Warning5f=PREDICTION: Joining is ON, but so is forced scaling - should be OK to continue
if x%mask%x == x1-0x set fatalcaught=1
set mismatches=1
:allgood3
%debug% (L478) (time=%time%) DARcompares - sample rates >>"%logfile%"
set badsamples=
if not defined sample[1] goto endsamples
if not defined sample[2] goto endsamples
if not %sample[1]% == %sample[2]% set badsamples=%badsamples% %filename[2]%
if not defined sample[3] goto endsamples
if not %sample[1]% == %sample[3]% set badsamples=%badsamples% %filename[3]%
if not defined sample[4] goto endsamples
if not %sample[1]% == %sample[4]% set badsamples=%badsamples% %filename[4]%
if not defined sample[5] goto endsamples
if not %sample[1]% == %sample[5]% set badsamples=%badsamples% %filename[5]%
if not defined sample[6] goto endsamples
if not %sample[1]% == %sample[6]% set badsamples=%badsamples% %filename[6]%
if not defined sample[7] goto endsamples
if not %sample[1]% == %sample[7]% set badsamples=%badsamples% %filename[7]%
if not defined sample[8] goto endsamples
if not %sample[1]% == %sample[8]% set badsamples=%badsamples% %filename[8]%
if not defined sample[9] goto endsamples
if not %sample[1]% == %sample[9]% set badsamples=%badsamples% %filename[9]%
if not defined sample[10] goto endsamples
if not %sample[1]% == %sample[10]% set badsamples=%badsamples% %filename[10]%
if not defined sample[11] goto endsamples
if not %sample[1]% == %sample[11]% set badsamples=%badsamples% %filename[11]%
if not defined sample[12] goto endsamples
if not %sample[1]% == %sample[12]% set badsamples=%badsamples% %filename[12]%
if not defined sample[13] goto endsamples
if not %sample[1]% == %sample[13]% set badsamples=%badsamples% %filename[13]%
if not defined sample[14] goto endsamples
if not %sample[1]% == %sample[14]% set badsamples=%badsamples% %filename[14]%
if not defined sample[15] goto endsamples
if not %sample[1]% == %sample[15]% set badsamples=%badsamples% %filename[15]%
if not defined sample[16] goto endsamples
if not %sample[1]% == %sample[16]% set badsamples=%badsamples% %filename[16]%
if not defined sample[17] goto endsamples
if not %sample[1]% == %sample[17]% set badsamples=%badsamples% %filename[17]%
if not defined sample[18] goto endsamples
if not %sample[1]% == %sample[18]% set badsamples=%badsamples% %filename[18]%
if not defined sample[19] goto endsamples
if not %sample[1]% == %sample[19]% set badsamples=%badsamples% %filename[19]%
if not defined sample[20] goto endsamples
if not %sample[1]% == %sample[20]% set badsamples=%badsamples% %filename[20]%
:endsamples
if not defined badsamples goto allgood4
set Warning5g=PROBLEM : %filename[1]% is Sample rate %sample[1]% but these files aren't : %badsamples%
set mask=%concat%-%allow_upscales%
if x%mask%x == x0-0x set Warning5h=PREDICTION : Joining is off, sample rate set during conversion - OK to continue
if x%mask%x == x0-1x set Warning5h=PREDICTION: Joining is off, and upscaling is enabled, so OK to continue
if x%mask%x == x1-0x set Warning5h=PREDICTION: Joining is ON, sample rate set during conversion -- OK to continue
if x%mask%x == x1-1x set Warning5h=PREDICTION: Joining is ON, sample rate set during conversion -- OK to continue
set mask2=%concat%-%allow_upscales%-%filetype%
if x%mask2%x == x1-0-MTSx set Warning5h=PREDICTION: Joining is ON but MTS get joined before conversion - ARCHIVE FILE WILL BE BAD!
if x%mask2%x == x1-0-MTSx set fatalcaught=1
:: I guess this is remmed because sample will be fixed regardless? Nope, not for MTS joining
rem set mismatches=1
:allgood4
%debug% (L522) (time=%time%) DARcompares - framerates >>"%logfile%"
set badframerates=
if not defined framerate[1] goto endframes
if not defined framerate[2] goto endframes
if not %framerate[1]% == %framerate[2]% set badframerates=%badframerates% %filename[2]%
if not defined framerate[3] goto endframes
if not %framerate[1]% == %framerate[3]% set badframerates=%badframerates% %filename[3]%
if not defined framerate[4] goto endframes
if not %framerate[1]% == %framerate[4]% set badframerates=%badframerates% %filename[4]%
if not defined framerate[5] goto endframes
if not %framerate[1]% == %framerate[5]% set badframerates=%badframerates% %filename[5]%
if not defined framerate[6] goto endframes
if not %framerate[1]% == %framerate[6]% set badframerates=%badframerates% %filename[6]%
if not defined framerate[7] goto endframes
if not %framerate[1]% == %framerate[7]% set badframerates=%badframerates% %filename[7]%
if not defined framerate[8] goto endframes
if not %framerate[1]% == %framerate[8]% set badframerates=%badframerates% %filename[8]%
if not defined framerate[9] goto endframes
if not %framerate[1]% == %framerate[9]% set badframerates=%badframerates% %filename[9]%
if not defined framerate[10] goto endframes
if not %framerate[1]% == %framerate[10]% set badframerates=%badframerates% %filename[10]%
if not defined framerate[11] goto endframes
if not %framerate[1]% == %framerate[11]% set badframerates=%badframerates% %filename[11]%
if not defined framerate[12] goto endframes
if not %framerate[1]% == %framerate[12]% set badframerates=%badframerates% %filename[12]%
if not defined framerate[13] goto endframes
if not %framerate[1]% == %framerate[13]% set badframerates=%badframerates% %filename[13]%
if not defined framerate[14] goto endframes
if not %framerate[1]% == %framerate[14]% set badframerates=%badframerates% %filename[14]%
if not defined framerate[15] goto endframes
if not %framerate[1]% == %framerate[15]% set badframerates=%badframerates% %filename[15]%
if not defined framerate[16] goto endframes
if not %framerate[1]% == %framerate[16]% set badframerates=%badframerates% %filename[16]%
if not defined framerate[17] goto endframes
if not %framerate[1]% == %framerate[17]% set badframerates=%badframerates% %filename[17]%
if not defined framerate[18] goto endframes
if not %framerate[1]% == %framerate[18]% set badframerates=%badframerates% %filename[18]%
if not defined framerate[19] goto endframes
if not %framerate[1]% == %framerate[19]% set badframerates=%badframerates% %filename[19]%
if not defined framerate[20] goto endframes
if not %framerate[1]% == %framerate[20]% set badframerates=%badframerates% %filename[20]%
:endframes
if not defined badframerates goto allgood5
set Warning5i=PROBLEM : %filename[1]% is %framerate[1]% framerate but these files aren't : %badframerates%
set Warning5j=PREDICTION : We force all videos to 29.97 FPS, so it's ok to ignore this. Just wanted to point it out.
set mask=%concat%-%allow_upscales%
if x%mask%x == x0-0x set Warning5j=PREDICTION : Joining is off, framerate set during conversion -- OK to continue
if x%mask%x == x0-1x set Warning5j=PREDICTION: Joining is off, framerate set during conversion -- OK to continue
if /i x%mask%y%filetype%x == x1-0ymtsx set Warning5j=PREDICTION: Joining is ON, but files are MTS - FILES WILL BE BAD!
if /i x%mask%y%filetype%x == x1-1ymtsx set Warning5j=PREDICTION: Joining is ON, but files are MTS - FILES WILL BE BAD!
if /i x%mask%y%filetype%x == x1-0ymtsx set fatalcaught=1
if /i x%mask%y%filetype%x == x1-1ymtsx set fatalcaught=1
:: Framerate isn't fatal -- we set 29.97 anyway, so let it slide
:: if x%mask%x == x1-0x set fatalcaught=1
set mismatches=1
:allgood5
%debug% (L522) (time=%time%) DARcompares - codecs >>"%logfile%"
set badcodecs=
if not defined codecs[1] goto endcodecs
if not defined codecs[2] goto endcodecs
if not %codecs[1]% == %codecs[2]% set badcodecs=%badcodecs% %filename[2]%
if not defined codecs[3] goto endcodecs
if not %codecs[1]% == %codecs[3]% set badcodecs=%badcodecs% %filename[3]%
if not defined codecs[4] goto endcodecs
if not %codecs[1]% == %codecs[4]% set badcodecs=%badcodecs% %filename[4]%
if not defined codecs[5] goto endcodecs
if not %codecs[1]% == %codecs[5]% set badcodecs=%badcodecs% %filename[5]%
if not defined codecs[6] goto endcodecs
if not %codecs[1]% == %codecs[6]% set badcodecs=%badcodecs% %filename[6]%
if not defined codecs[7] goto endcodecs
if not %codecs[1]% == %codecs[7]% set badcodecs=%badcodecs% %filename[7]%
if not defined codecs[8] goto endcodecs
if not %codecs[1]% == %codecs[8]% set badcodecs=%badcodecs% %filename[8]%
if not defined codecs[9] goto endcodecs
if not %codecs[1]% == %codecs[9]% set badcodecs=%badcodecs% %filename[9]%
if not defined codecs[10] goto endcodecs
if not %codecs[1]% == %codecs[10]% set badcodecs=%badcodecs% %filename[10]%
if not defined codecs[11] goto endcodecs
if not %codecs[1]% == %codecs[11]% set badcodecs=%badcodecs% %filename[11]%
if not defined codecs[12] goto endcodecs
if not %codecs[1]% == %codecs[12]% set badcodecs=%badcodecs% %filename[12]%
if not defined codecs[13] goto endcodecs
if not %codecs[1]% == %codecs[13]% set badcodecs=%badcodecs% %filename[13]%
if not defined codecs[14] goto endcodecs
if not %codecs[1]% == %codecs[14]% set badcodecs=%badcodecs% %filename[14]%
if not defined codecs[15] goto endcodecs
if not %codecs[1]% == %codecs[15]% set badcodecs=%badcodecs% %filename[15]%
if not defined codecs[16] goto endcodecs
if not %codecs[1]% == %codecs[16]% set badcodecs=%badcodecs% %filename[16]%
if not defined codecs[17] goto endcodecs
if not %codecs[1]% == %codecs[17]% set badcodecs=%badcodecs% %filename[17]%
if not defined codecs[18] goto endcodecs
if not %codecs[1]% == %codecs[18]% set badcodecs=%badcodecs% %filename[18]%
if not defined codecs[19] goto endcodecs
if not %codecs[1]% == %codecs[19]% set badcodecs=%badcodecs% %filename[19]%
if not defined codecs[20] goto endcodecs
if not %codecs[1]% == %codecs[20]% set badcodecs=%badcodecs% %filename[20]%
:endcodecs
if not defined badcodecs goto allgood6
set Warning5k=PROBLEM : %filename[1]% is %codecs[1]% codec but these files aren't : %badcodecs%
set mask=%concat%-%allow_upscales%
if x%mask%x == x0-0x set Warning5l=PREDICTION : Joining is off, codecs changed during conversion -- OK to continue
if x%mask%x == x0-1x set Warning5l=PREDICTION: You aren't joining, codecs changed during conversion -- OK to continue
if x%mask%x == x1-0x set Warning5l=PREDICTION: Joining is ON, codecs changed during conversion -- OK to continue
if x%mask%x == x1-1x set Warning5l=PREDICTION: Joining is ON, codecs changed during conversion -- OK to continue
if /i x%mask%y%filetype%x == x1-0ymtsx set Warning5l=PREDICTION: Joining is ON, but files are MTS - FILES WILL BE BAD!
if /i x%mask%y%filetype%x == x1-1ymtsx set Warning5l=PREDICTION: Joining is ON, but files are MTS - FILES WILL BE BAD!
if /i x%mask%y%filetype%x == x1-0ymtsx set fatalcaught=1
if /i x%mask%y%filetype%x == x1-1ymtsx set fatalcaught=1
:: not fatal, since we force codec, except MTS are binary joined, oops
:: if x%mask%x == x1-0x set fatalcaught=1
set mismatches=1
:allgood6
set needlist=0
if defined badheights set needlist=1
if defined badwidths set needlist=1
if defined badDARs set needlist=1
if defined badsamples set needlist=1
if defined badframerates set needlist=1
if defined badcodecs set needlist=1
if x%needlist%x==x0x goto check6
:showlist
%debug% (L575) (time=%time%) Showing the filelist with file stats >>"%logfile%"
echo.
echo The filelist:
:: A little experiment for spacing but no joy
::set spce= .
:: %filename[1]:~0,14%%spce%
if defined height[1] echo %filename[1]% = %width[1]%x%height[1]% DAR=%DAR[1]% Sample=%samplerate[1]% FPS=%framerate[1]% Codec=%codecs[1]%
if defined height[2] echo %filename[2]% = %width[2]%x%height[2]% DAR=%DAR[2]% Sample=%samplerate[2]% FPS=%framerate[2]% Codec=%codecs[2]%
if defined height[3] echo %filename[3]% = %width[3]%x%height[3]% DAR=%DAR[3]% Sample=%samplerate[3]% FPS=%framerate[3]% Codec=%codecs[3]%
if defined height[4] echo %filename[4]% = %width[4]%x%height[4]% DAR=%DAR[4]% Sample=%samplerate[4]% FPS=%framerate[4]% Codec=%codecs[4]%
if defined height[5] echo %filename[5]% = %width[5]%x%height[5]% DAR=%DAR[5]% Sample=%samplerate[5]% FPS=%framerate[5]% Codec=%codecs[5]%
if defined height[6] echo %filename[6]% = %width[6]%x%height[6]% DAR=%DAR[6]% Sample=%samplerate[6]% FPS=%framerate[6]% Codec=%codecs[6]%
if defined height[7] echo %filename[7]% = %width[7]%x%height[7]% DAR=%DAR[7]% Sample=%samplerate[7]% FPS=%framerate[7]% Codec=%codecs[7]%
if defined height[8] echo %filename[8]% = %width[8]%x%height[8]% DAR=%DAR[8]% Sample=%samplerate[8]% FPS=%framerate[8]% Codec=%codecs[8]%
if defined height[9] echo %filename[9]% = %width[9]%x%height[9]% DAR=%DAR[9]% Sample=%samplerate[9]% FPS=%framerate[9]% Codec=%codecs[9]%
if defined height[10] echo %filename[10]% = %width[10]%x%height[10]% DAR=%DAR[10]% Sample=%samplerate[10]% FPS=%framerate[10]% Codec=%codecs[10]%
if defined height[11] echo %filename[11]% = %width[11]%x%height[11]% DAR=%DAR[11]% Sample=%samplerate[11]% FPS=%framerate[11]% Codec=%codecs[11]%
if defined height[12] echo %filename[12]% = %width[12]%x%height[12]% DAR=%DAR[12]% Sample=%samplerate[12]% FPS=%framerate[12]% Codec=%codecs[12]%
if defined height[13] echo %filename[13]% = %width[13]%x%height[13]% DAR=%DAR[13]% Sample=%samplerate[13]% FPS=%framerate[13]% Codec=%codecs[13]%
if defined height[14] echo %filename[14]% = %width[14]%x%height[14]% DAR=%DAR[14]% Sample=%samplerate[14]% FPS=%framerate[14]% Codec=%codecs[14]%
if defined height[15] echo %filename[15]% = %width[15]%x%height[15]% DAR=%DAR[15]% Sample=%samplerate[15]% FPS=%framerate[15]% Codec=%codecs[15]%
if defined height[16] echo %filename[16]% = %width[16]%x%height[16]% DAR=%DAR[16]% Sample=%samplerate[16]% FPS=%framerate[16]% Codec=%codecs[16]%
if defined height[17] echo %filename[17]% = %width[17]%x%height[17]% DAR=%DAR[17]% Sample=%samplerate[17]% FPS=%framerate[17]% Codec=%codecs[17]%
if defined height[18] echo %filename[18]% = %width[18]%x%height[18]% DAR=%DAR[18]% Sample=%samplerate[18]% FPS=%framerate[18]% Codec=%codecs[18]%
if defined height[19] echo %filename[19]% = %width[19]%x%height[19]% DAR=%DAR[19]% Sample=%samplerate[19]% FPS=%framerate[19]% Codec=%codecs[19]%
if defined height[20] echo %filename[20]% = %width[20]%x%height[20]% DAR=%DAR[20]% Sample=%samplerate[20]% FPS=%framerate[20]% Codec=%codecs[20]%
timeout /t 4 >nul
goto check6
:check6
%debug% (L601) (time=%time%) Warning6 check >>"%logfile%"
if [%videoadjust%] == [] goto check7
if [%brightness%]==[] set Warning6=Video adjustment settings are incomplete
if [%contrast%]==[] set Warning6=Video adjustment settings are incomplete
if [%saturation%]==[] set Warning6=Video adjustment settings are incomplete
if [%hue%]==[] set Warning6=Video adjustment settings are incomplete
if [%sharpen%]==[] set Warning6=Video adjustment settings are incomplete
:check7
:: if framerate of not 29,30,59, warn
set warning7=
if x%framerate%x == x2997/100x goto check8
if x%framerate%x == x3000/100x goto check8
if x%framerate%x == x3000/101x goto check8
if x%framerate%x == x30000/1001x goto check8
if x%framerate%x == x60000/1001x goto check8
if x%framerate%x == x5997/100x goto check8
if x%framerate%x == x6000/100x goto check8
if x%framerate%x == x60/1x goto check8
if x%framerate%x == x30/1x goto check8
:: I decided not to warn about 25fps
if x%framerate%x == x25/1x goto check8
if x%framerate%x == x24/1x goto check8
set warning7=Unusual framerate of "%framerate%" used. Usual values are 2997/100 or 3000/100. OK to continue
:: These might be disabled with a jump in the previous paragraph
if x%framerate%x == x25/1x set warning7=Frame rate of 25fps used. 30fps or 60fps would be better, but OK to continue.
if x%framerate%x == x24/1x set warning7=Frame rate of 24fps used. Nothing wrong with that, just kinda unusual.
if x%framerate%x == x2500/100x set warning7=Frame rate of 25fps used. Nothing wrong with that, just kinda unusual.
if x%framerate%x == x2400/100x set warning7=Frame rate of 24fps used. Nothing wrong with that, just kinda unusual.
if x%framerate%x == x2400/100x set warning7=Frame rate of 24fps used. Nothing wrong with that, just kinda unusual.
if x%framerate%x == x6000/101x set warning7=
if x%framerate%x == x60000/1001x set warning7=
:check8
:: check for mismatches, but one of the scale settings is noscale
if x%mismatches%x == x0x goto check9
if x%mismatches%x == xx goto check9
:: if we aren't force scaling, it doesn't matter if we use noscale
if x%allow_upscales%x == xx goto check9
if x%allow_upscales%x == x0x goto check9
:: ok, we're in FSM, check for bad merges based on NOSCALE
set noscalearchive=0
set noscaletarget=0
if /i x%archiverezstring%x == xnoscalex set noscalearchive=1
if /i x%targetrezstring%x == xnoscalex set noscaletarget=1
if /i x%noscalearchive%x%concat%x == x1x1x goto BadMergeArchive1
goto afterBMA1
:BadMergeArchive1
if /i x%archiverezstring%x == xnoscalex set Warning8a=PROBLEM : Mixed resolutions, but you used NOSCALE for ARCHIVE with joining enabled!
if /i x%archiverezstring%x == xnoscalex set Warning8b=PREDICTION : Joining mixed resolutions into your ARCHIVE will make bad files. Don't continue if resolutions differ!
goto afterBMA2
:afterBMA1
if /i x%noscalearchive%x%concat%x == x1x1x goto BadMergeArchive2
goto afterBMA2
:BadMergeArchive2
if /i x%archiverezstring%x == xnoscalex set Warning8a=PROBLEM : Mixed resolutions, but you used NOSCALE for ARCHIVE!
if /i x%archiverezstring%x == xnoscalex set Warning8b=PREDICTION : Files will be OK, but why use Forced Scaling if you aren't going to fix rez differences?
if /i x%archiverezstring%x == xnoscalex set Warning8c=SUGGESTION : Try again, but pick a resolution (480p, 720p, etc) for ARCHIVE rather than leaving as NOSCALE
:afterBMA2
:check9
:check10
:: not used yet
if defined Warning1 goto showWarnings
if defined Warning2a goto showWarnings
if defined Warning2b goto showWarnings
if defined Warning2c goto showWarnings
if defined Warning2d goto showWarnings
if defined Warning3 goto showWarnings
if defined Warning4 goto showWarnings
if defined Warning5 goto showWarnings
if defined Warning5a goto showWarnings
if defined Warning5b goto showWarnings
if defined Warning5c goto showWarnings
if defined Warning5d goto showWarnings
if defined Warning5e goto showWarnings
if defined Warning5f goto showWarnings
if defined Warning5g goto showWarnings
if defined Warning5h goto showWarnings
if defined Warning5i goto showWarnings
if defined Warning5j goto showWarnings
if defined Warning5k goto showWarnings
if defined Warning5l goto showWarnings
if defined Warning6 goto showWarnings
if defined Warning7 goto showWarnings
if defined Warning8a goto showWarnings
if defined Warning8b goto showWarnings
if defined Warning8c goto showWarnings
if defined Warning8d goto showWarnings
goto skipWarnings
%debug% (L635) (time=%time%) Showing warnings >>"%logfile%"
:showWarnings
:: cls
echo.
echo.
echo. ************************ WARNINGS *****************************
echo.
if defined Warning1 echo. %Warning1%
if defined Warning1 echo.
if defined Warning2 echo. %Warning2%
if defined Warning2 echo.
if defined Warning3 echo. %Warning3%
if defined Warning3 echo.
if defined Warning4 echo. %Warning4%
if defined Warning4 echo.
if defined Warning5 echo. %Warning5%
if defined Warning5a echo. %Warning5a%
if defined Warning5b echo. %Warning5b%
if defined Warning5b echo.
if defined Warning5c echo. %Warning5c%
if defined Warning5d echo. %Warning5d%
if defined Warning5d echo.
if defined Warning5e echo. %Warning5e%
if defined Warning5f echo. %Warning5f%
if defined Warning5f echo.
if defined Warning5g echo. %Warning5g%
if defined Warning5h echo. %Warning5h%
if defined Warning5h echo.
if defined Warning5i echo. %Warning5i%
if defined Warning5j echo. %Warning5j%
if defined Warning5j echo.
if defined Warning5k echo. %Warning5k%
if defined Warning5l echo. %Warning5l%
if defined Warning5l echo.
if defined Warning6 echo. %Warning6%
if defined Warning6 echo.
if defined Warning7 echo. %Warning7%
if defined Warning7 echo.
if defined Warning8a echo. %Warning8a%
if defined Warning8b echo. %Warning8b%
if defined Warning8c echo. %Warning8c%
if defined Warning8d echo. %Warning8d%
if defined Warning8e echo. %Warning8e%
if defined Warning8d echo.
echo.
echo. ***************************************************************
echo.
echo.
if not defined fatalcaught goto afterw5
echo.
echo ======================= FATAL WARNINGS DETECTED ==============================
echo == ==
echo == FILES OF DIFFERENT RESOLUTION/ASPECT DETECTED!!! ==
echo == ==
echo == You are attempting to join the output files together, but they are ==
echo == incompatible for joining! Your files will be bad if we keep going ==
echo == with current settings. ==
echo == ==
echo == Here's what went wrong : ==
echo == ==
if defined badheights echo == HEIGHTS were different ==
if defined badwidths echo == WIDTHS were different ==
if defined badDARs echo == ASPECTS were different ==
if defined badcodecs echo == CODECS were different w/ Concat and MTS files in play ==
if defined badsamples echo == Audio Sample rates differ w/ Concat and MTS files in play ==
if defined badframerates echo == Frame Rates differ w/ Concat and MTS files in play ==
echo == ==
echo ==============================================================================
echo.
echo. Here are your options :
echo.
echo. 1) Turn off CONCAT and let the files be different, but each will
echo. be playable. You won't have one file to sync, you'll have several.
echo.
echo. 2) Change to 1080p Repair Mode to iron out the differences.
echo. All files will be forced to 1080p. Joining (concat) will be disabled and
echo. you'll have to concat the files together if you want them joined.
echo. This might upscale some smaller resolution files and make them fuzzy when
echo. played fullscreen.
echo.
echo. 3) Change to 720p Repair Mode to iron out the differences.
echo. Same as #2 above, but files will be forced to 720p.
echo. This might upscale some smaller resolution files and make them fuzzy.
echo. This might downscale your archive and make it lose quality.
echo.
echo. 4) Change to 480p Repair Mode to iron out the differences.
echo. Same as #2 and #3 above, except files will be forced to 480p.
echo. This might downscale your archive and make it lose a LOT of quality.
echo.
echo. Q) Quit for now.
echo.
:afterw5
echo.
set returntoconcat=
if not defined fatalcaught goto normalyn
choice /c 1234q /n /m "How would you like to proceed? [1,2,3,4,Q] "
if errorlevel 5 goto end3
if errorlevel 4 goto pivot4
if errorlevel 3 goto pivot3
if errorlevel 2 goto pivot2
if errorlevel 1 goto pivot1
goto end3
:normalyn
choice /c ynq /n /m "Continue ignoring these warnings? [Y/N] "
if errorlevel 3 goto end3
if errorlevel 2 goto end3
if errorlevel 1 goto skipwarnings
:pivot1
set concat=0
goto skipWarnings
:pivot2
set allow_upscales=1
set archiverez=1
set archiverezstring=1080p
set concat=0
set returntoconcat=1
goto skipWarnings
:pivot3
set allow_upscales=1
set archiverez=2
set archiverezstring=720p
set concat=0
set returntoconcat=1
goto skipWarnings
:pivot4
set allow_upscales=1
set archiverez=3
set archiverezstring=480p
set concat=0
set returntoconcat=1
goto skipWarnings
:skipWarnings
:: user didn't bail out due to warnings, so we're doing some stuff. Let's throw out the running flag
echo Hi >"=== %~n0 RUNNING ==="
:step0
:: check for MTS JOINING and do that before any processing
if not [%concat%] == [1] goto step1
if not [%filetype%] == [MTS] goto step1
if [%filecount%] == [1] goto step1
:: concat is ON, it's MTS files, and there's more than one. Let's do a glom!
cls
set sourcepart="%filename[1]%" + "%filename[2]%"
if defined filename[3] set sourcepart=%sourcepart% + "%filename[3]%"
if defined filename[4] set sourcepart=%sourcepart% + "%filename[4]%"
if defined filename[5] set sourcepart=%sourcepart% + "%filename[5]%"
if defined filename[6] set sourcepart=%sourcepart% + "%filename[6]%"
if defined filename[7] set sourcepart=%sourcepart% + "%filename[7]%"
if defined filename[8] set sourcepart=%sourcepart% + "%filename[8]%"
if defined filename[9] set sourcepart=%sourcepart% + "%filename[9]%"
if defined filename[10] set sourcepart=%sourcepart% + "%filename[10]%"
if defined filename[11] set sourcepart=%sourcepart% + "%filename[11]%"
if defined filename[12] set sourcepart=%sourcepart% + "%filename[12]%"
if defined filename[13] set sourcepart=%sourcepart% + "%filename[13]%"
if defined filename[14] set sourcepart=%sourcepart% + "%filename[14]%"
if defined filename[15] set sourcepart=%sourcepart% + "%filename[15]%"
if defined filename[16] set sourcepart=%sourcepart% + "%filename[16]%"
if defined filename[17] set sourcepart=%sourcepart% + "%filename[17]%"
if defined filename[18] set sourcepart=%sourcepart% + "%filename[18]%"
if defined filename[19] set sourcepart=%sourcepart% + "%filename[19]%"
if defined filename[20] set sourcepart=%sourcepart% + "%filename[20]%"
title Joining %filecount% MTS files. This could take a while...
echo. Joining %filecount% MTS files. This could take a while...
%debug% (L707) (time=%time%) MTS files and CONCAT on - joining %filecount% MTS files >>"%logfile%"
copy /b %sourcepart% "%witnessname%.mts"
%debug% (L709) (time=%time%) Finished Concat! >>"%logfile%"
:: now we only have one MTS file, so tuck the originals away in an "orig MTS files" folder and jiggle the list to be that one alone
MD "orig MTS files"
%debug% (L713) (time=%time%) Moving orig MTS files into safety folder >>"%logfile%"
move "%filename[1]%" "orig MTS files"
move "%filename[2]%" "orig MTS files"
if defined filename[3] move "%filename[3]%" "orig MTS files"
if defined filename[4] move "%filename[4]%" "orig MTS files"
if defined filename[5] move "%filename[5]%" "orig MTS files"
if defined filename[6] move "%filename[6]%" "orig MTS files"
if defined filename[7] move "%filename[7]%" "orig MTS files"
if defined filename[8] move "%filename[8]%" "orig MTS files"
if defined filename[9] move "%filename[9]%" "orig MTS files"
if defined filename[10] move "%filename[10]%" "orig MTS files"
if defined filename[11] move "%filename[11]%" "orig MTS files"
if defined filename[12] move "%filename[12]%" "orig MTS files"
if defined filename[13] move "%filename[13]%" "orig MTS files"
if defined filename[14] move "%filename[14]%" "orig MTS files"
if defined filename[15] move "%filename[15]%" "orig MTS files"
if defined filename[16] move "%filename[16]%" "orig MTS files"
if defined filename[17] move "%filename[17]%" "orig MTS files"
if defined filename[18] move "%filename[18]%" "orig MTS files"
if defined filename[19] move "%filename[19]%" "orig MTS files"
if defined filename[20] move "%filename[20]%" "orig MTS files"
set filecount=1
set concat=0
set filename[1]=%witnessname%.mts
set filebase[1]=%witnessname%
set filename[2]=
set filebase[2]=
::prob don't need theses since one not defined will stop the long chain events, but just in case
set filename[3]=
set filename[4]=
set filename[5]=
set filename[6]=
set filename[7]=
set filename[8]=
set filename[9]=
set filename[10]=
set filename[11]=
set filename[12]=
set filename[13]=
set filename[14]=
set filename[15]=
set filename[16]=
set filename[17]=
set filename[18]=
set filename[19]=
set filename[20]=
:: now we can reload the file stats since we dropped to a single file
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=width -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "width[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=height -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "height[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries stream^=display_aspect_ratio -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "DAR[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams a:0 -show_entries stream^=sample_rate -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "samplerate[1]=%%I"
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%filename[1]%" 2^>^&1') do set "duration[1]=%%I"
:step1
title Starting Step 1
%debug% (L768) (time=%time%) Starting Step 1. >>"%logfile%"
timeout /t 1 >nul
cls
echo. ============ STEP 1 ===============
echo. = =
echo. = Making MKV Master =
echo. = =
echo. ===================================
timeout /t 2 >nul
:: branch past step 1 if archive is turned off
if [%makeARCHIVE%] == [1] goto noskiparchive
echo. *******************************
echo. ****** ARCHIVE DISABLED *******
echo. *******************************
:: let's set concat to 0 here for noarchivers, just in case the program didn't
set concat=0
timeout /t 2 >nul
goto step2
:noskiparchive
:: Let's figure out the perfect folder name
set Aoutfolder=x265 MKV %archiverezstring% crf18
if [%display_aspect_ratio%] == [4:3] set Aoutfolder=%Aoutfolder% 4x3
if [%display_aspect_ratio%] == [4x3] set Aoutfolder=%Aoutfolder% 4x3
if [%afix44k%] == [1] set Aoutfolder=%Aoutfolder% Afix44
if [%afix44k%] == [1] set audiofix=-ar 48000
if [%videoadjust%] == [1] set Aoutfolder=%Aoutfolder% VidAdj
:: if it's a remote shooter, just make an x265 sameq folder
if [%remoteshooter%] == [1] set Aoutfolder=x265 sameq
if [%remoteshooter%] == [2] set Aoutfolder=Mp4 sameq
if [%remoteshooter%] == [3] set Aoutfolder=x265 crf18
if [%remoteshooter%] == [4] set Aoutfolder=Mp4 crf18
MD "%Aoutfolder%"
:: ********** SET UP FFMPEG GENERAL PARAMS ******************************************************************************************************************************
set ascaleparam=
if [%archiverezstring%] == [1080p] set ascaleparam=,scale=1920:1080
if [%archiverezstring%] == [720p] set ascaleparam=,scale=1280:720
if [%archiverezstring%] == [480p] set ascaleparam=,scale=720:480
set aaspect=
if [%display_aspect_ratio%] == [4:3] set aaspect=-aspect 4:3
if [%display_aspect_ratio%] == [16:9] set aaspect=-aspect 16:9
if [%display_aspect_ratio%] == [4x3] set aaspect=-aspect 4:3
if [%display_aspect_ratio%] == [16x9] set aaspect=-aspect 16:9
if defined ascaleparam set scaleparam=,SCALE=%ascaleparam%
:: eq=brightness=0.05:contrast=1.05:saturation=1.05, unsharp=3:3:0.5:3:3:0.0,
:: unsharp3=5:5:1.5:5:5:0.0,
:: hue=h=355:s=1,
:: -af volume=1.25
:: -map_channel 0.2.0
if [%videoadjust%] == [] goto novadj
set vidadjparams=,eq=brightness=%brightness%:contrast=%contrast%:saturation=%saturation%
if [%sharpen%] == [0] rem
if [%sharpen%] == [1] set vidadjparams=%vidadjparams%,unsharp=3:3:0.5:3:3:0.0
if [%sharpen%] == [2] set vidadjparams=%vidadjparams%,unsharp
if [%sharpen%] == [3] set vidadjparams=%vidadjparams%,unsharp=5:5:1.5:5:5:0.0
if [%hue%] == [0] goto novadj
:: if we're here, hue is not 0
set vidadjparams=%vidadjparams%,hue=h=%hue%:s=1
%debug% (L830) (time=%time%) Vid params = %vidadjparams%. >>"%logfile%"
:novadj
if defined audioboost set aboost=-af volume=%audioboost%
set params=-strict -2 -f mp4 -r 29.97 -vf "yadif %vidadjparams% %ascaleparam% " %aaspect% -pix_fmt yuv420p -sws_flags lanczos -c:v libx265 -preset superfast -crf 18 -write_tmcd 0 %audiofix% -c:a aac -b:a 256k -ac 2 %aboost%
:: if it's a remote shooter, let's just do a sameq in x265 since that's 1/3 the size of crf18 for unknown reasons
if [%remoteshooter%] == [1] set params=-q:v 0 -c:v libx265 -preset superfast -pix_fmt yuv420p -b:a 128k
if [%remoteshooter%] == [2] set params=-q:v 0 -f mp4 -vcodec libx264 -preset faster -pix_fmt yuv420p -b:a 128k
if [%remoteshooter%] == [3] set params=-crf 18 -c:v libx265 -preset superfast -pix_fmt yuv420p -b:a 128k
if [%remoteshooter%] == [4] set params=-crf 18 -f mp4 -vcodec libx264 -preset faster -pix_fmt yuv420p -b:a 128k
set outext=mkv
if [%remoteshooter%] == [2] set outext=mp4
if [%remoteshooter%] == [4] set outext=mp4
:: **********************************************************************************************************************************************************************
:: params all set up, start converting. Keep first one in a launch variable for easier debugging
set thisfile=%filename[1]%
set outfile=%filebase[1]%.%outext%
if defined witnessname set outfile=%witnessname% 1.%outext%
if [%filecount%] == [1] set outfile=%witnessname%.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[1]%.%outext%
:: get duration of infile, in case it's concatted and length is more
for /F "delims=" %%I in ('ffprobe.exe -v error -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%thisfile%" 2^>^&1') do set "duration2=%%I"
title Step 1: MKV %thisfile% -^> %outfile% (1 of %filecount%) (%duration2%)
%debug% (L853) (time=%time%) Step 1: MKV %thisfile% -^> %outfile% (1 of %filecount%) >>"%logfile%"
set launch=ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo.
echo. *********************
echo. Launch=%launch%
echo. *********************
%debug% (L860) (time=%time%) launch: %launch%. >>"%logfile%"
%launch%
echo file '%outfile%'>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[1]=%%K"
set afterwarning1=
if %duration[1]% NEQ %afterdur[1]% set afterwarning1=%filename[1]% to %outfile%
if not defined filename[2] goto afterconvertwarns
set thisfile=%filename[2]%
set outfile=%filebase[2]%.%outext%
if defined witnessname set outfile=%witnessname% 2.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[2]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (2 of %filecount%) (%duration[2]%)
%debug% (L874) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (2 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[2]=%%K"
set afterwarning2=
if %duration[2]% NEQ %afterdur[2]% set afterwarning2=%filename[2]% to %outfile%
if not defined filename[3] goto afterconvertwarns
set thisfile=%filename[3]%
set outfile=%filebase[3]%.%outext%
if defined witnessname set outfile=%witnessname% 3.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[3]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (3 of %filecount%) (%duration[3]%)
%debug% (L888) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (3 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[3]=%%K"
set afterwarning3=
if %duration[3]% NEQ %afterdur[3]% set afterwarning3=%filename[3]% to %outfile%
if not defined filename[4] goto afterconvertwarns
set thisfile=%filename[4]%
set outfile=%filebase[4]%.%outext%
if defined witnessname set outfile=%witnessname% 4.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[4]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (4 of %filecount%) (%duration[4]%)
%debug% (L902) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (4 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[4]=%%K"
set afterwarning4=
if %duration[4]% NEQ %afterdur[4]% set afterwarning4=%filename[4]% to %outfile%
if not defined filename[5] goto afterconvertwarns
set thisfile=%filename[5]%
set outfile=%filebase[5]%.%outext%
if defined witnessname set outfile=%witnessname% 5.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[5]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (5 of %filecount%) (%duration[5]%)
%debug% (L916) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (5 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[5]=%%K"
set afterwarning5=
if %duration[5]% NEQ %afterdur[5]% set afterwarning5=%filename[5]% to %outfile%
if not defined filename[6] goto afterconvertwarns
set thisfile=%filename[6]%
set outfile=%filebase[6]%.%outext%
if defined witnessname set outfile=%witnessname% 6.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[6]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (6 of %filecount%) (%duration[6]%)
%debug% (L930) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (6 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[6]=%%K"
set afterwarning6=
if %duration[6]% NEQ %afterdur[6]% set afterwarning6=%filename[6]% to %outfile%
if not defined filename[7] goto afterconvertwarns
set thisfile=%filename[7]%
set outfile=%filebase[7]%.%outext%
if defined witnessname set outfile=%witnessname% 7.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[7]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (7 of %filecount%) (%duration[7]%)
%debug% (L944) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (7 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[7]=%%K"
set afterwarning7=
if %duration[7]% NEQ %afterdur[7]% set afterwarning7=%filename[7]% to %outfile%
if not defined filename[8] goto afterconvertwarns
set thisfile=%filename[8]%
set outfile=%filebase[8]%.%outext%
if defined witnessname set outfile=%witnessname% 8.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[8]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (8 of %filecount%) (%duration[8]%)
%debug% (L958) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (8 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[8]=%%K"
set afterwarning8=
if %duration[8]% NEQ %afterdur[8]% set afterwarning8=%filename[8]% to %outfile%
if not defined filename[9] goto afterconvertwarns
set thisfile=%filename[9]%
set outfile=%filebase[9]%.%outext%
if defined witnessname set outfile=%witnessname% 9.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[9]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (9 of %filecount%) (%duration[9]%)
%debug% (L972) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (9 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[9]=%%K"
set afterwarning9=
if %duration[9]% NEQ %afterdur[9]% set afterwarning9=%filename[9]% to %outfile%
if not defined filename[10] goto afterconvertwarns
set thisfile=%filename[10]%
set outfile=%filebase[10]%.%outext%
if defined witnessname set outfile=%witnessname% 10.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[10]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (10 of %filecount%) (%duration[10]%)
%debug% (L986) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (10 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[10]=%%K"
set afterwarning10=
if %duration[10]% NEQ %afterdur[10]% set afterwarning10=%filename[10]% to %outfile%
if not defined filename[11] goto afterconvertwarns
set thisfile=%filename[11]%
set outfile=%filebase[11]%.%outext%
if defined witnessname set outfile=%witnessname% 11.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[11]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (11 of %filecount%) (%duration[11]%)
%debug% (L1000) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (11 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[11]=%%K"
set afterwarning11=
if %duration[11]% NEQ %afterdur[11]% set afterwarning11=%filename[11]% to %outfile%
if not defined filename[12] goto afterconvertwarns
set thisfile=%filename[12]%
set outfile=%filebase[12]%.%outext%
if defined witnessname set outfile=%witnessname% 12.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[12]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (12 of %filecount%) (%duration[12]%)
%debug% (L1014) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (12 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[12]=%%K"
set afterwarning12=
if %duration[12]% NEQ %afterdur[12]% set afterwarning12=%filename[12]% to %outfile%
if not defined filename[13] goto afterconvertwarns
set thisfile=%filename[13]%
set outfile=%filebase[13]%.%outext%
if defined witnessname set outfile=%witnessname% 13.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[13]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (13 of %filecount%) (%duration[13]%)
%debug% (L1028) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (13 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[13]=%%K"
set afterwarning13=
if %duration[13]% NEQ %afterdur[13]% set afterwarning13=%filename[13]% to %outfile%
if not defined filename[14] goto afterconvertwarns
set thisfile=%filename[14]%
set outfile=%filebase[14]%.%outext%
if defined witnessname set outfile=%witnessname% 14.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[14]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (14 of %filecount%) (%duration[14]%)
%debug% (L1042) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (14 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[14]=%%K"
set afterwarning14=
if %duration[14]% NEQ %afterdur[14]% set afterwarning14=%filename[14]% to %outfile%
if not defined filename[15] goto afterconvertwarns
set thisfile=%filename[15]%
set outfile=%filebase[15]%.%outext%
if defined witnessname set outfile=%witnessname% 15.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[15]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (15 of %filecount%) (%duration[15]%)
%debug% (L1056) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (15 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[15]=%%K"
set afterwarning15=
if %duration[15]% NEQ %afterdur[15]% set afterwarning15=%filename[15]% to %outfile%
if not defined filename[16] goto afterconvertwarns
set thisfile=%filename[16]%
set outfile=%filebase[16]%.%outext%
if defined witnessname set outfile=%witnessname% 16.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[16]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (16 of %filecount%) (%duration[16]%)
%debug% (L1070) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (16 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[16]=%%K"
set afterwarning16=
if %duration[16]% NEQ %afterdur[16]% set afterwarning16=%filename[16]% to %outfile%
if not defined filename[17] goto afterconvertwarns
set thisfile=%filename[17]%
set outfile=%filebase[17]%.%outext%
if defined witnessname set outfile=%witnessname% 17.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[17]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (17 of %filecount%) (%duration[17]%)
%debug% (L1084) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (17 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[17]=%%K"
set afterwarning17=
if %duration[17]% NEQ %afterdur[17]% set afterwarning17=%filename[17]% to %outfile%
if not defined filename[18] goto afterconvertwarns
set thisfile=%filename[18]%
set outfile=%filebase[18]%.%outext%
if defined witnessname set outfile=%witnessname% 18.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[18]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (18 of %filecount%) (%duration[18]%)
%debug% (L1098) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (18 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[18]=%%K"
set afterwarning18=
if %duration[18]% NEQ %afterdur[18]% set afterwarning18=%filename[18]% to %outfile%
if not defined filename[19] goto afterconvertwarns
set thisfile=%filename[19]%
set outfile=%filebase[19]%.%outext%
if defined witnessname set outfile=%witnessname% 19.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[19]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (19 of %filecount%) (%duration[19]%)
%debug% (L1112) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (19 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[19]=%%K"
set afterwarning19=
if %duration[19]% NEQ %afterdur[19]% set afterwarning19=%filename[19]% to %outfile%
if not defined filename[20] goto afterconvertwarns
set thisfile=%filename[20]%
set outfile=%filebase[20]%.%outext%
if defined witnessname set outfile=%witnessname% 20.%outext%
if [%batch_masters%] == [1] set outfile=%filebase[20]%.%outext%
title Step 1: %outext% %thisfile% -^> %outfile% (20 of %filecount%) (%duration[20]%)
%debug% (L1126) (time=%time%) Step 1: %outext% %thisfile% -^> %outfile% (20 of %filecount%) >>"%logfile%"
ffmpeg.exe -y -threads %threadcount% %hwenable% -i "%thisfile%" %params% "%Aoutfolder%\%outfile%"
echo file '%outfile%'>>"%Aoutfolder%\mylist.txt"
:: now check the duration of the converted file, let's compare to original
for /F "delims=" %%K in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%Aoutfolder%\%outfile%" 2^>^&1') do set "afterdur[20]=%%K"
set afterwarning20=
if %duration[20]% NEQ %afterdur[20]% set afterwarning20=%filename[20]% to %outfile%
:afterconvertwarns
call :show_convert_size_changes
if [%sizechange%]==[0] goto step2
powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\chord.wav").PlaySync();
timeout /t 10
:: **********************************************************************************************************************************************************************
:step2
if [%remoteshooter%] == [2] goto end
if [%remoteshooter%] == [4] goto end
title Starting Step 2
%debug% (L1147) (time=%time%) Starting Step 2. >>"%logfile%"
timeout /t 1 >nul
cls
echo. ============ STEP 2 ===============
echo. = =
echo. = CONCAT MKV files =
echo. = =
echo. ===================================
timeout /t 2 >nul
:: assume no concatting needed without archive gen
if [%makeARCHIVE%] == [1] goto noskipconcat
echo. *******************************
echo. ****** CONCAT DISABLED ********
echo. *******************************
timeout /t 3 >nul
goto step3
:noskipconcat
cd %Aoutfolder%
if [%concat%] == [0] goto step3
if defined filename[2] goto doconcat
echo.
echo. *** Concat not needed for single file ***
echo.
set concat=0
del mylist.txt
timeout /t 3 >nul
goto step3
:doconcat
set thismessage=Joining MKVs
title Step 2: %thismessage%
..\ffmpeg -y -f concat -safe 0 -i "mylist.txt" -c copy "%witnessname%.mkv"
title Step 2: showing the list
echo. ==== the list ====
type mylist.txt
echo. ==================
timeout /t 2 >nul
del mylist.txt
:: Move component pieces into pre-merge folder
title Step 2: Moving files into pre-merge folder
md "pre-merge pieces" > nul 2> nul
move "%witnessname% ?.mkv" "pre-merge pieces" > nul 2> nul
move "%witnessname% ??.mkv" "pre-merge pieces" > nul 2> nul
timeout /t 2 >nul
:step3
title Starting Step 3
%debug% (L1200) (time=%time%) Starting Step 3. >>"%logfile%"
timeout /t 1 >nul
if exist mylist.txt del mylist.txt
cls
echo. ============ STEP 3 ===============
echo. = =
echo. = MKV to MP4 with SameQ =
echo. = =
echo. ===================================
timeout /t 2 >nul
if [%makeMP4%] == [1] goto doMakeMP4
if [%remoteshooter%] == [1] goto step4
if [%remoteshooter%] == [3] goto step4
rem we actually made the MP4 in step 1 for remote2 so skip here
if [%remoteshooter%] == [2] goto step4
if [%remoteshooter%] == [4] goto step4
echo.
echo. *** MP4 Generation disabled ***
echo.
timeout /t 2 >nul
goto step4
:doMakeMP4
title Step 3: Picking outfolder name :
:: build the perfect folder name for target
set Toutfolder=..\MP4 %targetrezstring%
if [%targetrezstring%] == [mpg1] set Toutfolder=..\MPEG-1 480p
if [%crop%] == [1] set Toutfolder=%Toutfolder% 4x3
if [%crop%] == [2] set Toutfolder=%Toutfolder% 4x3
if [%makeARCHIVE%] == [1] set Toutfolder=%Toutfolder% sameq from x265
if [%makeARCHIVE%] == [0] set Toutfolder=MP4 sameq from %filetype% masters
title Step 3: Picking outfolder name : "%Toutfolder%"
md "%Toutfolder%"
:: set up crop and scale parameters in FFmpeg param-speak
set tcropparam=
set taspect=
:: (to implement force crop, do a jump to forcedrop label here with crop==2 // ie, if [%crop%] == [2] goto forcecrop
if [%crop%] == [1] goto maybecrop
if [%crop%] == [0] goto skipcrop
goto skipcrop
:maybecrop
rem go ahead and set the aspect, in case it's already cropped master cuz skip will avoid the taspect setting in forcecrop
set taspect=-aspect 4:3
rem drop thru into forced if neither ripcord triggers a skip
if [%display_aspect_ratio%] == [4:3] goto skipcrop
if [%display_aspect_ratio%] == [4x3] goto skipcrop
:forcecrop
rem this catches any crop, 1 or 2, if aspect is 16x9
set tcropparam=,crop=iw/4*3:ih
set taspect=-aspect 4:3
:skipcrop
set tscaleparam=
if [%targetrezstring%] == [1080p] set tscaleparam=-s 1920:1080
if [%targetrezstring%] == [720p] set tscaleparam=-s 1280:720
if [%targetrezstring%] == [480p] set tscaleparam=-s 720:480
if [%targetrezstring%] == [mpg1] set tscaleparam=-s 720:480
:: Choose skip (concat=0) or normal (concat=1)
if [%makeARCHIVE%] == [0] goto noarchiveway
if [%concat%] == [0] goto skipway
:concatway
:: convert from a concatted archive
set sourcename=joined.mkv
if defined witnessname set sourcename=%witnessname%.mkv
if [%targetrezstring%] == [mpg1] goto mpg1way
:: normal way
set outname=final.mp4
if defined witnessname set outname=%witnessname%.mp4
goto aftermpg1way
:mpg1way
set outname=final.mpg
if defined witnessname set outname=%witnessname%.mpg
:aftermpg1way
title Step 3: MP4/MPG1 of %sourcename% (concatted file)
%debug% (L1153) (time=%time%) Step 3: MP4 of %sourcename% (concatted file) >>"%logfile%"
if [%targetrezstring%] == [mpg1] goto itsmpg1
..\ffmpeg -y -i "%sourcename%" -vf "yadif %tcropparam%" -q:v 0 %tscaleparam% %taspect% "%outname%"
goto afterffmpeg
:itsmpg1
..\ffmpeg -y -i "%sourcename%" -f mpeg -r 29.97 -write_tmcd 0 -pix_fmt yuv420p -s 720:480 -aspect 16:9 -b:v 1800k -maxrate 1800k -minrate 1800k -bufsize 1000k -sws_flags lanczos -g 15 -ab 128k "%outname%"
:afterffmpeg
move "%outname%" "%Toutfolder%"
goto afterjoin
:noarchiveway
:: this is for people who aren't making archives, but we need to step through the filelist and convert to desired MP4 format
:: Note, skipway existed before this section, and witness name was optional then. It's required now, so I'm not worried about
:: what to do if no witness name. Also converting straight into Toutfolder since we won't hit the CD command.
:: Note2, skipway had luxury of knowing files were renamed to witnessname during MKVgen. We use orig names here
title Step 3: %filetype% Master -^> MP4 of %witnessname% (1 of %filecount%) (%duration[1]%)
%debug% (L1280) (time=%time%) Step 3: Master -^> MP4 of %filename[1]% (1 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[1]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[1]%.mp4"
if not defined filename[2] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (2 of %filecount%) (%duration[2]%)
%debug% (L1285) (time=%time%) Step 3: Master -^> MP4 of %filename[2]% (2 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[2]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[2]%.mp4"
if not defined filename[3] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (3 of %filecount%) (%duration[3]%)
%debug% (L1290) (time=%time%) Step 3: Master -^> MP4 of %filename[3]% (3 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[3]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[3]%.mp4"
if not defined filename[4] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (4 of %filecount%) (%duration[4]%)
%debug% (L1295) (time=%time%) Step 3: Master -^> MP4 of %filename[4]% (4 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[4]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[4]%.mp4"
if not defined filename[5] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (5 of %filecount%) (%duration[5]%)
%debug% (L1300) (time=%time%) Step 3: Master -^> MP4 of %filename[5]% (5 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[5]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[5]%.mp4"
if not defined filename[6] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (6 of %filecount%) (%duration[6]%)
%debug% (L1305) (time=%time%) Step 3: Master -^> MP4 of %filename[6]% (6 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[6]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[6]%.mp4"
if not defined filename[7] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (7 of %filecount%) (%duration[7]%)
%debug% (L1310) (time=%time%) Step 3: Master -^> MP4 of %filename[7]% (7 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[7]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[7]%.mp4"
if not defined filename[8] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (8 of %filecount%) (%duration[8]%)
%debug% (L1315) (time=%time%) Step 3: Master -^> MP4 of %filename[8]% (8 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[8]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[8]%.mp4"
if not defined filename[9] goto afterMP4
title Step 3: %filetype% Master -^> MP4 of %witnessname% (9 of %filecount%) (%duration[9]%)
%debug% (L1320) (time=%time%) Step 3: Master -^> MP4 of %filename[9]% (9 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[9]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[9]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (10 of %filecount%) (%duration[10]%)
%debug% (L1324) (time=%time%) Step 3: Master -^> MP4 of %filename[10]% (10 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[10]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[10]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (11 of %filecount%) (%duration[11]%)
%debug% (L1328) (time=%time%) Step 3: Master -^> MP4 of %filename[11]% (11 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[11]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[11]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (12 of %filecount%) (%duration[12]%)
%debug% (L1332) (time=%time%) Step 3: Master -^> MP4 of %filename[12]% (12 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[12]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[12]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (13 of %filecount%) (%duration[13]%)
%debug% (L1336) (time=%time%) Step 3: Master -^> MP4 of %filename[13]% (13 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[13]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[13]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (14 of %filecount%) (%duration[14]%)
%debug% (L1340) (time=%time%) Step 3: Master -^> MP4 of %filename[14]% (14 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[14]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[14]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (15 of %filecount%) (%duration[15]%)
%debug% (L1344) (time=%time%) Step 3: Master -^> MP4 of %filename[15]% (15 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[15]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[15]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (16 of %filecount%) (%duration[16]%)
%debug% (L1348) (time=%time%) Step 3: Master -^> MP4 of %filename[16]% (16 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[16]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[16]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (17 of %filecount%) (%duration[17]%)
%debug% (L1352) (time=%time%) Step 3: Master -^> MP4 of %filename[17]% (17 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[17]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[17]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (18 of %filecount%) (%duration[18]%)
%debug% (L1356) (time=%time%) Step 3: Master -^> MP4 of %filename[18]% (18 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[18]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[18]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (19 of %filecount%) (%duration[19]%)
%debug% (L1360) (time=%time%) Step 3: Master -^> MP4 of %filename[19]% (19 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[19]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[19]%.mp4"
title Step 3: %filetype% Master -^> MP4 of %witnessname% (20 of %filecount%) (%duration[20]%)
%debug% (L1364) (time=%time%) Step 3: Master -^> MP4 of %filename[20]% (20 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[20]%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%Toutfolder%\%filebase[20]%.mp4"
goto afterjoin
:skipway
%debug% (L1372) (time=%time%) Step 3: MKV -^> MP4 of %witnessname% (1 of %filecount%) >>"%logfile%"
:: special case for single file
set sourcefile=%witnessname% 1.mkv
if [%filecount%] == [1] set sourcefile=%witnessname%.mkv
:: now we have infile name, get duration
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
set outfile=%witnessname% 1.mp4
if [%batch_masters%] == [1] set sourcefile=%filebase[1]%.mkv
set outext=mp4
if [%targetrezstring%] == [mpg1] set outext=mpg
if [%batch_masters%] == [1] set outfile=%filebase[1]%.%outext%
title Step 3: MKV -^> %outext% of %witnessname% (1 of %filecount%) (%duration%)
if [%filecount%] == [1] set outfile=%witnessname%.%outext%
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[2] goto afterMP4
%debug% (L1385) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (2 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 2.mkv
set outfile=%witnessname% 2.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[2]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[2]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (2 of %filecount%) (%duration%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[3] goto afterMP4
%debug% (L1394) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (3 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 3.mkv
set outfile=%witnessname% 3.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[3]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[3]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (3 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[4] goto afterMP4
%debug% (L1403) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (4 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 4.mkv
set outfile=%witnessname% 4.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[4]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[4]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (4 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[5] goto afterMP4
%debug% (L1412) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (5 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 5.mkv
set outfile=%witnessname% 5.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[5]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[5]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (5 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[6] goto afterMP4
%debug% (L1421) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (6 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 6.mkv
set outfile=%witnessname% 6.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[6]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[6]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (6 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[7] goto afterMP4
%debug% (L1430) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (7 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 7.mkv
set outfile=%witnessname% 7.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[7]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[7]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (7 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[8] goto afterMP4
%debug% (L1439) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (8 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 8.mkv
set outfile=%witnessname% 8.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[8]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[8]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (8 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[9] got afterMP4
%debug% (L1448) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (9 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 9.mkv
set outfile=%witnessname% 9.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[9]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[9]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (9 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[10] got afterMP4
%debug% (L1457) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (10 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 10.mkv
set outfile=%witnessname% 10.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[10]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[10]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (10 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[11] got afterMP4
%debug% (L1466) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (11 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 11.mkv
set outfile=%witnessname% 11.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[11]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[11]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (11 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[12] got afterMP4
%debug% (L1475) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (12 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 12.mkv
set outfile=%witnessname% 12.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[12]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[12]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (12 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[13] got afterMP4
%debug% (L1484) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (13 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 13.mkv
set outfile=%witnessname% 13.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[13]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[13]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (13 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[14] got afterMP4
%debug% (L1493) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (14 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 14.mkv
set outfile=%witnessname% 14.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[14]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[14]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (14 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[15] got afterMP4
%debug% (L1502) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (15 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 15.mkv
set outfile=%witnessname% 15.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[15]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[15]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (15 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[16] got afterMP4
%debug% (L1511) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (16 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 16.mkv
set outfile=%witnessname% 16.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[16]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[16]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (16 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[17] got afterMP4
%debug% (L1520) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (17 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 17.mkv
set outfile=%witnessname% 17.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[17]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[17]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (17 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[18] got afterMP4
%debug% (L1529) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (18 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 18.mkv
set outfile=%witnessname% 18.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[18]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[18]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (18 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[19] got afterMP4
%debug% (L1538) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (19 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 19.mkv
set outfile=%witnessname% 19.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[19]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[19]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (19 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
if not defined filename[20] got afterMP4
%debug% (L1547) (time=%time%) Step 3: MKV -^> %outext% of %witnessname% (20 of %filecount%) >>"%logfile%"
set sourcefile=%witnessname% 20.mkv
set outfile=%witnessname% 20.%outext%
if [%batch_masters%] == [1] set sourcefile=%filebase[20]%.mkv
if [%batch_masters%] == [1] set outfile=%filebase[20]%.%outext%
for /F "delims=" %%I in ('ffprobe.exe -v error -select_streams v:0 -show_entries format^=duration -sexagesimal -of default^=noprint_wrappers^=1:nokey^=1 "%sourcefile%" 2^>^&1') do set "duration=%%I"
title Step 3: MKV -^> %outext% of %witnessname% (20 of %filecount%) (%duration[3]%)
..\ffmpeg -y -i "%sourcefile%" -vf "yadif %tcropparam%" -q:v 0 -pix_fmt yuv420p %tscaleparam% %taspect% "%outfile%"
:afterMP4
title Step 3: Moving files
%debug% (L1556) (time=%time%) Step 3: Moving files >>"%logfile%"
if exist "%witnessname%.%outext%" move "%witnessname%.%outext%" "%Toutfolder%"
if exist "%witnessname% 1.%outext%" move "%witnessname% 1.%outext%" "%Toutfolder%"
if exist "%witnessname% 2.%outext%" move "%witnessname% 2.%outext%" "%Toutfolder%"
if exist "%witnessname% 3.%outext%" move "%witnessname% 3.%outext%" "%Toutfolder%"
if exist "%witnessname% 4.%outext%" move "%witnessname% 4.%outext%" "%Toutfolder%"
if exist "%witnessname% 5.%outext%" move "%witnessname% 5.%outext%" "%Toutfolder%"
if exist "%witnessname% 6.%outext%" move "%witnessname% 6.%outext%" "%Toutfolder%"
if exist "%witnessname% 7.%outext%" move "%witnessname% 7.%outext%" "%Toutfolder%"
if exist "%witnessname% 8.%outext%" move "%witnessname% 8.%outext%" "%Toutfolder%"
if exist "%witnessname% 9.%outext%" move "%witnessname% 9.%outext%" "%Toutfolder%"
if exist "%witnessname% 10.%outext%" move "%witnessname% 10.%outext%" "%Toutfolder%"
if exist "%witnessname% 11.%outext%" move "%witnessname% 11.%outext%" "%Toutfolder%"
if exist "%witnessname% 12.%outext%" move "%witnessname% 12.%outext%" "%Toutfolder%"
if exist "%witnessname% 13.%outext%" move "%witnessname% 13.%outext%" "%Toutfolder%"
if exist "%witnessname% 14.%outext%" move "%witnessname% 14.%outext%" "%Toutfolder%"
if exist "%witnessname% 15.%outext%" move "%witnessname% 15.%outext%" "%Toutfolder%"
if exist "%witnessname% 16.%outext%" move "%witnessname% 16.%outext%" "%Toutfolder%"
if exist "%witnessname% 17.%outext%" move "%witnessname% 17.%outext%" "%Toutfolder%"
if exist "%witnessname% 18.%outext%" move "%witnessname% 18.%outext%" "%Toutfolder%"
if exist "%witnessname% 19.%outext%" move "%witnessname% 19.%outext%" "%Toutfolder%"
if exist "%witnessname% 20.%outext%" move "%witnessname% 20.%outext%" "%Toutfolder%"
if [%batch_masters%] == [0] goto afterjoin
if exist "%filebase[1]%.%outext%" move "%filebase[1]%.%outext%" "%Toutfolder%"
if exist "%filebase[2]%.%outext%" move "%filebase[2]%.%outext%" "%Toutfolder%"
if exist "%filebase[3]%.%outext%" move "%filebase[3]%.%outext%" "%Toutfolder%"
if exist "%filebase[4]%.%outext%" move "%filebase[4]%.%outext%" "%Toutfolder%"
if exist "%filebase[5]%.%outext%" move "%filebase[5]%.%outext%" "%Toutfolder%"
if exist "%filebase[6]%.%outext%" move "%filebase[6]%.%outext%" "%Toutfolder%"
if exist "%filebase[7]%.%outext%" move "%filebase[7]%.%outext%" "%Toutfolder%"
if exist "%filebase[8]%.%outext%" move "%filebase[8]%.%outext%" "%Toutfolder%"
if exist "%filebase[9]%.%outext%" move "%filebase[9]%.%outext%" "%Toutfolder%"
if exist "%filebase[10]%.%outext%" move "%filebase[10]%.%outext%" "%Toutfolder%"
if exist "%filebase[11]%.%outext%" move "%filebase[11]%.%outext%" "%Toutfolder%"
if exist "%filebase[12]%.%outext%" move "%filebase[12]%.%outext%" "%Toutfolder%"
if exist "%filebase[13]%.%outext%" move "%filebase[13]%.%outext%" "%Toutfolder%"
if exist "%filebase[14]%.%outext%" move "%filebase[14]%.%outext%" "%Toutfolder%"
if exist "%filebase[15]%.%outext%" move "%filebase[15]%.%outext%" "%Toutfolder%"
if exist "%filebase[16]%.%outext%" move "%filebase[16]%.%outext%" "%Toutfolder%"
if exist "%filebase[17]%.%outext%" move "%filebase[17]%.%outext%" "%Toutfolder%"
if exist "%filebase[18]%.%outext%" move "%filebase[18]%.%outext%" "%Toutfolder%"
if exist "%filebase[19]%.%outext%" move "%filebase[19]%.%outext%" "%Toutfolder%"
if exist "%filebase[20]%.%outext%" move "%filebase[20]%.%outext%" "%Toutfolder%"
:afterjoin
title Step 3: Done with step 3
:step4
title Starting Step 4
%debug% (L1606) (time=%time%) Starting Step 4. >>"%logfile%"
cls
timeout /t 1 >nul
echo. ============ STEP 4 ===============
echo. = =
echo. = MP3 Audio from x265 =
echo. = =
echo. ===================================
timeout /t 2 >nul
if [%makeMP3%] == [1] goto doMakeMP3
echo.
echo. *** MP3 Generation disabled ***
echo.
timeout /t 2 >nul
goto step5
:doMakeMP3
if [%makeARCHIVE%] == [0] goto noarchiveway2
if [%concat%] == [0] goto skipway2
:concatway2
md "..\MP3 96k"
set sourcename=joined.mkv
if defined witnessname set sourcename=%witnessname%.mkv
set outfile=final.mp3
if defined witnessname set outfile=%witnessname%.mp3
title Step 4: MP3 from %sourcename%
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outfile%"
move "%outfile%" "..\MP3 96k"
goto afterMP3
:noarchiveway2
:: Just like noarchiveway above, but with MP3. We're not in x265 folder, so work here in "root"
md "MP3 96k"
title Step 4: %filetype% Master -^> MP4 of %witnessname% (1 of %filecount%) (%duration[1]%)
%debug% (L1641) (time=%time%) Step 4: Master -^> MP4 of %filename[1]% (1 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[1]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[1]%.mp3"
if not defined filename[2] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (2 of %filecount%) (%duration[2]%)
%debug% (L1646) (time=%time%) Step 4: Master -^> MP4 of %filename[2]% (2 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[2]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[2]%.mp3"
if not defined filename[3] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (3 of %filecount%) (%duration[3]%)
%debug% (L1651) (time=%time%) Step 4: Master -^> MP4 of %filename[3]% (3 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[3]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[3]%.mp3"
if not defined filename[4] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (4 of %filecount%) (%duration[4]%)
%debug% (L1656) (time=%time%) Step 4: Master -^> MP4 of %filename[4]% (4 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[4]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[4]%.mp3"
if not defined filename[5] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (5 of %filecount%) (%duration[5]%)
%debug% (L1661) (time=%time%) Step 4: Master -^> MP4 of %filename[5]% (5 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[5]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[5]%.mp3"
if not defined filename[6] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (6 of %filecount%) (%duration[6]%)
%debug% (L1666) (time=%time%) Step 4: Master -^> MP4 of %filename[6]% (6 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[6]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[6]%.mp3"
if not defined filename[7] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (7 of %filecount%) (%duration[7]%)
%debug% (L1671) (time=%time%) Step 4: Master -^> MP4 of %filename[7]% (7 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[7]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[7]%.mp3"
if not defined filename[8] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (8 of %filecount%) (%duration[8]%)
%debug% (L1676) (time=%time%) Step 4: Master -^> MP4 of %filename[8]% (8 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[8]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[8]%.mp3"
if not defined filename[9] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (9 of %filecount%) (%duration[9]%)
%debug% (L1681) (time=%time%) Step 4: Master -^> MP4 of %filename[9]% (9 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[9]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[9]%.mp3"
if not defined filename[10] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (10 of %filecount%) (%duration[10]%)
%debug% (L1686) (time=%time%) Step 4: Master -^> MP4 of %filename[10]% (10 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[10]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[10]%.mp3"
if not defined filename[11] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (11 of %filecount%) (%duration[11]%)
%debug% (L1691) (time=%time%) Step 4: Master -^> MP4 of %filename[11]% (11 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[11]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[11]%.mp3"
if not defined filename[12] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (12 of %filecount%) (%duration[12]%)
%debug% (L1696) (time=%time%) Step 4: Master -^> MP4 of %filename[12]% (12 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[12]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[12]%.mp3"
if not defined filename[13] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (13 of %filecount%) (%duration[13]%)
%debug% (L1701) (time=%time%) Step 4: Master -^> MP4 of %filename[13]% (13 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[13]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[13]%.mp3"
if not defined filename[14] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (14 of %filecount%) (%duration[14]%)
%debug% (L1706) (time=%time%) Step 4: Master -^> MP4 of %filename[14]% (14 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[14]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[14]%.mp3"
if not defined filename[15] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (15 of %filecount%) (%duration[15]%)
%debug% (L1711) (time=%time%) Step 4: Master -^> MP4 of %filename[15]% (15 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[15]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[15]%.mp3"
if not defined filename[16] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (16 of %filecount%) (%duration[16]%)
%debug% (L1716) (time=%time%) Step 4: Master -^> MP4 of %filename[16]% (16 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[16]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[16]%.mp3"
if not defined filename[17] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (17 of %filecount%) (%duration[17]%)
%debug% (L1721) (time=%time%) Step 4: Master -^> MP4 of %filename[17]% (17 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[17]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[17]%.mp3"
if not defined filename[18] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (18 of %filecount%) (%duration[18]%)
%debug% (L1726) (time=%time%) Step 4: Master -^> MP4 of %filename[18]% (18 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[18]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[18]%.mp3"
if not defined filename[19] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (19 of %filecount%) (%duration[19]%)
%debug% (L1731) (time=%time%) Step 4: Master -^> MP4 of %filename[19]% (19 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[19]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[19]%.mp3"
if not defined filename[20] goto afterMP3
title Step 4: %filetype% Master -^> MP4 of %witnessname% (20 of %filecount%) (%duration[20]%)
%debug% (L1736) (time=%time%) Step 4: Master -^> MP4 of %filename[20]% (20 of %filecount%) >>"%logfile%"
..\ffmpeg -y -i "%filename[20]%" -f mp3 -vn -ac 2 -ab 96k "MP3 96k\%filebase[20]%.mp3"
goto afterMP3
:skipway2
md "..\MP3 96k"
:: special case for single file
set sourcename=%witnessname% 1.mkv
if [%filecount%] == [1] set sourcename=%witnessname%.mkv
set outname=%witnessname% 1.mp3
if [%filecount%] == [1] set outname=%witnessname%.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[1]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[1]%.mp3
title Step 4: MP3 from %sourcename% (%duration[1]%)
%debug% (L1752) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[2] goto afterMP3
set sourcename=%witnessname% 2.mkv
set outname=%witnessname% 2.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[2]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[2]%.mp3
title Step 4: MP3 from %sourcename% (%duration[2]%)
%debug% (L1761) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[3] goto afterMP3
set sourcename=%witnessname% 3.mkv
set outname=%witnessname% 3.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[3]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[3]%.mp3
title Step 4: MP3 from %sourcename% (%duration[3]%)
%debug% (L1770) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[4] goto afterMP3
set sourcename=%witnessname% 4.mkv
set outname=%witnessname% 4.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[4]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[4]%.mp3
title Step 4: MP3 from %sourcename% (%duration[4]%)
%debug% (L1779) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[5] goto afterMP3
set sourcename=%witnessname% 5.mkv
set outname=%witnessname% 5.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[5]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[5]%.mp3
title Step 4: MP3 from %sourcename% (%duration[5]%)
%debug% (L1788) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[6] goto afterMP3
set sourcename=%witnessname% 6.mkv
set outname=%witnessname% 6.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[6]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[6]%.mp3
title Step 4: MP3 from %sourcename% (%duration[6]%)
%debug% (L1797) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[7] goto afterMP3
set sourcename=%witnessname% 7.mkv
set outname=%witnessname% 7.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[7]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[7]%.mp3
title Step 4: MP3 from %sourcename% (%duration[7]%)
%debug% (L1806) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[8] goto afterMP3
set sourcename=%witnessname% 8.mkv
set outname=%witnessname% 8.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[8]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[8]%.mp3
title Step 4: MP3 from %sourcename% (%duration[8]%)
%debug% (L1815) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[9] goto afterMP3
set sourcename=%witnessname% 9.mkv
set outname=%witnessname% 9.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[9]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[9]%.mp3
title Step 4: MP3 from %sourcename% (%duration[9]%)
%debug% (L1824) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[10] goto afterMP3
set sourcename=%witnessname% 10.mkv
set outname=%witnessname% 10.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[10]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[10]%.mp3
title Step 4: MP3 from %sourcename% (%duration[10]%)
%debug% (L1833) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[11] goto afterMP3
set sourcename=%witnessname% 11.mkv
set outname=%witnessname% 11.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[11]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[11]%.mp3
title Step 4: MP3 from %sourcename% (%duration[11]%)
%debug% (L1842) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[12] goto afterMP3
set sourcename=%witnessname% 12.mkv
set outname=%witnessname% 12.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[12]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[12]%.mp3
title Step 4: MP3 from %sourcename% (%duration[12]%)
%debug% (L1851) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[13] goto afterMP3
set sourcename=%witnessname% 13.mkv
set outname=%witnessname% 13.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[13]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[13]%.mp3
title Step 4: MP3 from %sourcename% (%duration[13]%)
%debug% (L1860) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[14] goto afterMP3
set sourcename=%witnessname% 14.mkv
set outname=%witnessname% 14.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[14]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[14]%.mp3
title Step 4: MP3 from %sourcename% (%duration[14]%)
%debug% (L1869) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[15] goto afterMP3
set sourcename=%witnessname% 15.mkv
set outname=%witnessname% 15.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[15]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[15]%.mp3
title Step 4: MP3 from %sourcename% (%duration[15]%)
%debug% (L1878) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[16] goto afterMP3
set sourcename=%witnessname% 16.mkv
set outname=%witnessname% 16.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[16]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[16]%.mp3
title Step 4: MP3 from %sourcename% (%duration[16]%)
%debug% (L1887) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[17] goto afterMP3
set sourcename=%witnessname% 17.mkv
set outname=%witnessname% 17.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[17]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[17]%.mp3
title Step 4: MP3 from %sourcename% (%duration[17]%)
%debug% (L1896) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[18] goto afterMP3
set sourcename=%witnessname% 18.mkv
set outname=%witnessname% 18.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[18]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[18]%.mp3
title Step 4: MP3 from %sourcename% (%duration[18]%)
%debug% (L1905) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[19] goto afterMP3
set sourcename=%witnessname% 19.mkv
set outname=%witnessname% 19.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[19]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[19]%.mp3
title Step 4: MP3 from %sourcename% (%duration[19]%)
%debug% (L1914) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
if not defined filename[20] goto afterMP3
set sourcename=%witnessname% 20.mkv
set outname=%witnessname% 20.mp3
if [%batch_masters%] == [1] set sourcename=%filebase[20]%.mkv
if [%batch_masters%] == [1] set outname=%filebase[20]%.mp3
title Step 4: MP3 from %sourcename% (%duration[20]%)
%debug% (L1923) (time=%time%) Step 4: MP3 from %sourcename% >>"%logfile%"
..\ffmpeg -y -i "%sourcename%" -f mp3 -vn -ac 2 -ab 96k "%outname%"
:afterMP3
title Step 4: Moving MP3 files to MP3 folder
if exist "%witnessname%.mp3" move "%witnessname%.mp3" "..\MP3 96k"
if exist "%witnessname% 1.mp3" move "%witnessname% 1.mp3" "..\MP3 96k"
if exist "%witnessname% 2.mp3" move "%witnessname% 2.mp3" "..\MP3 96k"
if exist "%witnessname% 3.mp3" move "%witnessname% 3.mp3" "..\MP3 96k"
if exist "%witnessname% 4.mp3" move "%witnessname% 4.mp3" "..\MP3 96k"
if exist "%witnessname% 5.mp3" move "%witnessname% 5.mp3" "..\MP3 96k"
if exist "%witnessname% 6.mp3" move "%witnessname% 6.mp3" "..\MP3 96k"
if exist "%witnessname% 7.mp3" move "%witnessname% 7.mp3" "..\MP3 96k"
if exist "%witnessname% 8.mp3" move "%witnessname% 8.mp3" "..\MP3 96k"
if exist "%witnessname% 9.mp3" move "%witnessname% 9.mp3" "..\MP3 96k"
if exist "%witnessname% 10.mp3" move "%witnessname% 10.mp3" "..\MP3 96k"
if exist "%witnessname% 11.mp3" move "%witnessname% 11.mp3" "..\MP3 96k"
if exist "%witnessname% 12.mp3" move "%witnessname% 12.mp3" "..\MP3 96k"
if exist "%witnessname% 13.mp3" move "%witnessname% 13.mp3" "..\MP3 96k"
if exist "%witnessname% 14.mp3" move "%witnessname% 14.mp3" "..\MP3 96k"
if exist "%witnessname% 15.mp3" move "%witnessname% 15.mp3" "..\MP3 96k"
if exist "%witnessname% 16.mp3" move "%witnessname% 16.mp3" "..\MP3 96k"
if exist "%witnessname% 17.mp3" move "%witnessname% 17.mp3" "..\MP3 96k"
if exist "%witnessname% 18.mp3" move "%witnessname% 18.mp3" "..\MP3 96k"
if exist "%witnessname% 19.mp3" move "%witnessname% 19.mp3" "..\MP3 96k"
if exist "%witnessname% 20.mp3" move "%witnessname% 20.mp3" "..\MP3 96k"
if [%batch_masters%] == [0] goto afterjoin2
if exist "%filebase[1]%.mp3" move "%filebase[1]%.mp3" "..\MP3 96k"
if exist "%filebase[2]%.mp3" move "%filebase[2]%.mp3" "..\MP3 96k"
if exist "%filebase[3]%.mp3" move "%filebase[3]%.mp3" "..\MP3 96k"
if exist "%filebase[4]%.mp3" move "%filebase[4]%.mp3" "..\MP3 96k"
if exist "%filebase[5]%.mp3" move "%filebase[5]%.mp3" "..\MP3 96k"
if exist "%filebase[6]%.mp3" move "%filebase[6]%.mp3" "..\MP3 96k"
if exist "%filebase[7]%.mp3" move "%filebase[7]%.mp3" "..\MP3 96k"
if exist "%filebase[8]%.mp3" move "%filebase[8]%.mp3" "..\MP3 96k"
if exist "%filebase[9]%.mp3" move "%filebase[9]%.mp3" "..\MP3 96k"
if exist "%filebase[10]%.mp3" move "%filebase[10]%.mp3" "..\MP3 96k"
if exist "%filebase[11]%.mp3" move "%filebase[11]%.mp3" "..\MP3 96k"
if exist "%filebase[12]%.mp3" move "%filebase[12]%.mp3" "..\MP3 96k"
if exist "%filebase[13]%.mp3" move "%filebase[13]%.mp3" "..\MP3 96k"
if exist "%filebase[14]%.mp3" move "%filebase[14]%.mp3" "..\MP3 96k"
if exist "%filebase[15]%.mp3" move "%filebase[15]%.mp3" "..\MP3 96k"
if exist "%filebase[16]%.mp3" move "%filebase[16]%.mp3" "..\MP3 96k"
if exist "%filebase[17]%.mp3" move "%filebase[17]%.mp3" "..\MP3 96k"
if exist "%filebase[18]%.mp3" move "%filebase[18]%.mp3" "..\MP3 96k"
if exist "%filebase[19]%.mp3" move "%filebase[19]%.mp3" "..\MP3 96k"
if exist "%filebase[20]%.mp3" move "%filebase[20]%.mp3" "..\MP3 96k"
:afterjoin2
title Step 4: Done with step 4
:step5
:: back up to root, unless we're noarchivers, in which case we never CD'd away into subfolder
if [%makeARCHIVE%] == [1] cd ..
goto end
:error0
echo.
echo. Settings.bat not found. Did you run AutoMTS5 yet? Exiting...
echo.
timeout /t 5 >nul
goto end3
:error1
echo.
echo. FFmpeg.exe is required. Exiting...
echo.
timeout /t 5 >nul
goto end3
:error2
echo.
echo. FFprobe.exe is required. Exiting...
echo.
timeout /t 5 >nul
goto end3
:error3
echo.
echo. AutoMini.bat is required. Exiting...
echo.
timeout /t 5 >nul
goto end3
:end
cls
echo.
echo. ===================================
echo. = =
echo. = ** FINISHED ** =
echo. = =
echo. ===================================
if exist "=== %~n0 RUNNING ===" del "=== %~n0 RUNNING ==="
%debug% (L2019) (time=%time%) ALL DONE!! >>"%logfile%"
title ALL DONE!!!
if defined witnessname title ALL DONE (%witnessname%)
:: Play my sound, if it's there
if not exist "C:\Windows\Media\notify.wav" goto skipsound
powershell -c (New-Object Media.SoundPlayer "C:\Windows\Media\notify.wav").PlaySync();
:skipsound
if [%remoteshooter%] == [] goto end2
if [%remoteshooter%] == [0] goto end2
start "%Toutfolder%"
start http://kellyvideo.wetransfer.com
rem this starts a command prompt, not what we want if [%remoteshooter%] == [2] start "MP4 sameq"
goto end2
:show_convert_size_changes
echo.
set sizechange=0
if not defined afterwarning1 goto noafter1
echo *** WARNING: %afterwarning1% ***
echo. %duration[1]% -^> %afterdur[1]%
echo.
set sizechange=1
:noafter1
if not defined afterwarning2 goto noafter2
echo *** WARNING: %afterwarning2% ***
echo. %duration[2]% -^> %afterdur[2]%v
echo.
set sizechange=1
:noafter2
if not defined afterwarning3 goto noafter3
echo *** WARNING: %afterwarning3%% ***
echo. %duration[3]% -^> %afterdur[3]%
echo.
set sizechange=1
:noafter3
if not defined afterwarning4 goto noafter4
echo *** WARNING: %afterwarning4% ***
echo. %duration[4]% -^> %afterdur[4]%
echo.
set sizechange=1
:noafter4
if not defined afterwarning5 goto noafter5
echo *** WARNING: %afterwarning5% ***
echo. %duration[5]% -^> %afterdur[5]%
echo.
set sizechange=1
:noafter5
if not defined afterwarning6 goto noafter6
echo *** WARNING: %afterwarning6% ***
echo. %duration[6]% -^> %afterdur[6]%
echo.
set sizechange=1
:noafter6
if not defined afterwarning7 goto noafter7
echo *** WARNING: %afterwarning7% ***
echo. %duration[7]% -^> %afterdur[7]%
echo.
set sizechange=1
:noafter7
if not defined afterwarning8 goto noafter8
echo *** WARNING: %afterwarning8% ***
echo. %duration[8]% -^> %afterdur[8]%
echo.
set sizechange=1
:noafter8
if not defined afterwarning9 goto noafter9
echo *** WARNING: %afterwarning9% ***
echo. %duration[9]% -^> %afterdur[9]%
echo.
set sizechange=1
:noafter9
if not defined afterwarning10 goto noafter10
echo *** WARNING: %afterwarning10% ***
echo. %duration[10]% -^> %afterdur[10]%
echo.
set sizechange=1
:noafter10
if not defined afterwarning11 goto noafter11
echo *** WARNING: %afterwarning11% ***
echo. %duration[11]% -^> %afterdur[11]%
echo.
set sizechange=1
:noafter11
if not defined afterwarning12 goto noafter12
echo *** WARNING: %afterwarning12% ***
echo. %duration[12]% -^> %afterdur[12]%
echo.
set sizechange=1
:noafter12
if not defined afterwarning13 goto noafter13
echo *** WARNING: %afterwarning13% ***
echo. %duration[13]% -^> %afterdur[13]%
echo.
set sizechange=1
:noafter13
if not defined afterwarning14 goto noafter14
echo *** WARNING: %afterwarning14% ***
echo. %duration[14]% -^> %afterdur[14]%
echo.
set sizechange=1
:noafter14
if not defined afterwarning15 goto noafter15
echo *** WARNING: %afterwarning15% ***
echo. %duration[15]% -^> %afterdur[15]%
echo.
set sizechange=1
:noafter15
if not defined afterwarning16 goto noafter16
echo *** WARNING: %afterwarning16% ***
echo. %duration[16]% -^> %afterdur[16]%
echo.
set sizechange=1
:noafter16
if not defined afterwarning17 goto noafter17
echo *** WARNING: %afterwarning17% ***
echo. %duration[17]% -^> %afterdur[17]%
echo.
set sizechange=1
:noafter17
if not defined afterwarning18 goto noafter18
echo *** WARNING: %afterwarning18% ***
echo. %duration[18]% -^> %afterdur[18]%
echo.
set sizechange=1
:noafter18
if not defined afterwarning19 goto noafter19
echo *** WARNING: %afterwarning19% ***
echo. %duration[19]% -^> %afterdur[19]%
echo.
set sizechange=1
:noafter19
if not defined afterwarning20 goto noafter20
echo *** WARNING: %afterwarning20% ***
echo. %duration[20]% -^> %afterdur[20]%
echo.
set sizechange=1
:noafter20
exit /b
:end2
if exist cleanuptools.bat call cleanuptools.bat
:end3