Я пытаюсь создать сценарий какого-то типа, который будет конвертировать любые видеофайлы, которые он обнаруживает в папке (также сканирующие подпапки), в .avi-файл с тем же именем, в том же месте , затем удалите исходный файл. Я не очень хорошо использовал cmd для программирования/сценариев, поэтому я натыкаюсь на то, что, как я подозреваю, довольно простые синтаксические проблемы.Создание рекурсивного преобразователя ffmpeg
Если кто-то знаком с кодировкой и ffmpeg, пожалуйста, укажите, являются ли варианты кодировки неправильными (я наткнулся в темноте в данный момент).
Использование this thread, я работаю с чем-то в настоящее время напоминающее:
dir/b/s *.(mkv|mp4|m4v|wmv) >listing.txt #Make a list of all the files with certain extensions, for reading.
for /F "delims=;" %%F in (listing.txt) do ffmpeg.exe -i "%%F" -c:v libx264 -preset slow -crf 20 -c:a libvo_aacenc -b:a 128k "%%~na.avi"
#Then to delete original files
for /F "delims=;" %%F in (listing.txt) do del %%F
del listing.txt
Первый вопрос у меня есть, что я хотел бы, чтобы иметь возможность заполнить список всех распространенных типов видео. Я предполагаю, что cmd имеет некоторый синтаксис, похожий на соответствие строки perl, например. A(B|C)
будет соответствовать AB и AC, что я мог бы имитировать для соответствия любому расширению видеофайла? (Я написал это в приведенном выше коде, чтобы проиллюстрировать этот момент, но я знаю, что он не работает).
Надеюсь, этого достаточно, чтобы попытаться проиллюстрировать, что я пытаюсь.
Почему AVI, а не более современный формат контейнера, такой как MP4, который обычно используется для видео H.264? Кроме того, собственный кодировщик FFmpeg AAC ('-c: aac -strict experimental') может звучать лучше на 128k, чем' libvo_aacenc'. – LordNeckbeard
Чисто по той причине, что я хочу надежно передавать эти файлы на другое устройство (а именно X360), и он не воспроизводит все варианты кодирования mp4, но делает avi - по крайней мере, в моем опыте в прошлом. –