ओग वोरबिस फ़ाइलों का दोषरहित संघटन


12

मेरे पास 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 फ़ाइलों को बदलने के लिए एक रास्ता है, लेकिन उन्हें फिर से एन्कोडिंग के बिना और प्रति आउटपुट केवल एक धारा के साथ? कौन सा उपकरण उस काम को करने में सक्षम है?


क्या आपने oggCat को देखा है? en.flossmanuals.net/ogg-theora/command-line-editing/cat-files
Josh Rumbut

@JoshRumbut हाँ और यह श्रव्य अंतराल से ग्रस्त है जहाँ फाइलें कुछ इनपुट के लिए जुड़ जाती हैं
josch

आप PiTiVi का उपयोग करने और समय पर क्रमिक रूप से क्लिप रखने की कोशिश कर सकते हैं ।
harrymc

1
ओपी (और मुझे भी) एक प्रोग्रामेटिक समाधान चाहिए जो आवश्यक फ़ाइलों को इकट्ठा करने के बाद उपयोगकर्ता इंटरैक्शन को शामिल नहीं करता है।
विलेन जुआन

2
@ RalphRönnquist Sox इनपुट को फिर से एन्कोड करता है।
जॉस

जवाबों:


2

ffmpeg -i "concat:ogg1.ogg|ogg2.ogg|ogg3.ogg" -c copy out.oggमेरे सिस्टम पर एक संक्षिप्त ओग फ़ाइल बनाता है, संयुक्त फ़ाइलों की तुलना में थोड़ा छोटा (संभवतः साझा मेटाडेटा के कारण)। यह मेरे लिए एक ही लगता है, इसलिए संघटन दोषरहित होना चाहिए। हालाँकि, यह फ़ाइलों के बीच एक छोटा सा अंतर नहीं जोड़ता है।

ffmpeg -f concat -safe 0 -i ogg1.ogg -i ogg2.ogg -c copy out.ogg काम करना चाहिए, लेकिन यह 3.3.2 के रूप में मेरे Homebrew (macOS) ffmpeg पर यह त्रुटि देता है।

[concat @ 0x7f91e8800400] Line 1: unknown keyword 'OggS'
ogg1.ogg: Invalid data found when processing input

स्रोत: https://trac.ffmpeg.org/wiki/Concatenate


मुझे एक ही त्रुटि मिल रही है
गृहिणी

0

आप FFmpeg पर एक नज़र डालना चाहते हैं । इसमें बहुत सारे उपकरण हैं जो मुझे बिल्कुल समझ में नहीं आते हैं, लेकिन मुझे प्रलेखन से याद है कि ऐसा करने के लिए एक उपकरण है। अन्यथा, मुझे लगता है कि आप उपयोग कर सकते वीएलसी मीडिया प्लेयर के कमांड लाइन


1
क्या आप अपने उत्तर को थोड़ा बढ़ा सकते हैं? बस एक उत्पाद और उसके प्रलेखन की ओर इशारा करते हुए वास्तव में यह नहीं बताया गया है कि समाधान को कैसे पूरा किया जाए। समस्या को हल करने के लिए उत्पाद का उपयोग कैसे करें, यहां कुछ निर्देशों को शामिल करना बेहतर है। यहाँ सॉफ्टवेयर की सिफारिश करने पर अच्छा मार्गदर्शन: meta.superuser.com/questions/5329/… । धन्यवाद।
फिक्सर 1234

बस का उपयोग कर ffmpeg -f concat -i inputs.txt -c copy out.oggकाम नहीं करता है। मैं उत्सुक हूं कि आपको कैसे लगता है कि इसे ffmpeg के साथ हल किया जा सकता है।
josch
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.