У меня есть много mp4 файлов, которые должны содержать те же метаданные, например, художника и альбом.
Как я могу обработать в пакетном режиме, редактируют метаданные вместо того, чтобы делать их один за другим?
Перед продолжением сделайте резервную копию видео, которые Вы хотите обработать. Команда ниже заменяет существующие файлы.
find /home/user/videos-to-process/ -type f -iname '*.mp4' -exec ffmpeg -i "{}" -codec copy -metadata artist="John Smith" -metadata album="Foo Bar" "{}.new.mp4" \; -exec mv "{}.new.mp4" "{}" \;
Вот та же команда, отформатированная для ясности:
find /home/user/videos-to-process/ -type f -iname '*.mp4' \
-exec ffmpeg \
-i "{}" \
-codec copy \
-metadata artist="John Smith" \
-metadata album="Foo Bar" \
"{}.new.mp4" \; \
-exec mv \
"{}.new.mp4" "{}" \;
, Что это делает?
копии Шага 2 существующие потоки; мы не повторно кодируем (это - хорошая вещь). Вы просто изменяете метаданные. Я выполнил это по каталогу с шестью файлами, каждый приблизительно 1 ГБ. Общее время обработки составляло приблизительно 30 секунд.
Можно использовать утилиту AtomicParsley
с этой целью. Установите это из Окна терминала следующим образом:
sudo apt-get install atomicparsley
, Если у Вас есть свои mp4 файлы в единственный каталог , можно затем просто открыть Окно терминала в том месте и выполнить следующее:
for i in *.mp4
do
AtomicParsley "$i" --album "Foo" --artist "Bar" --overWrite
done
(Это включает недокументированное, но полностью функциональное --overWrite
тег.)
, Очевидно, необходимо изменить значения Foo
и Bar
для представления фактических значений, которые Вы хотите использовать в своих файлах...