การใช้ ffmpeg เพื่อคัดลอกข้อมูลเมตาจากไฟล์หนึ่งไปยังอีกไฟล์หนึ่ง


17

ฉันต้องการใช้ ffmpeg เพื่อคัดลอกข้อมูลเมตาทั้งหมดที่ไม่เกี่ยวข้องกับประเด็นหลักของวิดีโอ (อัตราเฟรม, ความละเอียด) จากวิดีโอหนึ่งไปยังอีก มีวิธีง่ายๆในการทำเช่นนี้ด้วยคำสั่งเดียว?

คำตอบ:


19

-map_metadataใช้

in0.mkvในตัวอย่างนี้เมตาดาต้าทั่วโลกและกระแสจะถูกคัดลอกมาจาก สตรีมวิดีโอและเสียงจะถูกคัดลอกมาจาก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

สิ่งนี้จะส่งผลดังนี้:

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

โดยค่าเริ่มต้นโกลบอลเมทาดาทาจะถูกคัดลอกจากไฟล์อินพุตแรกดังนั้น-map_metadata 0อาจถูกละเว้น


1
หากวิดีโอต้นฉบับของคุณเป็นไฟล์. mov คุณต้องเพิ่มการตั้งค่าสถานะมิ-movflags use_metadata_tagsฉะนั้นวิดีโอเอาต์พุตจะไม่มีข้อมูลเมตา
Mastergalen

-3

หากทั้งหมดที่คุณต้องการคือพื้นฐาน (วันที่สร้าง ฯลฯ ) แล้วแตะ -r FILE1 FILE2 จะทำงานเป็นเมตาดาต้าการจัดการเสน่ห์จาก FILE1 ถึง FILE2


หากคุณอ่านคำถามวัตถุประสงค์คือข้อมูลเมตาของวิดีโอไม่ใช่ข้อมูลเมตาของไฟล์
fixer1234
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.