Utilisation de ffmpeg pour copier des métadonnées d'un fichier à un autre

17

Je souhaite utiliser ffmpeg pour copier toutes les métadonnées non associées aux principaux aspects d'une vidéo (fréquence d'images, résolution) d'une vidéo à une autre. Existe-t-il un moyen simple de le faire avec une seule commande?

David
la source

Réponses:

19

Utilisez -map_metadata.

Dans cet exemple, les métadonnées globales et de flux seront copiées in0.mkv. Les flux vidéo et audio seront copiés à partir de in1.mkv:

ffmpeg -i in0.mkv -i in1.mkv -map 1 -c copy \
# copies all global metadata from in0.mkv to out.mkv  
-map_metadata 0 \
# copies video stream metadata from in0.mkv to out.mkv
-map_metadata:s:v 0:s:v \
# copies audio stream metadata from in0.mkv to out.mkv
-map_metadata:s:a 0:s:a \
out.mkv

Cela se traduira par quelque chose comme:

Output #0, matroska, to 'out.mkv':
  Metadata:
    title           : Global Title
    AUTHOR          : Global Author
    Stream #0:0: Video: h264
    Metadata:
      title           : Stream 0 Title
    Stream #0:1: Audio: vorbis
    Metadata:
      title           : Stream 1 Title

Par défaut, les métadonnées globales sont copiées à partir du premier fichier d'entrée, elles -map_metadata 0pourraient donc probablement être omises.

llogan
la source
1
Si votre vidéo source est un fichier .mov, vous devez également ajouter l'indicateur -movflags use_metadata_tagsou la vidéo de sortie ne contiendra pas les métadonnées.
Mastergalen
-3

Si tout ce dont vous avez besoin est les bases (date de création, etc.), appuyez sur -r FILE1 FILE2 fonctionnera comme une métadonnée d'adaptation de charme de FILE1 à FILE2

Emiliano
la source
Si vous lisez la question, l'objectif est les métadonnées vidéo et non les métadonnées du fichier.
fixer1234