इनपुट (एस) चैनल गणना के आधार पर ऑटो-स्विचिंग पल्सएडियो प्रोफाइल


39

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

PulseAudio में आउटपुट चैनलों की संख्या, कार्ड के लिए दी गई प्रोफ़ाइल द्वारा, प्रति-कार्ड / सिंक कॉन्फ़िगर की गई है। आप के साथ सौंपा प्रोफाइल को बदल सकते हैं pacmd, pactlऔर विभिन्न जीयूआई कार्यक्रम।

इनपुट स्ट्रीम (एस) में चैनल के उपयोग के आधार पर प्रोफ़ाइल को स्वचालित रूप से बदलने के लिए मैं इसे कैसे सेट कर सकता हूं? उदाहरण के लिए, यदि इनपुट स्ट्रीम केवल फ्रंट-लेफ्ट और फ्रंट-राइट का उपयोग कर रही हैं, तो स्टीरियो प्रोफाइल पर स्विच करें। यदि वे बैक-लेफ्ट और बैक-राइट का भी उपयोग कर रहे हैं, तो क्वाड्रोफोनिक, आदि पर स्विच करें।


3
शायद मैं गलत हूं, लेकिन मुझे नहीं लगता कि यह बिल्कुल संभव है। पल्सीडियो एक ही समय में कई धाराओं का प्रबंधन करता है: यदि विभिन्न चैनल संख्याओं के साथ अलग-अलग धाराएँ एक साथ चल रही हों तो कौन सी प्रोफ़ाइल सही होगी?
एलेसियो गाएटा

@meden सबसे अधिक संख्या वाले चैनलों में से एक है, मुझे लगता है।
derobert

हां, बेशक, लेकिन फिर भी ऐसे मामले होंगे जिनमें आप अपने लक्ष्य को प्राप्त नहीं कर सके। BTW, मुझे नहीं लगता कि एक प्रोफ़ाइल को सशर्त रूप से स्विच करने के लिए Pulseaudio में एक तरीका है। हो सकता है कि Pulseaudio [ kodi.wiki/view/PulseAudio] को कोडी गाइड कुछ संकेत देने के लिए उपयोगी हो (यानी passthrough का उपयोग करके और अपने रिसीवर को सभी काम करने दें, बशर्ते यह सभी प्रारूपों का उपयोग करने का समर्थन करता है)।
एलेसियो गाएटा

यह एक दिलचस्प सवाल है। मेरे पास इसका परीक्षण करने के लिए ऑडियो सेटअप उपलब्ध नहीं है, लेकिन चारों ओर एक काम के रूप में, यदि आप प्रत्येक उदाहरण के लिए प्रोफाइल बनाना चाहते हैं जो आप कल्पना करते हैं, तो अग्रिम में धाराओं का विश्लेषण करने के लिए एक स्क्रिप्ट सेटअप करें (शायद mediainfoया तो के उत्पादन को रोककर ) ffmpegया avconvऔर फिर pacmdअपने खिलाड़ी को लॉन्च करने से पहले उपयुक्त प्रोफ़ाइल का चयन करने के लिए उपयोग करें, एक तार्किक दृष्टिकोण से, मैं यह काम करने की उम्मीद करूंगा, बशर्ते आप एक समय में एक ऑडियो खेल रहे थे।
एल्डर गीक

4
यदि यह पहले से ही वहाँ प्रस्तुत नहीं किया गया है, तो यह सवाल लॉन्चपैड . net / bugs / bugtrackers / pulseaudio-bugs पर एक सुविधा अनुरोध के रूप में सबमिट करने के लायक हो सकता है । यह एक दिलचस्प विशेषता होगी और पल्स ऑडियो शायद बाहरी स्क्रिप्ट का उपयोग करके आंतरिक रूप से इसे बेहतर तरीके से हल कर सकता है।
अलेक्जेंडर

जवाबों:


1

यह सिर्फ एक अवधारणा है और कोई पूर्ण समाधान नहीं है:

आप के साथ घटनाओं की अपनी खुद की हैंडलिंग ऐसा करने में सक्षम हो सकता है patcl subscribeअगर आप pulsaudio ग्राहकों (जैसे, फिल्म खिलाड़ी जोड़ता है, तो आप 7.1 विन्यास पर स्विच करते हैं, अन्यथा आप स्टीरियो configuratioin का उपयोग करें) के लिए विन्यास प्रदान कर सकते हैं। आपको घटनाओं का एक निरंतर प्रवाह मिलेगा patcl subscribe, जिसे आप ग्राहक कनेक्शनों को देखकर संभाल सकते हैं। फिर आप केवल प्रोफाइल बदलने के लिए pactl / pacmd कॉल कर सकते हैं।

उदाहरण Pactl सदस्यता का उत्पादन:

$ pactl subscribe 
Event 'change' on sink #0
Event 'remove' on sink-input #93
Event 'change' on sink #0
Event 'change' on source #0
Event 'change' on sink #0
Event 'change' on source #0
Event 'new' on sink-input #98
Event 'change' on sink-input #98

कृपया ध्यान दें, आपके पास अभी भी उन मामलों को संभालने की समस्या है जिनमें आपके पास कई ग्राहक हैं जिनके पास विभिन्न चैनलों की संख्या है।

इसके अलावा, उपरोक्त दृष्टिकोण बल्कि सीमित है। एप्लिकेशन के उपयोग किए गए चैनलों की वास्तविक संख्या का पता लगाने के लिए प्रति एप्लिकेशन सेटिंग्स पर्याप्त नहीं हैं (उदाहरण के लिए vlc एक 5.1 या 7.1 वीडियो चला सकता है)। मुझे वास्तव में pactl पर pulseaudio क्लाइंट के नंबर का उपयोग करने के लिए एक तरीका नहीं मिला है, लेकिन मुझे यहां कुछ विकल्प याद नहीं होंगे। वैकल्पिक रूप से, आप स्वयं भी वीडियो प्लेयर एप्लिकेशन को हुक करने में सक्षम हो सकते हैं और लापता बिट्स फॉर्म प्राप्त कर सकते हैं।


आपके साथ pactl list | grep format.channelsअधिकतम का पता लगाने में सक्षम होना चाहिए। # उपयोग किए गए चैनल (और साथ ही अधिक जानकारी)। सब्स्क्राइब्ड घटनाओं द्वारा ट्रिगर की गई स्क्रिप्ट में उस जानकारी का उपयोग करने से समाधान हो सकता है।
चोटी वाला
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.