FFMPEG का उपयोग करके GSM6.10 पर एक (मोनो) में दो ऑडियो चैनल (स्टीरियो) मर्ज करें


27

मैं यह जानना चाहूंगा कि क्या FFMPEG का उपयोग करके GSM6.10 ऑडियो फ़ाइल पर स्टीरियो ऑडियो को मोनो में विलय करना संभव है। यदि यह है, तो कृपया इसे प्राप्त करने के लिए कमांड प्रदान करें।
अन्यथा, क्या FFMPEG के साथ GSM6.10 को WAV PCM में बदलना संभव है? मैं तब WAV PCM पर चैनलों का विलय कर सकता था।

अगर कोई और फ्री टूल है जो ऐसा कर सकता है तो मैं भी कोशिश कर सकता हूं।

जवाबों:


42

Ffmpeg में किसी भी समर्थित फ़ाइल में स्टीरियो से मोनो तक "मिक्सडाउन" करने का तरीका इस प्रकार है:

ffmpeg -i file.ext -ac 1 file_mono.ext

"-Ac 1" बिट ffmpeg को सिर्फ 1 ऑडियो चैनल यानी मोनो के आउटपुट के लिए निर्देश देता है। डिफ़ॉल्ट रूप से, यह ऑपरेशन आपके फ़ाइल फॉर्मेट को संरक्षित करेगा लेकिन आपकी बिट्रेट को 64kbs के ffmpeg डिफॉल्ट में वापस कर देगा। यदि आप एक उच्च बिटरेट चाहते हैं, तो आप कर सकते हैं:

ffmpeg -i file.ext -ac 1 -ab 192k file_mono.ext

... अपने पसंदीदा बिटरेट के साथ 192k की जगह।

ध्यान दें कि आपके ffmpeg की स्थापना को ठीक से काम करने के लिए अपने विशेष GSM कोडेक का समर्थन करना चाहिए। मुझे पता है कि कुछ जीएसएम एन्कोडेड ऑडियो को एफएफएमपी में लिबासम के माध्यम से समर्थित किया गया है, लेकिन मैंने खुद को कभी भी जीएसएम फाइलों से निपटा नहीं है। मैं एक अड़चन के बिना मोनो के लिए अन्य प्रकार की फ़ाइलों (एमपी 3) को सफलतापूर्वक परिवर्तित कर चुका हूं।


3
क्या यह वास्तव में मिक्सिंग है, या सिर्फ चैनलों का गिरना है?
जॉनी

'पैन' फिल्टर प्रलेखन से: "ध्यान दें कि ffmpeg एक डिफ़ॉल्ट डाउन-मिक्स (और अप-मिक्स) सिस्टम को एकीकृत करता है जिसे प्राथमिकता दी जानी चाहिए (" -ac "विकल्प देखें) जब तक कि आपके पास बहुत विशिष्ट आवश्यकताएं न हों।"
हरिका मोनिका

इनपुट और आउटपुट फाइल दोनों ही ऑडियो फाइल होनी चाहिए। इनपुट वीडियो नहीं हो सकता
केविन

1
ऑडियो चैनल जोड़तोड़ "एक एकल स्टीरियो स्ट्रीम को एक मोनो स्ट्रीम में मिलाएं। स्टीरियो स्ट्रीम के दोनों चैनल स्ट्रीम में ffmpeg -i stereo.flac -ac 1 mono.flac
डाउनमिक्स हो जाएंगे

@ केविन - इनपुट एक वीडियो फ़ाइल हो सकती है, मैं सिर्फ सत्यापित (या बिना -vn)
बेरी तिकाला

7

उपरोक्त उत्तर उस मामले में काम करता है जिसे आप अभी भी प्रारूपों के बीच परिवर्तित करना चाहते हैं, लेकिन लंबी फ़ाइलों के लिए जिनमें लंबा समय लग सकता है। या हो सकता है कि आप गुणवत्ता को नीचा दिखाना और फिर से कॉपी को स्ट्रीम करना चाहते हों। का उपयोग करना -कोड: एक ही समय में एक -ac 1 काम नहीं करता है, लेकिन ffmpeg पैन फिल्टर प्रलेखन के अनुसार, यदि कुछ शर्तें पूरी होती हैं (जैसे आप चैनलों के स्तर को समायोजित नहीं कर रहे हैं या दो चैनलों को एक में मिलाते हैं) , यह इस मामले की पहचान करेगा और रिपोर्ट करेगा: "शुद्ध चैनल मैपिंग का पता चला", और एक स्ट्रीम कॉपी करें, जो बहुत तेज है।

उदाहरण के लिए: केवल बाएं चैनल का उपयोग करके और केवल वीडियो स्ट्रीम की प्रतिलिपि बनाकर एक स्टीरियो फ़ाइल मोनो बनाने के लिए, यह करें:

ffmpeg -i infile.ext -codec:v copy -af pan="mono: c0=FL" outfile.ext

0

मुझे पता है कि यह sox के साथ संभव है .... मैं चैनल के हेरफेर के लिए sox का उपयोग करता हूं, हल्के संपादन के लिए kdenlive और दुस्साहस, और remuxing के लिए ffmpeg। बस आपको पता है कि अतीत में मेरे लिए क्या अच्छा काम किया है।


0

वीडियो को संरक्षित करने के लिए, मैंने ऊपर दो उत्तरों के संयोजन का उपयोग किया:

ffmpeg -i infile -codec:v copy -ac 1 -ab 192k outfile

यह मेरे लिए एक पर्याप्त समाधान का उत्पादन किया।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.