3

Мне нужно создать скрипт, который может конвертировать все файлы .mkv в .mp4 в начальном каталоге и все подкаталоги в нем.

Я был в состоянии преобразовать файлы по одному, используя:

avconv -i input.mkv -codec copy output.mp4

и преобразование всех файлов в текущем каталоге не будет слишком сложным. Но после нескольких часов поиска я не могу найти способ сделать это рекурсивно.

Я понял, что мне нужно использовать команду find, но я относительно новичок в Linux, и я совершенно заблудился в комбинировании find и avconv для достижения того, что мне нужно.

1 ответ1

4

Вам необходимо включить рекурсивное сглаживание в Bash:

shopt -s globstar

Затем простой цикл, заменяющий выходное имя файла:

for f in **/*.mkv; do avconv -i "$f" -c copy "${f%.mkv}.mp4"; done

Обратите внимание, что это может не сработать на видео, которые содержат кодеки, которые MP4-контейнеры не могут обработать. MP4 более строг, чем MKV, который может включать в себя все кодеки.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .