2012-07-29 21 views
9

के साथ टैग कॉपी करना मैं कुछ स्टोरेज स्पेस को सहेजने के लिए अपने कैमरे पर एक संकुचित प्रारूप में कुछ वीडियो परिवर्तित करने की कोशिश कर रहा हूं। मुझे पता चला कि वीडियो को प्रारूप में कनवर्ट करने के लिए ffmpeg का उपयोग कैसे करें, लेकिन जो मैं समझ नहीं पा रहा हूं वह मेटाडेटा को कॉपी करने का तरीका है। जब वीडियो लिया गया था (सबसे महत्वपूर्ण रूप से निर्माण समय) से मैं मूल मेटाडेटा की प्रतिलिपि बनाना चाहता हूं। मैंने -map_meta_data 0: 0 विकल्प का उपयोग कर ffmpeg चलाने का प्रयास किया है, लेकिन ऐसा लगता है कि यह काम नहीं कर रहा था। कोई विचार?वीडियो स्वरूपों को परिवर्तित करना और ffmpeg

ऐसा लगता है कि इस मामले में मैं जिस डेटा को प्रतिलिपि बनाना चाहता हूं वह वीडियो के प्रारूप खंड में है।

[FORMAT] 
filename=video.AVI 
nb_streams=2 
format_name=avi 
format_long_name=AVI format 
start_time=0.000000 
duration=124.565421 
size=237722700 
bit_rate=15267331 
TAG:creation_time=2012-02-07 12:15:27 
TAG:encoder=CanonMVI06 
[/FORMAT] 

मैं अपने नए वीडियो के लिए दो टैग कॉपी करना चाहते हैं: show_format विकल्प के साथ ffprobe का उपयोग करना, मैं इस उत्पादन मिलता है।

+0

अपने ffmpeg आदेश और पूर्ण सांत्वना उत्पादन दिखाने करें। – LordNeckbeard

उत्तर

5

the documentation on dumping and loading metadata पर एक नज़र डालें:

FFmpeg एक सरल UTF-8 एन्कोड INI की तरह पाठ फ़ाइल में मीडिया फ़ाइलों से मेटाडाटा डंप और फिर मेटाडाटा म्युक्सर/demuxer का उपयोग कर इसे वापस लोड करने में सक्षम है।

प्रक्रिया कुछ इस तरह दिख सकता है:

# First extract metadata 
ffmpeg -i original.mov -f ffmetadata metadata.txt 
# Next, transcode, including extracted metadata 
ffmpeg -i original.mov -f ffmetadata -i metadata.txt compressed.mp4 

मैं अभी के साथ परीक्षण करने के लिए एक मेटाडाटा-ful वीडियो नहीं है, लेकिन ऐसा ही कुछ काम करना चाहिए।

+0

ऐसा लगता है कि इसे काम करना चाहिए, लेकिन जब मैं मेटाडेटा निकालता हूं तो creat_time टैग निकाला नहीं जाता है। यह सब कुछ है जो फ़ाइल में सहेजा गया है, जो यह भी समझा सकता है कि map_meta_data विकल्प क्यों काम नहीं कर रहा था: 'FFMETADATA1 एन्कोडर = CanonMVI06' – Scott

+0

@ स्कॉट वास्तव में यह हो सकता है। यद्यपि यह पूरी तरह से सुरुचिपूर्ण है और आवश्यक नहीं होना चाहिए, फिर भी निर्माण समय प्राप्त करने के लिए ffprobe और grep का उपयोग करने का प्रयास किया है और फिर इसे ['-metadata'] (http://www.ffmpeg.org/ffmpeg का उपयोग करके आउटपुट में सीधे सेट करना है। एचटीएमएल # मुख्य-विकल्प)? – blahdiblah

+2

यह अभी भी काफी काम नहीं करता है, लेकिन यह मुझे सही दिशा में इंगित करता है। आखिरकार मैंने आउटपुट प्राप्त करने पर एक संदेश देखा जब मैंने ffmpeg कमांड चलाया जो कहा गया था कि स्टफटाइम उपलब्ध नहीं था (मैं इसे विंडोज पर करने की कोशिश कर रहा हूं)। यह पता चला है कि चूंकि वह लाइब्रेरी विंडोज़ पर उपलब्ध नहीं थी, इसलिए तिथि मेटाडेटा में कभी नहीं मिली थी। इसलिए, मैंने लिनक्स में अपने वीडियो को कनवर्ट करने का प्रयास किया जहां स्टफटाइम उपलब्ध है, और map_metadata और ffmetadata विकल्पों दोनों ने वीडियो मेटाडेटा में creat_time टैग को सहेजने के लिए काम किया। – Scott

3

सभी वैश्विक मेटाडेटा की प्रतिलिपि बनाने के लिए "-map_metadata 0: g" का उपयोग करें।

0 इनपुट इनपुट # 0 है। जी का अर्थ है वैश्विक मेटाडाटा।

यहां मेरा एफएफप्रोब परिणाम है। का आनंद लें!

input.mp4

[FORMAT] 
filename=input.mp4 
nb_streams=2 
nb_programs=0 
format_name=mov,mp4,m4a,3gp,3g2,mj2 
format_long_name=QuickTime/MOV 
start_time=0.000000 
duration=60.560500 
size=190252680 
bit_rate=25132246 
probe_score=100 
TAG:major_brand=mp42 
TAG:minor_version=1 
TAG:compatible_brands=mp42avc1 
TAG:creation_time=2016-05-14 10:01:17 
[/FORMAT] 

output.mp4

[FORMAT] 
filename=output.mp4 
nb_streams=2 
nb_programs=0 
format_name=mov,mp4,m4a,3gp,3g2,mj2 
format_long_name=QuickTime/MOV 
start_time=0.000000 
duration=60.632000 
size=38636429 
bit_rate=5097826 
probe_score=100 
TAG:major_brand=isom 
TAG:minor_version=512 
TAG:compatible_brands=isomiso2avc1mp41 
TAG:creation_time=2016-05-14 01:01:17 
TAG:encoder=Lavf57.36.100 
[/FORMAT]