rack04
11th May 2009, 17:21
I have created a batch file that will use WriteFile to analyze a raw video stream or container. The only parameter that I've having problems with is the AudioChannels.
:mkv
Echo DirectShowSource("%INPUT_VIDEO%")>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.txt","Framecount")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.txt","Framerate")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.txt","Width")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.txt","Height")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.txt","AudioRate")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.txt","AudioLength")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.txt","AudioChannels")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
goto ffmpeg
:ffmpeg
Echo.
Echo.
"%ffmpeg_PATH%" -i "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
goto define
:define
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.tmp"
set /p SOURCE_FRAMECOUNT=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.tmp"
set /p SOURCE_FRAMERATE=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.tmp"
set /p SOURCE_WIDTH=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.tmp"
set /p SOURCE_HEIGHT=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.tmp"
set /p SOURCE_AUDIORATE=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.tmp"
set /p SOURCE_AUDIOLENGTH=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.tmp"
set /p SOURCE_AUDIOCHANNELS=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.tmp"
Echo Frame Count = %SOURCE_FRAMECOUNT%>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Frame Rate = %SOURCE_FRAMERATE%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Resolution = %SOURCE_WIDTH%x%SOURCE_HEIGHT%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Audio Rate = %SOURCE_AUDIORATE%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Audio Length = %SOURCE_AUDIOLENGTH%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Audio Channels = %SOURCE_AUDIOCHANNELS%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
goto clean
"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.txt" has the value of 6.
"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.tmp" has the value of 6.
"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt" doesn't output any value for AudioChannels.
Can anyone take tell me what I'm missing? Thanks.
:mkv
Echo DirectShowSource("%INPUT_VIDEO%")>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.txt","Framecount")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.txt","Framerate")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.txt","Width")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.txt","Height")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.txt","AudioRate")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.txt","AudioLength")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
Echo WriteFile("%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.txt","AudioChannels")>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
goto ffmpeg
:ffmpeg
Echo.
Echo.
"%ffmpeg_PATH%" -i "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.avs"
goto define
:define
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.tmp"
type "%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.txt">"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.tmp"
set /p SOURCE_FRAMECOUNT=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framecount.tmp"
set /p SOURCE_FRAMERATE=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-framerate.tmp"
set /p SOURCE_WIDTH=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-width.tmp"
set /p SOURCE_HEIGHT=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-height.tmp"
set /p SOURCE_AUDIORATE=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiorate.tmp"
set /p SOURCE_AUDIOLENGTH=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiolength.tmp"
set /p SOURCE_AUDIOCHANNELS=<"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.tmp"
Echo Frame Count = %SOURCE_FRAMECOUNT%>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Frame Rate = %SOURCE_FRAMERATE%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Resolution = %SOURCE_WIDTH%x%SOURCE_HEIGHT%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Audio Rate = %SOURCE_AUDIORATE%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Audio Length = %SOURCE_AUDIOLENGTH%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
Echo Audio Channels = %SOURCE_AUDIOCHANNELS%>>"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt"
goto clean
"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.txt" has the value of 6.
"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-audiochannels.tmp" has the value of 6.
"%WORKING_DIRECTORY%\%OUTPUT_FILENAME%-analyze.txt" doesn't output any value for AudioChannels.
Can anyone take tell me what I'm missing? Thanks.