Utilizzo di ffmpeg per copiare i metadati da un file a un altro


17

Voglio usare ffmpeg per copiare tutti i metadati non associati agli aspetti fondamentali di un video (frame rate, risoluzione) da un video all'altro. C'è un modo semplice per farlo con un solo comando?

Risposte:


19

Usa -map_metadata.

In questo esempio i metadati globali e di flusso verranno copiati in0.mkv. I flussi audio e video verranno copiati in streaming da 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

Ciò si tradurrà in qualcosa di simile:

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

Per impostazione predefinita, i metadati globali vengono copiati dal primo file di input, quindi -map_metadata 0probabilmente potrebbero essere omessi.


1
Se il tuo video di origine è un file .mov, devi anche aggiungere il flag -movflags use_metadata_tagso il video di output non conterrà i metadati.
Mastergalen,

-3

Se tutto ciò di cui hai bisogno sono le basi (data di creazione, ecc.), Quindi tocca -r FILE1 FILE2 Funzionerà come charm copiando i metadati da FILE1 a FILE2


Se leggi la domanda, l'obiettivo sono i metadati del video, non i metadati del file.
fixer1234,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.