web-dev-qa-db-fra.com

Utiliser ffmpeg pour copier les métadonnées d’un fichier à un autre

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. Y a-t-il un moyen simple de faire cela avec une seule commande?

11
David

Utilisez -map_metadata.

Dans cet exemple, les métadonnées globale et de flux seront copiées à partir de 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, donc -map_metadata 0 pourrait probablement être omis.

15
llogan