Automini.bat

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