Alex_Piggy
Advanced Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Код: @echo off cd /d "%~dp0" rem пишем дату время и папку в файл ошибок echo %date% %time% "%~1" >> "%~dp0errors.log" :loop if "%~1"=="" exit /b if exist "%~1\" (for /r "%~1" %%i in (*) do call :listAudio "%%~fi") else (call :listAudio "%~f1") shift goto :loop exit /b :listAudio rem ffprobe ищем формат аудио в выводе ffprobe вида rem Stream #0:1(und): Audio: mp3 (mp4a / 0x6134706D) rem Выделяем второе - "#0:1(und)" - и четвертое - "mp3" - слово for /f "tokens=2,4" %%i in ('ffprobe "%~f1" 2^>^&1^| findstr "Audio:"') do call :extractAudio "%~1" "%%i" "%%j" exit /b :extractAudio rem Из "#0:1(und)" выделяем три символа, начиная со второго ("0:1") set "streamNum=%~2" set "streamNum=%streamNum:~1,3%" set "audioFMT=%~3" if "%audioFMT%"=="" exit /b set "audioEXT=%audioFMT%" rem Меняем расширение в зависимости от формата аудио. Для примера. if "%audioFMT%"=="mp3lame" set "audioEXT=mp3" rem Если расширение совпадает - переходим к следующему файлу. if ".%audioEXT%"=="%~x1" exit /b rem Пробуем конвертировать - если не получается - пишем возле себя в файл ошибок. ffmpeg -i "%~f1" -vn -map %streamNum% -c:a copy "%~dpn1.%streamNum::=_%.%audioEXT%" || echo "%~f1" >> "%~dp0errors.log" exit /b |
|