मैं एक वीडियो फ़ाइल से सिर्फ ऑडियो स्ट्रीम निकालने के लिए ffmpeg का उपयोग कर रहा हूं:
ffmpeg -i video.mp4 -vn -acodec copy audio.aac
यह एक साफ ऑडियो फ़ाइल बनाता है, लेकिन बिना किसी मेटाडेटा के।
मेटाडेटा जोड़ने के लिए, ffmpeg में कमांड लाइन विकल्प होता है:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.aac
यह बिना किसी त्रुटि के चलता है, लेकिन जब आउटपुट फाइल को ffprobe के साथ जांचा जाता है, तो इसका कोई मेटाडाटा टैग नहीं होता है।
यदि आउटपुट कंटेनर को mp4 में बदल दिया जाता है, तो मेटाडेटा सेट किया जा सकता है और आउटपुट फ़ाइल में दिखाई देता है:
ffmpeg -i video.mp4 -vn -acodec copy -metadata title="My Title" audio.mp4
यहाँ दिलचस्प बिट है; अगर मैं किसी मौजूदा .aac फ़ाइल के मेटाडेटा को संपादित करने के लिए Banshee का उपयोग करता हूं, तो फ़ाइल को उसी तरह संसाधित करने के लिए ffmpeg का उपयोग करें, मूल मेटाडेटा को नई .aac फ़ाइल में सफलतापूर्वक कॉपी किया जाता है।
ffmpeg -i metadata.aac -vn -acodec copy audio.aac
लेकिन, मेटाडेटा को बदलने के प्रयासों का कोई प्रभाव नहीं है:
ffmpeg -i metadata.aac -vn -acodec copy -metadata title="My Title" audio.aac
ऐसा लगता है। एक कंटेनर मेटाडाटा पकड़ सकता है और ffmpeg इसे इनपुट से आउटपुट में कॉपी कर सकता है, लेकिन कॉपी कोडेक का उपयोग करने पर इसे बदल नहीं सकता है।
किसी को भी reencoding बिना anac कंटेनर में मेटाडेटा को बदलने के लिए ffmpeg पाने का एक तरीका पता है?
वैकल्पिक रूप से, क्या कोई अन्य जेनेरिक टूल है जिसका उपयोग मैं फ़ाइल संसाधित होने के बाद मेटाडेटा सेट करने के लिए कर सकता हूं?
बहुत धन्यवाद। क्रिस।