ма c терминал ffmpeg пакетная рекурсивная конверсия с сохранением структуры каталогов - PullRequest
0 голосов
/ 09 апреля 2020

Я использую ffmpeg на ma c для пакетного преобразования файлов .flv в .mp4. я пытаюсь найти все файлы в подкаталогах текущего каталога и сохранить новые файлы в том же каталоге.

, например, начиная с:

subdirectory1/video1.flv
subdirectory1/video2.flv
subdirectory2/video1.flv

и заканчивая

subdirectory1/video1.mp4
subdirectory1/video2.mp4
subdirectory2/video1.mp4

Я дошел до этого, но не могу понять, как сохранить с сохраненными рекурсивными каталогами

for i in  `find -name . "*.flv"`; do ffmpeg -i "$i" "${i%.*}.mp4"; done

1 Ответ

0 голосов
/ 13 апреля 2020

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

, поэтому я удалил пробелы из каталогов следующим образом:

for f in *; do mv "$f" `echo $f | tr ' ' '_'`; done

и удалил пробелы из имен файлов с помощью этого

find . -type f -name "* *.flv" -exec bash -c 'mv "$0" "${0// /_}"' {} \;

затем эта команда рекурсивно перекодировала мои FLV-файлы и сохранила в их каталоге

for i in `find . -name "*.flv" -print0| xargs -0`; do ffmpeg -i "$i" -c:v libx264 -f mp4 "${i%.*}.mp4"; done
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...