मेरे पास ogg vorbis फ़ाइलों की एक जोड़ी है, सभी ठीक उसी गुणों के साथ एन्कोडेड हैं जिन्हें मैं एक सिंगल फाइल में बदलना चाहता हूं।
मुझे पता है कि ogg vorbis प्रारूप कई फ़ाइलों की सादा संयोजन का समर्थन करता है जैसे:
$ cat file1.ogg file2.ogg > output.ogg
लेकिन दुख की बात है कि सभी खिलाड़ी इस तरह से बनाई गई फाइलों को नहीं समझ पा रहे हैं, उदाहरण के लिए मेरा मोबाइल ऑडियो प्लेयर और मैं एक नया खरीदना चाहूंगा। अन्य कार्यक्रम जो इसे समझ में नहीं आते हैं वे हैं। यह विधि भी काम नहीं करती है अगर इनपुट ऑग फाइलें सभी के लिए समान स्ट्रीम आईडी होती हैं।
इसके अतिरिक्त, चूंकि मैं मूल फाइलों को फेंकना चाहता हूं और केवल संक्षिप्त संस्करण को रखना चाहता हूं, मैं चाहूंगा कि cat
समाधान के रूप में, दोषरहित हो ।
मैं भी flac जैसे दोषरहित प्रारूप में फ़ाइलों को बदलने से बचना चाहता हूं क्योंकि यह फ़ाइल आकार को अनावश्यक रूप से उड़ा देगा। यदि यह ठीक होगा, तो मैं मूल ओग फाइलों को रख सकता था और कम जगह का उपयोग करेगा।
ऐसा लगता है कि एफएफएमपीई कभी-कभी इसे कॉनकैट डीमूक्सर का उपयोग कर सकता है :
$ cat inputs.txt
file 'in1.ogg'
file 'in2.ogg'
$ ffmpeg -f concat -i inputs.txt -c copy out.ogg
अगर मैं अपनी इनपुट फ़ाइलों के कच्चे हेक्सडंप को देखता हूं, तो मैं आउटपुट फाइल में प्रतिनिधित्व किए गए vorbis पैकेट को ढूंढ सकता हूं। इसलिए मुझे लगता है कि वास्तव में कोई पुन: एन्कोडिंग नहीं होती है।
लेकिन यह सभी इनपुट फ़ाइलों पर काम नहीं करता है। कभी-कभी (यह सुनिश्चित नहीं होता है कि यह क्या ट्रिगर करता है), ffmpeg चेतावनी देगा:
Non-monotonous DTS in output stream 0:0; previous: 5011328, current: 5011200; changing to 5011329. This may result in incorrect timestamps in the output file.
और फिर मैं दो फाइलों के बीच एक बहुत ही बेहोश "अंतर" सुनूंगा। इस प्रकार यह निश्चित रूप से एक वैश्विक समाधान नहीं है।
चूंकि मुझे एक नहीं मिला, इसलिए मैंने इस स्टैकओवरफ्लो प्रश्न में अपना टूल लिखने की कोशिश की ।
वहाँ कई ogg vorbis फ़ाइलों को बदलने के लिए एक रास्ता है, लेकिन उन्हें फिर से एन्कोडिंग के बिना और प्रति आउटपुट केवल एक धारा के साथ? कौन सा उपकरण उस काम को करने में सक्षम है?