web-dev-qa-db-fra.com

Comment pourrais-je éditer par lot les métadonnées d'un fichier vidéo pour un mp4?

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?

5
t3rminal

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?

  1. Recherche récursivement tous les fichiers .mp4 (comparaison d’extensions ne respectant pas la casse) dans/home/user/videos-to-process.
  2. Crée un nouveau fichier vidéo en copiant les flux existants avec les métadonnées souhaitées.
  3. Remplace le fichier vidéo d'origine par le nouveau fichier vidéo.

É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.

6
TooManyPets

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 ...

3
andrew.46