FFmpeg के साथ सभी प्रारूपों से स्ट्रिप मेटाडेटा


43

मैं FFmpeg के माध्यम से सभी प्रारूपों से सभी मेटाडेटा कैसे निकाल सकता हूं?

मैं बस प्रति व्यक्ति ffmpeg के लिए प्रत्येक प्रारूप के लिए विशेष मेटाडेटा सेट कर सकता हूं । सभी मेटाडेटा और स्ट्रिप मीडिया को सभी मेटाडेटा से खाली करने का कोई विकल्प या तरीका ffmpeg पर उपलब्ध है?

   -metadata key=value
       Set a metadata key/value pair.

       For example, for setting the title in the output file:

               ffmpeg -i in.avi -metadata title="my title" out.flv

जवाबों:


63

@Izx द्वारा कमांड लाइन को थोड़ा संशोधित करते हुए , मुझे यह मिला:

ffmpeg -i in.mov -map_metadata -1 -c:v copy -c:a copy out.mov

परिणाम (फिर से जांचा गया exiftool) है, एक मेटाडेटा रिकॉर्ड 81 से 52 लाइनों तक कम हो जाता है। ध्यान दें कि आप बस सभी मेटाडेटा को हटा नहीं सकते हैं, कुछ चीजें रहेंगी। हालाँकि, मुझे निर्माण की तारीख बदलने की आवश्यकता नहीं थी, जो अजीब है क्योंकि यह उबंटू संस्करण में काम करता था।

मैंने FFmpeg मेलिंग सूची में पोस्ट किया , यह पूछा कि क्या उस पर कोई अपडेट या टिप्पणी थी। आइए देखें कि उन्हें क्या कहना है।


2
में movया mp4फ़ाइलें, निर्माण तिथि फिल्म शीर्षक और ट्रैक हेडर में एक पूर्णांक क्षेत्र (1904 के बाद से सेकंड के रूप में व्यक्त) है। यद्यपि आप इसे 0 या किसी अन्य निश्चित मान पर सेट कर सकते हैं, लेकिन इसे हटाने का कोई तरीका नहीं है और अभी भी एक मान्य movया mp4फ़ाइल है।
mark4o

मुझे पता है कि मैं इसे पूरी तरह से नहीं हटा सकता, लेकिन किसी कारण से बदलना संभव नहीं था।
slhck

3
वर्तमान ffmpeg का उपयोग करके, सृजन समय -metadata creation_time=2012-12-17T21:30:00(UTC) के साथ बदला जा सकता है ।
mark4o

1
शीर्षक को हटाने के लिए मैं इसे कैसे संशोधित कर सकता हूं? वर्तमान में यह शीर्षक को स्वचालित रूप से उत्पन्न कुछ के लिए सेट करता है। मैं अंत में पूर्ण फ़ाइल नाम शीर्षक के रूप में देखना चाहता हूं।
रॉकी

2
@Rookie फिर आपको सेट करना होगा -metadata title="Some Value"। या, एक फ़ाइल के लिए, एक MP4 फ़ाइल के लिए कुछ इस तरह से:ffmpeg -i "$file" -map_metadata -1 -c copy -metadata title="$file" "${file%%*.mp4}-new.mp4
slhck

9

रचना के समय और शीर्षक को बदलने के लिए मेटाडेटा, अध्यायों को छीनने का मेरा समाधान। इस तरह से किसी भी रूपक को मूल फ़ाइल से अलग होना चाहिए:

ffmpeg -y -i "test.mkv" -c copy -map_metadata -1 -metadata title="My Title" -metadata creation_time=2016-09-20T21:30:00 -map_chapters -1 "test.mkv"

1
वह संस्करण मेरे लिए उपयोगी था, धन्यवाद। मैं चाहूंगा कि ffmpeg मैनुअल उपर्युक्त की तरह अधिक उदाहरण दिखाएगा; stackoverflow, superuser आदि ... सभी बहुत उपयोगी हो जाते हैं क्योंकि उनमें बहुत सारी सहायक जानकारी होती है।
शैवी

8

नोट: मेरे पास अपडेट है ffmpeg(पहले मेरे पास avconvउबंटू रिपॉजिटरी से पुराना संस्करण था )।

अब @ slhck -map_metadata -1 पूरी तरह से काम करता है।

मैं @ slhck के समाधान की सलाह देता हूं क्योंकि यह कम टाइपिंग और अप टू डेट है। मैं एक पुराने संस्करण का उपयोग कर किसी के लिए यहाँ छोड़ रहा हूँ।


ऐसा करने का सबसे आसान तरीका -map_metadataवैश्विक मेटाडेटा का उपयोग करने के बजाय इनपुट धाराओं में से एक का उपयोग करना है। 99% समय यह काम करना चाहिए। नोट: मैं avconv का उपयोग कर रहा हूं, क्योंकि यह उबंटू 12.04 रिपॉजिटरी में है; यह शायद ड्रॉप-इन ffmpeg के साथ संगत होगा, क्योंकि उनका सिंटैक्स हमेशा मेरे अनुभव में होता है।

avconv -i input.mp4 -map 0 -map_metadata 0:s:0 -c copy output.mp4

यह मेटाडेटा को पहले डेटा स्ट्रीम (सामान्य रूप से वीडियो स्ट्रीम) से लेगा और इसका उपयोग कंटेनर फ़ाइल के वैश्विक मेटाडेटा को बदलने के लिए करेगा। यह काम करता है क्योंकि अधिकांश समय, डेटा स्ट्रीम में कोई सार्थक मेटाडेटा नहीं लिखा होता है; हालाँकि, कभी-कभी वे करते हैं, और आप पूरी तरह से उस मेटाडेटा से छुटकारा चाहते हैं। दुर्भाग्य से, एक ही रास्ता है कि मैं ऐसा करने के लिए एक पाइप और दो एवोकॉन प्रक्रियाओं का इस्तेमाल कर सकता हूं।

avconv -i input.mp4 -f wav - | avconv -i - -i input.mp4 -map 1 -map_metadata 0 -c copy output.mp4

यह इस तथ्य का लाभ उठाता है कि WAV फ़ाइलों में मेटाडेटा नहीं हो सकता है (क्योंकि मेटाडेटा टैग मौजूद होने से पहले प्रारूप बनाया गया था)।

इन दोनों विधियों ने सभी मेटाडेटा को एक फ़ाइल पर खाली कर दिया, जिस पर मैंने अभी उनका परीक्षण किया - वह सब जो exiftoolकोडेक जानकारी थी, और avprobe ने मुझे कोई मेटाडेटा रिपोर्ट नहीं किया। इसके लिए एक पाइप का उपयोग करना बहुत बदसूरत है, और पहली विधि 99% मामलों में काम करेगी, इसलिए इसे प्राथमिकता दी जानी चाहिए।


1
अन्य RIFF- आधारित फ़ाइलों (जैसे AVI) की तरह, फ़ाइलें वास्तव में मेटाडाटा टैग में "INFO" सूची चंक का उपयोग कर सकती हैं। यह अभी बहुत बार उपयोग नहीं किया गया है।
ब्लर बंद करें
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.