J'ai un certain nombre de fichiers MP4 qui doivent contenir les mêmes métadonnées, par exemple. artiste et album.
Comment puis-je éditer les métadonnées par lots plutôt que de les traiter une à une?
Avant de continuer, veuillez créer une copie de sauvegarde des vidéos que vous souhaitez traiter. La commande ci-dessous remplace les fichiers existants.
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" "{}" \;
Voici la même commande, formatée pour plus de clarté:
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" "{}" \;
Qu'est-ce que cela fait?
Étape 2 copie les flux existants; nous ne réencodons pas (c'est une bonne chose). Vous changez simplement les métadonnées. Je l'ai couru sur un répertoire avec six fichiers, chacun d'environ 1 Go. Le temps total de traitement était d'environ 30 secondes.
Vous pouvez utiliser l'utilitaire AtomicParsley
à cette fin. Installez ceci à partir d'une fenêtre de terminal comme suit:
Sudo apt-get install atomicparsley
Si vous avez vos fichiers mp4 dans n seul répertoire, vous pouvez simplement ouvrir une fenêtre de terminal à cet emplacement et exécuter ce qui suit:
for i in *.mp4
do
AtomicParsley "$i" --album "Foo" --artist "Bar" --overWrite
done
(Cela inclut la balise --overWrite
non documentée mais entièrement fonctionnelle.)
Évidemment, vous devriez changer les valeurs Foo
et Bar
pour représenter les valeurs réelles que vous souhaitez utiliser dans vos fichiers ...