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