Usando o ffmpeg para copiar metadados de um arquivo para outro

11

Eu quero usar o ffmpeg para copiar todos os metadados não associados a aspectos centrais de um vídeo (taxa de quadros, resolução) de um vídeo para outro. Existe uma maneira simples de fazer isso com um único comando?

    
por David 05.11.2015 / 03:53

2 respostas

12

Use -map_metadata .

Neste exemplo, os metadados globais e de fluxo serão copiados de in0.mkv . Os fluxos de vídeo e áudio serão copiados em fluxo 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

Isso resultará em algo como:

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

Por padrão, os metadados globais são copiados do primeiro arquivo de entrada, portanto -map_metadata 0 provavelmente poderia ser omitido.

    
por 05.11.2015 / 07:27
-2

Se tudo que você precisa é o básico (data de criação, etc), então toque em -r FILE1 FILE2 Funcionará como um encanto para lidar com metadados de FILE1 a FILE2

    
por 27.10.2016 / 22:12