GeSHi Source Viewer: encode_wav.batView Raw


  1. @echo off
  2. set ztmp_enccommon=D:\bin\foobar2000\encoders
  3. set ztmp_ffmpeg=%ztmp_enccommon%\ffmpeg.exe
  4. set ztmp_ffprobe=%ztmp_enccommon%\ffprobe.exe
  5. set ztmp_aac=%ztmp_enccommon%\x86\neroAacEnc.exe
  6. set ztmp_vorbis=%ztmp_enccommon%\oggenc2.exe
  7. set ztmp_opus=%ztmp_enccommon%\opusenc.exe
  8. set ztmp_lame=%ztmp_enccommon%\lame.exe
  9. set ztmp_flac=%ztmp_enccommon%\flac.exe
  10.  
  11. setlocal EnableExtensions
  12. setlocal EnableDelayedExpansion
  13. set ztmp_file=%~n1
  14. shift
  15.  
  16. if not exist "%ztmp_file%.wav" (
  17. 	echo Could not find "%ztmp_file%.wav"
  18. 	goto :failed
  19. )
  20.  
  21. if exist "out\%ztmp_file%.opus" (
  22. 	del "out\%ztmp_file%.opus"
  23. )
  24. if exist "out\%ztmp_file%.ogg" (
  25. 	del "out\%ztmp_file%.ogg"
  26. )
  27. if exist "out\%ztmp_file%.m4a" (
  28. 	del "out\%ztmp_file%.m4a"
  29. )
  30. if exist "out\%ztmp_file%.webm" (
  31. 	del "out\%ztmp_file%.webm"
  32. )
  33. if exist "out\%ztmp_file%.flac" (
  34. 	del "out\%ztmp_file%.flac"
  35. )
  36. if exist "out\%ztmp_file%.mp3" (
  37. 	del "out\%ztmp_file%.mp3"
  38. )
  39. if exist "out\%ztmp_file%.wav" (
  40. 	del "out\%ztmp_file%.wav"
  41. )
  42.  
  43. echo Converting %ztmp_file%.wav ...
  44.  
  45. rem SAMPLE RATE CHECK AND CONVERT
  46. echo Checking sample rate...
  47. %ztmp_ffprobe% -loglevel 8 -show_streams "%ztmp_file%.wav" | grep sample_rate | cut -d"=" -f2 > tmp.txt
  48. if errorlevel 1 goto failed
  49. set /p ztmp_samplerate=<tmp.txt && del tmp.txt
  50.  
  51. if "!ztmp_samplerate!" NEQ "44100" (
  52. 	echo Sample rate ^(!ztmp_samplerate!Hz^) is not 44100Hz, resampling...
  53. 	%ztmp_ffmpeg% -loglevel 8 -i "%ztmp_file%.wav" -c:a pcm_s16le -ac 2 -ar 44100 -f wav "%ztmp_file%_tmp.wav" 1>nul
  54. 	if errorlevel 1 goto failed
  55. 	del "%ztmp_file%.wav"
  56. 	if errorlevel 1 goto failed
  57. 	move "%ztmp_file%_tmp.wav" "%ztmp_file%.wav"
  58. 	if errorlevel 1 goto failed
  59. 	echo Resampled to 44100Hz...
  60. ) else (
  61. 	echo Sample rate ^(!ztmp_samplerate!Hz^) is acceptable...
  62. )
  63.  
  64. rem ENCODE AAC
  65. echo Encoding %ztmp_file%.m4a (LC-AAC)
  66. %ztmp_aac% -cbr 163840 -if "%ztmp_file%.wav" -of "out\%ztmp_file%.m4a" 1>nul 2>nul
  67. if errorlevel 1 goto failed
  68.  
  69. rem ENCODE OPUS
  70. echo Encoding %ztmp_file%.opus (OPUS)
  71. %ztmp_opus% --bitrate 192 "%ztmp_file%.wav" "out\%ztmp_file%.opus" 1>nul 2>nul
  72. if errorlevel 1 goto failed
  73.  
  74. rem ENCODE VORBIS
  75. echo Encoding %ztmp_file%.webm (Vorbis)
  76. %ztmp_vorbis% -q6 -o "%ztmp_file%.ogg" "%ztmp_file%.wav" 1>nul 2>nul
  77. if errorlevel 1 goto failed
  78. %ztmp_ffmpeg% -loglevel 8 -i "%ztmp_file%.ogg" -c:a copy -c:v null -f webm "out\%ztmp_file%.webm" 1>nul
  79. if errorlevel 1 goto failed
  80. del "%ztmp_file%.ogg"
  81. if errorlevel 1 goto failed
  82.  
  83. rem ENCODE MP3
  84. echo Encoding %ztmp_file%.mp3 (LAME)
  85. %ztmp_lame% --quiet -V1 "%ztmp_file%.wav" "out\%ztmp_file%.mp3" 1>nul
  86. if errorlevel 1 goto failed
  87.  
  88. rem ENCODE FLAC
  89. echo Encoding %ztmp_file%.flac (FLAC)
  90. %ztmp_flac% --best -o "out\%ztmp_file%.flac" "%ztmp_file%.wav" 1>nul 2>nul
  91. if errorlevel 1 goto failed
  92.  
  93. rem COPY WAV
  94. echo Copying %ztmp_file%.wav (WAVE)
  95. copy "%ztmp_file%.wav" "out\%ztmp_file%.wav"
  96. if exist "out\%ztmp_file%.wav" (
  97. 	rem Only delete input file if it was successfully copied
  98. 	del "%ztmp_file%.wav"
  99. )
  100. if errorlevel 1 goto failed
  101.  
  102. goto cleanup
  103.  
  104. :cleanup
  105. set "ztmp_file="
  106. set "ztmp_ffmpeg="
  107. set "ztmp_aac="
  108. set "ztmp_opus="
  109. set "ztmp_vorbis="
  110. set "ztmp_lame="
  111. set "ztmp_flac="
  112. set "ztmp_samplerate="
  113. goto :eof
  114.  
  115. :failed
  116. echo This stage of the encoding has failed...
  117. goto cleanup
  118.  
  119. :eof
  120.