Fmmpeg का उपयोग करके स्टीरियो को उचित रूप से डाउनमिक्स 5.1


27

मेरे पास एक फिल्म से 5.1 ऑडियो ट्रैक है जहां सामने बाएं और सामने दाईं ओर संगीत होता है, और केंद्र में संवाद होता है। वीएलसी में 5.1 ट्रैक बजाने से सब कुछ एक साथ मिश्रित होता है।

मैं 5.1 ट्रैक को स्टीरियो का उपयोग करने के लिए बदलने की कोशिश कर रहा हूं ffmpeg -ac 2, हालांकि परिणामी स्टीरियो मिश्रण में मूल रूप से 5.1 ट्रैक खेलने की तुलना में बहुत कमजोर मात्रा है।

जोड़ना -af "pan=stereo|c0=FL|c1=FR"सही मात्रा देता है, लेकिन फिर कोई संवाद नहीं है क्योंकि केंद्र चैनल शामिल नहीं है।

तो समाधान शायद बाएं / केंद्र / दाएं को स्टीरियो में मिलाना है, और बैक एंड सबवूफर चैनलों को बाहर फेंकना है? (मैं यहां अनुमान लगा रहा हूं ...)

तो सवाल यह है: मैं ffmpeg downmix 5.1 कैसे बनाऊं जिस तरह से VLC करता है, उसी तरह से अंतिम परिणाम में उसी मजबूत वॉल्यूम के साथ?


क्या आपको यकीन है कि VLC वास्तव में अतिरिक्त चैनल खेल रहा है? डाउनमिक्सिंग का परिणाम सामान्य हो सकता है ताकि प्रति आउटपुट चैनल में प्रत्येक इनपुट का योग ओवरलोड न हो इसलिए क्लिपिंग को रोका जाता है। यह इसे ध्वनि को शांत कर सकता है।
ललगन

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

जवाबों:


29

मैंने पाया कि शेन ने अन्य चैनलों के बहुत कम और केंद्र के बहुत अधिक प्रदान करने के लिए प्रदान किया। सभी संवादों और पर्याप्त पृष्ठभूमि संगीत / प्रभावों के साथ हेडफ़ोन के साथ फिल्में संतुलन की आवाज़ निकालती हैं।

के अनुसार ATSC मानकों (अनुभाग 7.8, पेज 91), निम्न सूत्र पारंपरिक स्टीरियो (के रूप में मैट्रिक्स के खिलाफ) के लिए 5.1 downmix करने के लिए प्रयोग किया जाता है:

Lo = 1.0 * L + clev * C + slev * Ls ;
Ro = 1.0 * R + clev * C + slev * Rs ;

ऊपर उल्लिखित दस्तावेज में तालिका 5.9 और 5.10 के अनुसार, ऊंचाई और स्लीव .707 होना चाहिए, केंद्र / सराउंड मिक्स स्तर 0. मानकर। अन्य मान उन तालिकाओं में प्रदान किए जाते हैं जो केंद्र मिश्रण की मात्रा को कम करते हैं, जो मुझे नहीं मिलता है उपयोगी।

इसे ध्यान में रखते हुए, निम्नलिखित ffmpeg विकल्प श्रव्य संवाद के साथ एक अच्छी संतुलित ध्वनि पैदा करता है। ध्यान दें कि ऑडियो चैनलों को निर्दिष्ट करना आवश्यक नहीं है।

-af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR"

पैन फिल्टर प्रलेखन से कम से कम प्रतीक के उपयोग पर एक नोट :

यदि चैनल विनिर्देश में '=' ​​को '<' से बदल दिया जाता है, तो उस विनिर्देश के लाभ को फिर से बदल दिया जाएगा ताकि कुल 1 हो, इस प्रकार शोर को टालने से बचें।


5
आपके द्वारा यहां जोड़ा गया ACS मानक इस विषय पर FFmpeg विकि से जुड़ा हुआ था , इसलिए यह आश्चर्यजनक है कि यहाँ उपयोग किया जाने वाला सूत्र FFmpeg द्वारा अपने ac -2स्विच के साथ लागू किया गया है । दूसरे शब्दों में, इस फिल्टर का उपयोग करने और करने के बीच एकमात्र अंतर ac -2बहुत अधिक टाइपिंग है।
हाशिम

1
@ हाशिम केवल टाइपिंग ही नहीं। अंडरपिनिंग्स के गहन विवरण के साथ एक उत्तर "यह प्राप्त करने के लिए टाइप करें" की तुलना में उद्देश्यपूर्ण रूप से बेहतर है।
सेवस्तन सवणुक

19

इस सवाल के जवाब के बाद से एक गड़बड़ हो गया है, जिसमें कई बेमानी जानकारी और दूसरों को पूरी तरह से गलतियाँ हैं। यह उत्तर उन समस्याओं को दूर करते हुए इन उत्तरों में जानकारी को सुव्यवस्थित करने का एक प्रयास है।

सबसे महत्वपूर्ण बात, यह ध्यान में रखने योग्य है कि ग्रेगरी का जवाब, वर्तमान में इस सवाल का शीर्ष-वोट वाला उत्तर, -ac 2स्विच का उपयोग करने से अलग नहीं है - नीचे इस पर और अधिक।

डाउनस्ट्रीमिंग 5.1 चैनल ऑडियो स्ट्रीम टू स्टीरियो -ac 2

FFmpeg, 5.1 ट्रैक से स्टीरियो पर नीचे आने के लिए अंतर्निहित क्षमताओं के साथ आता है, और यह भी समाधान है जो FFmpeg के स्वयं के प्रलेखन की सिफारिश करता है :

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

-ac 2वापस वाम, वापस ठीक है, सामने वाम, फ्रंट सही और मोर्चा केंद्र - - स्विच स्रोत के 6 चैनल धारा से पहले 5 चैनलों के अनुपात में मिश्रण से काम करता है उत्पादन स्टीरियो धारा के सामने वाम और मोर्चा सही चैनलों में:

यहाँ छवि विवरण दर्ज करें

जब ऐसा है, तो LFE चैनल से ऑडियो कर ( .1 5.1 में, सबवूफर के लिए आरक्षित है और गहरी, कम आवृत्ति प्रभाव के लिए इस्तेमाल किया) है पूरी तरह से खारिज कर दिया जब इस विकल्प का उपयोग।

दुर्भाग्य से, मेरे परीक्षणों -ac 2में संगीत और संवाद दोनों के समग्र स्तर के परिणाम मिले जो स्रोत के लिए सबसे अलग थे, जिससे यह डाउनीक्स फॉर्मूला बन गया , जो मेरे द्वारा परीक्षण किए गए सभी फॉर्मूलों में से सबसे खराब आउटपुट देता है, हालाँकि आप इसका परीक्षण कर सकते हैं और पा सकते हैं कि यह आप अपनी आवश्यकताओं के लिए पूरी तरह से पर्याप्त downmix देता है, जो किसी भी अन्य सूत्र का उपयोग करने के मामले में आप के लिए overkill होगा।


इसे ट्रांसकोड -ac 2 किए बिना एक डीटीएस ट्रैक को डाउनमिक्स करने के लिए (अर्थात अपने कोडेक रखने के लिए और उसी को विस्तारित करें):

ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 "stereotrack.dts"

जैसा कि उनके उत्तर में मेफिस्टो ने कहा है, यदि संवाद और संगीत आपस में एक-दूसरे के बीच अच्छी तरह से संतुलित हैं, लेकिन बस मात्रा में कमी है, तो आप इसकी मात्रा बढ़ाते हुए धारा को नीचे कर सकते हैं:

ffmpeg -i "sourcetrack.dts" -c:a dca -ac 2 -vol 425 "stereotrack.dts"

के लिए -volस्विच, स्रोत में 100% मात्रा पूर्णांक मान 256, और एक बड़ा मूल्य का उपयोग करने से इस ऑडियो स्ट्रीम की कुल मात्रा में वृद्धि होगी के बराबर है। हालांकि, ध्यान दें कि बहुत अधिक करने से विकृति या कलाकृतियों का परिणाम हो सकता है, खासकर इसके लाउडर सेक्शन के दौरान।

उदाहरण के लिए, स्टीरियो के लिए एक ऑडियो स्ट्रीम को डाउनस्ट्रीम करने और इसे AC3 कोडेक में ट्रांसकोड करने के लिए:

ffmpeg -i "sourcetrack.dts" -c:a ac3 -ac 2 "stereotrack.ac3"

एक कस्टम मिक्स एल्गोरिथ्म के साथ स्टीरियो में एक 5.1 चैनल ऑडियो स्ट्रीम डाउनडिक्सिंग

यदि आप अधिक उच्च गुणवत्ता वाला डाउनमिक्स चाहते हैं, या आपको अपने आउटपुट में LFE स्ट्रीम को अवश्य शामिल करना चाहिए, तो आप -afकस्टम मिक्स फॉर्मूला का उपयोग करके ऑडियो को डाउनमिक्स करने के लिए FFmpeg के ऑडियो फ़िल्टर स्विच ( ) का उपयोग कर सकते हैं ।

ACS सूत्र के साथ डाउनमिक्सिंग (ग्रेगरी का जवाब)

इस उत्तर को पोस्ट करने के समय तक, इस प्रश्न का शीर्ष-मतदान उत्तर ग्रेगोरी का था , जो एएफटीएस विनिर्देश से सूत्र डालता है (देखें अनुभाग 7.8.2, डाउनमिक्सिंग टू चैनल में ) एक FFmpeg ऑडियो फ़िल्टर में। यह विनिर्देश विषय पर FFmpeg प्रलेखन द्वारा सीधे जुड़ा हुआ है , यह दर्शाता है कि यह एक ही सूत्र होने की अत्यधिक संभावना है कि FFmpeg अपने -ac 2स्विच के लिए पहले से ही लागू है । यदि यह सच है, तो ग्रेगरी के जवाब में पूरे सूत्र को टाइप करना -ac 2स्विच का उपयोग करने से अलग नहीं होगा , और इसलिए समय की बर्बादी होगी।

मैंने दोनों के उपयोग से एक ही इनपुट ऑडियो को फिर से एन्कोडिंग करके -ac 2और -afग्रेगरी के उत्तर से फ़िल्टर का उपयोग करके निश्चित रूप से इसका परीक्षण करने का निर्णय लिया (इस जवाब के लिए इस्तेमाल किए गए सटीक आदेश फुटनोट्स में देखे जा सकते हैं)।

मैंने तब परिणामी आउटपुट फ़ाइलों के आकारों की तुलना की और पाया कि वे बाइट-फॉर-बाइट थे, समान आकार:

यहाँ छवि विवरण दर्ज करें

अंत में, मैंने दुस्साहस में दो आउटपुट फाइल खोली, और उनकी तरंगों की तुलना करने के लिए पुष्टि की कि वे समान थे (विस्तार करने के लिए क्लिक करें):

यहाँ छवि विवरण दर्ज करें

इसलिए यह बहुत निर्णायक लगता है कि ग्रेगोरी के जवाब में विस्तृत एटीएससी फॉर्मूला वही है जो पहले से ही एफएफएमपीई द्वारा लागू किया गया है , और इसका उपयोग पूरी तरह से बेमानी है जब यह कुछ भी नहीं -ac 2करता है, और बहुत अधिक बोझिल कमांड है।

LFE चैनल को छोड़ने के बिना डाउमीक्सिंग (डेव_750 का जवाब)

उत्तर में शामिल कई में से, यह केवल डाउनलिक्स फ़ार्मुलों में से एक है जो LFE चैनल को पूरी तरह से छोड़ने के बजाय आउटपुट स्टीरियो में मिलाता है, और परिणामस्वरूप, वह जो स्रोत से कम से कम ध्वनि सुनिश्चित करता है। खो गया।

कुल मात्रा का स्तर उच्च और पूर्ण करने की तुलना में अधिक है -ac 2, लेकिन नाइटमॉड डायलॉग डाउनमिक्स की तुलना में अभी भी कम है। हालांकि, नाइटमोड डायलॉग डाउनस्मिक्स की तुलना में संगीत का स्तर स्रोत के बहुत करीब है, और एलएफई ट्रैक को शामिल करने के कारण, आउटपुट का वॉल्यूम बढ़ाते हुए इस डाउनमिक्स फॉर्मूला का उपयोग करते हुए एक आउटपुट स्ट्रीम बना सकते हैं जो अन्य सभी की तुलना में 5.1 स्रोत के बराबर लगता है। सूत्र मैंने परीक्षण किए।

यदि आपके पास क्षमता है, तो मैं आपके ऑडियो डाउन स्ट्रीम और नाइटमॉड डायलॉग डाउनस्मिक्स दोनों का उपयोग करके आपके ऑडियो स्ट्रीम (इन) को एन्कोडिंग करने की सलाह दूंगा, और ध्यान से तुलना करने के लिए कि वे कौन से बेहतर हैं, दोनों की तरंगों की तुलना करें।

इस फॉर्मूले का उपयोग करके स्टीरियो पर 5.1 ट्रैक डाउन करने के लिए और अपने वॉल्यूम स्तर को 425 तक बढ़ाएं (जहां 256 मूल स्रोत के वॉल्यूम स्तर का 100% है):

ffmpeg -i "sourcetrack.dts" -c dca -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "outputstereo.dts"

रॉबर्ट कोलियर के नाइटमॉड डायलॉग (शेन हैरल्सन का जवाब) के साथ डाउनमिक्स करना

डूम 9 मंच पर रॉबर्ट कॉलियर द्वारा निर्मित और उनके उत्तर में शेन हैरेलसन द्वारा प्रस्तुत नाइटमोड संवाद सूत्र, स्विच की तुलना में कहीं अधिक बेहतर परिणाम देता है - अति शांत संवादों के बजाय, यह उन्हें उन स्तरों पर वापस लाता है जो बहुत करीब हैं स्रोत।-ac 2

मिश्रण के रॉबर्ट कोलियर के विवरण से:

Eac3to का उपयोग करके 5.1 से 2.0 तक कई डीटीएस मूवी ट्रैक को परिवर्तित करने के बाद, मैंने बहुत ही शांत संवादों और अत्यधिक संगीत और एक्शन दृश्यों के परिणामस्वरूप डिफ़ॉल्ट eac3to चैनल मैपिंग पाया है। यद्यपि eac3to चैनल डाउनमिक्स गुणांक का वैज्ञानिक आधार है, लेकिन वे अक्सर कम संवाद मात्रा के अभ्यास अभ्यास में अच्छे नहीं लगते हैं। यह प्रीसेट बाएं और दाएं चैनल संगीत के साथ स्पष्ट संवाद की तलाश करने वालों के लिए है जो अभी भी श्रव्य है, लेकिन पृष्ठभूमि में अधिक है।

जैसा कि आप देख सकते हैं - फ्रंट सेंटर (संवाद) अब ठीक से आते हैं और मूल स्तर पर बने रहते हैं - जबकि संगीत और विस्फोट एक पृष्ठभूमि प्रभाव बने रहते हैं और आप पर हावी नहीं होते हैं। यह प्रीसेट आपको वॉल्यूम नॉब के साथ लगातार फील करने की समस्या को हल करता है, जब संवाद सुनने के लिए डीटीएस 5.1 को 2.0 फिल्मों में परिवर्तित किया जाता है। (खासकर रात में फिल्में देखने के लिए जहां आप दूसरों को जगाना नहीं चाहते लेकिन फिर भी संवाद सुनने में सक्षम होना चाहते हैं)।

दुर्भाग्य से, इस डाउनमिक्स फॉर्मूले का संगीत 5.1 स्रोत की तुलना में बहुत कम है (जो कि "नाइटमोड" मिश्रण बनाने के लिए कोलियर के इरादे पर विचार करके डिजाइन द्वारा संभावना थी) और एलएफई ट्रैक के पूर्ण नुकसान के कारण, समग्र आउटपुट ऑडियो नहीं करता है बढ़ाया मात्रा के साथ Dave_750 के सूत्र के रूप में पूर्ण या स्रोत के करीब ध्वनि ।

हालाँकि, अगर किसी कारण से आप धारा के समग्र आयतन को बढ़ाने से बचना चाहते हैं, तो दुःस्वप्न संवाद संभवतः आपका सबसे अच्छा विकल्प होगा - हालाँकि फिर से, मैं आपके ऑडियो स्ट्रीम को दोनों में एन्कोडिंग करने और दोनों के तरंगों की सावधानीपूर्वक तुलना करने की अत्यधिक सलाह दूंगा। ।

FFmpeg में नाइटमॉड डायलॉग फॉर्मूले के साथ डाउनमिक्स करने के लिए:

ffmpeg -i "sourcetrack.dts" -c dca -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "stereotrack.dts" 

तारक का जवाब

यह उत्तर केवल शेन हरेलसन के नाइटमोड डायलॉग डाउनमिक्स फॉर्मूले को एक एमकेवी कंटेनर में ऑडियो स्ट्रीम परिवर्तित करने के लिए एक कमांड में देता है। जबकि इस उत्तर में दी गई कमांड इस तरह के ऑडियो स्ट्रीम पर ठीक काम करेगी, स्टैंडअलोन ऑडियो ट्रैक के लिए इसे अपनाने से त्रुटि होगी:

फ़िल्टरिंग और स्ट्रीमकॉपी का एक साथ उपयोग नहीं किया जा सकता है

ऐसा इसलिए होता है क्योंकि ऑडियो कोडक को डाउनमिक्सिंग के दौरान कॉपी नहीं किया जा सकता है - जैसे अन्य सभी बदलाव एफएफएमपीपी आउटपुट स्ट्रीम में करता है, डाउनमैक्स के लिए आवश्यक है कि ट्रैक को लागू किए जाने वाले परिवर्तनों के लिए फिर से एन्कोड किया जाए।

इस कमांड में एक निरर्थक -ac 2स्विच भी शामिल था जिसे FFmpeg ने अनदेखा कर दिया होगा।


टेस्ट कमांड

इस उत्तर के लिए मैंने जो परीक्षण किए, उनकी विश्वसनीयता प्रदर्शित करने के लिए, नीचे दिए गए सभी आदेश हैं, जिनका उपयोग मैंने प्रत्येक डाउनमिक्स फॉर्मूले का परीक्षण करने के लिए किया था।

-ac 2विकल्प के लिए उपयोग किया जाने वाला परीक्षण कमांड :

ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -ac 2 "Audio 1 (-ac 2).wav"

ग्रेगरी के जवाब के लिए इस्तेमाल किया जाने वाला टेस्ट कमांड:

ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL < 1.0*FL + 0.707*FC + 0.707*BL|FR < 1.0*FR + 0.707*FC + 0.707*BR" "Audio 2 (ATSC Algorithm Downmix).wav"

डेव_750 के उत्तर के लिए परीक्षण कमांड का उपयोग किया गया:

ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -vol 425 -af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE" "Audio 4 (Dave750 Downmix).wav"

शेन हैरेलसन के जवाब के लिए परीक्षण कमांड का इस्तेमाल किया गया:

ffmpeg -i "signed16bitPCM.wav" -c pcm_s16le -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" "Audio 3 (Nightmode Dialogue Downmix).wav"

1
प्रभावशाली अंतर्दृष्टि! इसे साझा करने के लिए समय निकालने के लिए धन्यवाद। अजीब बात है, कि -ac 2मुझे शुरू करने के लिए एक अवर परिणाम दिया, जिसने मूल पोस्टिंग को प्रेरित किया। मैं इसे फिर से कोशिश करूँगा और यदि संभव हो तो, 5.1 अंश साझा कर सकता हूं जो बिल्ट-इन डाउन-मिक्स के साथ संतोषजनक परिणाम नहीं देता है। यह जानकर भी आपको बहुत अच्छा लगेगा कि आप ट्रांसकोडिंग के बिना मिक्स-डाउन कर सकते हैं!
एमरिन

@forthrin ध्यान रखें कि एन्कोडिंग और ट्रांसकोडिंग दो अलग चीजें हैं। ट्रांसकोडिंग एक कोडेक / एक्सटेंशन से दूसरे में कनवर्ट करता है, और एन्कोडिंग एक ही कोडेक / एक्सटेंशन में कनवर्ट करता है। आप ट्रांसफ़ैकिंग के बिना स्ट्रीम में अन्य FFmpeg प्रभाव को डाउनमिक्स और लागू कर सकते हैं, लेकिन एन्कोडिंग के बिना नहीं। ac -2विकल्प मुझे भी सब downmix सूत्रों का सबसे घटिया परिणाम दे दी है, मुझे लगता है कि यह सिर्फ एक ATSC मानक के सूत्र का असफल रहने के है।
हाशिम

मैंने अब यह कोशिश की। ऐसा लगता है कि ffmpeg -i 5.1.mp4 -ac 2 2.mp4काम करता है, लेकिन ffplay -i 5.1.mp4 -ac 2नहीं करता है।
अम्रिन

9

इस downmix का प्रयास करें:

-ac 2 -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" 

के रूप में रॉबर्ट कोलियर ने सुझाव दिया Doom9 मंच में।


2
उन सभी विकल्पों का क्या मतलब है? यदि आप उन्हें समझाते हैं, तो लोग आपके उत्तर का उपयोग केवल कॉपी-पेस्ट करने के बजाय विभिन्न समस्याओं को हल करने में कर पाएंगे।
डेविड रिचरबी

2
@DavidRicherby -ac = ऑडियो चैनल (स्टीरियो के लिए 2), -af = ऑडियो फ़िल्टर
सेस्टेरियन

3
यह एक 5.1 फिल्म के लिए कोशिश की और कम से कम उत्पादन स्टीरियो मुझे पूरी तरह से ठीक लग रहा था। स्पष्ट संवाद और कुछ नहीं लग रहा था। बहुत अच्छा होगा यदि VLC ज्ञान वाला कोई व्यक्ति डिफ़ॉल्ट 5.1 में 2.0 डाउनमैक्स में जो कुछ किया गया है उसे ठीक से साझा कर सके।
अमरीन

2
@ डैडीरिचर्बी: ऑडियो फ़िल्टर (-af) के अंदर के विकल्प हैं: FL = Front-left; बीएल = बैक छोड़ दिया; एफसी = सामने वाले केंद्र; एफआर = सामने वाले का अधिकार; बी आर = बैक सही। फ़्लोट्स गुणक चैनल के आयतन को कम करने (<1) या बढ़ाने (> 1) के कारक हैं। FL = FC + 0.30 * FL + 0.30 * BL फ्रंट-लेफ्ट चैनल को फ्रंट-सेंटर चैनल और फ्रंट-लेफ्ट 30% और बैक-लेफ्ट चैनल्स का 30% सेट कर रहा है।
क्रोनेंपज

1
FWIW: मुझे लगता है कि यह मिक्स डायलॉग संगीत और परिवेश ध्वनियों की तुलना में बहुत जोर से है। तारक के उत्तर में दिया गया तकनीकी रूप से अधिक सही मिश्रण मुझे अधिक भाता है। इसलिए मुझे लगता है कि आपको कोशिश करना पड़ सकता है कि आपके लिए सबसे अच्छा क्या है, यह स्थिति पर निर्भर करता है।
jlh

4

इसलिए, @ जोर्डन हैरिस के एक और प्रश्न के उत्तर के साथ @ हार्नसन के संयोजन के साथ - आलसी मोड चालू हो गया - यहां input_51.mkv(5.1) को output_stereo.mkv(स्टीरियो) में बदलने की क्या आवश्यकता है :

ffmpeg -i input_51.mkv -c:v copy \
    -ac 2 -af "pan=stereo|FL=FC+0.30*FL+0.30*BL|FR=FC+0.30*FR+0.30*BR" \
    output_stereo.mkv

-c:v copyभाग का मतलब है कि वीडियो स्ट्रीम छुआ नहीं किया जा रहा है (मुझे लगता है कि वी विचारधारा odec सेटिंग्स किया जा रहा है पुलिस आईईडी)। इसके बिना, इसमें बहुत अधिक समय लगेगा। पूर्णता के लिए उपरोक्त उत्तर से दोहराते हुए, -ac 2दो ऑडियो चैनलों का अर्थ है और -afएक ऑडियो फ़िल्टर निर्दिष्ट करता है।

कमांड को थोड़ा सा देखने के बाद, मुझे लगा कि यह सेट कर रहा है कि दो स्टीरियो चैनल कैसे बने हैं; FL(सामने छोड़ दिया चैनल) मूल से लिया जाता है FC(सामने बीच में) प्लस 0.30*FL(सामने बाएं से 30%) प्लस 0.30*BL(लेफ्ट बैक से 30%) और इतने पर।


क्या यह केंद्र चैनल को सुसंगत और श्रव्य बनाए रखेगा?
फ्रीडो

2

यह अब एक पुराना प्रश्न है, लेकिन मुझे सही दिशा में इंगित किया है और अपना परिणाम साझा करना चाहता है:

-af "pan=stereo|FL=0.5*FC+0.707*FL+0.707*BL+0.5*LFE|FR=0.5*FC+0.707*FR+0.707*BR+0.5*LFE"

FC और LFE के आधे हिस्से को बाएँ और दाएँ में रखने से दोनों वक्ताओं से उनके प्रभावी संस्करणों के लिए कुल 1 प्राप्त होता है। .707 * फ्रंट / बैक लेफ्ट / राइट का उपयोग करने से उन चैनलों को अच्छे स्तर पर लाया जाता है ताकि वे केंद्र पर हावी न हों।


1

अगर -ac 2 विकल्प आपको एक संतुलित डाउनमिक्स देता है जहां न तो संगीत और न ही भाषण अन्य घटकों की तुलना में बहुत अधिक लगता है, तो आपको केवल वॉल्यूम बढ़ाने की आवश्यकता है

-vol 512

मैंने उदाहरण में 512 का उपयोग किया, जो ध्वनि को बढ़ाता है जिससे यह दो गुना जोर से होता है। नियम यह है कि 256 100% के बराबर है

मूल्य के साथ बहुत अधिक मत जाओ, और फिल्म के उन हिस्सों में विस्फोट या ज़ोर शोर से परिणामों की जांच करना सुनिश्चित करें। बहुत अधिक मूल्य का उपयोग करके विकृति का परिचय देना बहुत आसान है।


0

इस पूरे पृष्ठ और कुछ प्रयोगों को पढ़ने के बाद मैं इस स्क्रिप्ट के साथ आया, जिसे "down_mix" कहा जाता है:

#!/bin/bash -x

FL="0.5*FC + 0.707*FL + 0.707*BL + 0.5*LFE"
FR="0.5*FC + 0.707*FR + 0.707*BR + 0.5*LFE"
AUDIO_FMT="libopus"
CONTAINER="mkv"

ffmpeg -i "$1" -c:v copy -c:s copy \
    -c:a $AUDIO_FMT \
    -af "pan=stereo|FL=$FL|FR=$FR" \
    "${1%.*}"_dm.$CONTAINER

    # how to test a snippet of movie
    # -ss 41:07.0 -t 4 \

अपनी पसंद के ऊपर के चरों को ट्वीक करें। मुझे कम वॉल्यूम की समस्या नहीं थी इसलिए इसे छोड़ दिया गया, लेकिन आसानी से जोड़ दिया गया।


0

जब तक आपका लक्ष्य pcm_s16le एन्कोडेड है ffmpeg फ़िल्टर "-ac 2" ठीक काम करता है। जब wav प्रारूप में pcm_f32le को एन्कोडिंग किया जाता है तो वॉल्यूम 9dB और अधिक बढ़ जाता है। इसलिए: ऐसे मामलों में "-ac 2" फिल्टर का उपयोग न करें।


1
वॉल्यूम क्यों बढ़ाया जाता है? आपने इस बारे में कहां सीखा?
आगे

कोई विचार नहीं, क्यों। लेकिन मैं एक बहुत ही लगातार ffmpeg उपयोगकर्ता हूँ (इसे स्वयं संकलन कर रहा हूँ)। बस किसी भी 5.1 (साइड) स्रोत को लें और इसे दोनों बार "-ac 2" का उपयोग करके एक pcm_s16le und में भी pcm_f32le wav फ़ाइल में बदलें। दो wav फ़ाइलों के पीक वॉल्यूम की तुलना करें और आप देखेंगे (और सुनेंगे):
फ्रैंक-माइकल फिशर

यह उदाहरण ffmpeg संस्करण N-93636-g6829c3c के उपयोग से होता है
फ्रैंक-माइकल फिशर

0

-एसी 2

डाउनमिक्स में चैनलों की मात्रा फ़्लोटिंग पॉइंट कोडेक के साथ अपरिवर्तित है -> pcm_f32le, aac

डाउनमिक्स में वॉल्यूम (5.1 से 2.0 बिना LFE) पूर्णांक कोडेक के साथ 1 / 2.5 = -7.96 dB से कम है -> pcm_s16le, libfdk_aac

फिल्मों में एक दिशा में ध्वनि होती है, और सभी चैनलों पर कोई अधिकतम ध्वनि दबाव नहीं होता है। इसलिए घटाया गया वॉल्यूम गलत है, थोड़ा लेवल कम्प्रेशन सही तरीका है। यही डॉल्बी करता है।

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