Menggunakan ffmpeg untuk menyalin metadata dari satu file ke file lainnya


17

Saya ingin menggunakan ffmpeg untuk menyalin semua data meta yang tidak terkait dengan aspek inti video (frame rate, resolusi) dari satu video ke video lainnya. Apakah ada cara sederhana untuk melakukan ini dengan satu perintah?

Jawaban:


19

Gunakan -map_metadata.

Dalam contoh ini metadata global dan aliran akan disalin dari in0.mkv. Streaming video dan audio akan disalin dari 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

Ini akan menghasilkan sesuatu seperti:

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

Secara default metadata global disalin dari file input pertama, jadi -map_metadata 0mungkin bisa dihilangkan.


1
Jika video sumber Anda adalah file .mov, Anda juga perlu menambahkan tanda -movflags use_metadata_tagsatau video output tidak akan mengandung metadata.
Mastergalen

-3

Jika yang Anda butuhkan adalah dasar-dasarnya (tanggal pembuatan, dll.), Lalu sentuh -r FILE1 FILE2 Akan berfungsi sebagai metadata penanggulangan pesona dari FILE1 hingga FILE2


Jika Anda membaca pertanyaan, tujuannya adalah data meta video, bukan meta data file.
fixer1234
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.