Рекурсивное преобразование mkv в mp4 с помощью avconv

Рекурсивное преобразование mkv в mp4 с помощью avconv

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

Мне удалось конвертировать файлы по одному с помощью:

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

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

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

решение1

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

shopt -s globstar

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

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

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

Связанный контент