Во-первых, я гуглил и гуглил, как решить эту проблему, но безуспешно. Я работаю над созданием пакетного файла для перекодирования звука в файле в aac, если это ac-3 или ogg с использованием ffmpeg. Я знаю, как сделать преобразование с помощью ffmpeg, но не знаю, как его автоматизировать, только если звук соответствует определенному кодеку. Чтобы получить аудиокодек для файла, у меня есть два разных метода: один с ffprobe, а другой с MediaInfo.
MediaInfo --Inform="Audio;%%Format%%" "input.mkv"
or
ffprobe -v error -select_streams a:0 -show_entries stream=codec_name -of default=noprint_wrappers=1:nokey=1 "input.mkv"
Однако моя проблема связана с установкой переменной из вывода команды. Это код, который я пробовал, но безрезультатно.
SETLOCAL
for %%a in (*.mp4) do (
MediaInfo --Inform="Audio;%%Format%%" "%%a">codec.txt
SET /p codec=<codec.txt
DEL codec.txt
ECHO %codec%
)
pause
Очевидно, это только часть моей цели, но я не могу пройти мимо этой части. Я проверил, удалив часть «DEL codec.txt», которая фактически сохраняет правильный вывод в текстовом файле, но не импортирует его в переменную. В любом случае, я могу установить вывод в переменную, это нормально, именно так я часто находил в своем поиске.
Любая помощь горячо приветствуется.