मेरा ऑडियो इनपुट हमेशा वेबकैम माइक्रोफोन कैसे हो सकता है?


14

हर बार जब मैं Skype का उपयोग करना चाहता हूं, तो मुझे ध्वनि वरीयताओं में जाना होगा। और वहां, ऑडियो-इन " वेबकैम " को चालू करें और " म्यूट " बटन को अनचेक करें। यह काफी कष्टप्रद है। क्या हमेशा समान कॉन्फ़िगरेशन रखने का एक तरीका है?


1
मैं इस समस्या के साथ ही एक logitech quickacam है। प्रत्येक रिबूट के बाद मुझे वरीयताओं से गुजरना होगा और इसे काम करने के लिए डिफ़ॉल्ट इनपुट के रूप में रीसेट करना होगा। मुझे लगता है कि इस तथ्य के साथ कुछ करना है कि ध्वनि वरीयताओं को सेट करने के बाद यूएसबी डिवाइस लोड होते हैं इसलिए यूएसएस माइक को "ना" न देखें। दुर्भाग्य से क्योंकि "समस्या" वास्तव में एक समस्या नहीं है बस एक असुविधा है यह इतना महत्वपूर्ण नहीं है कि मैं शर्ट आस्तीन को रोल करना चाहता हूं और कॉन्फ़िगर फ़ाइलों के माध्यम से खुदाई और संपादन शुरू कर सकता हूं।

जवाबों:


14

PulseAudio के लिए डिफ़ॉल्ट सेटिंग बदलना

जब pulseaudio चल रहा है तो सभी सेटिंग्स को .pulseआपके होम में छिपी निर्देशिका में कस्टम कॉन्फ़िगरेशन फ़ाइलों को लगाकर परिभाषित किया जा सकता है । यदि ये फ़ाइल अभी तक मौजूद नहीं है, तो आप /etc/pulse/टेम्पलेट के रूप में मानक फ़ाइलों का उपयोग कर सकते हैं । अधिकांश प्रविष्टियों में इन फाइलों में मौखिक स्पष्टीकरण हैं।

  • ~/.pulse/default.pa मॉड्यूल लोड करने और चूक को परिभाषित करने के लिए
  • ~/.pulse/client.conf ध्वनि सर्वर के लिए क्लाइंट को कॉन्फ़िगर करने के लिए
  • ~/.pulse/daemon.conf नमूना दरों और बफ़र्स को परिभाषित करने के लिए

अपने वेब कैमरा को डिफ़ॉल्ट स्रोत बनाने के लिए हमें एक टर्मिनल में निम्नलिखित कमांड द्वारा निर्मित सूची के माध्यम से इस स्रोत का नाम और संख्या जानने की आवश्यकता है:

pacmd list-sources

हम फिर निम्नलिखित पंक्ति को इसमें संपादित करते हैं ~/.pulse/default.pa:

set-default-source [name]

और [name]वांछित स्रोत के लिए नाम या स्रोत संख्या से प्रतिस्थापित करें । फिर हमें यह सुनिश्चित करने की आवश्यकता है कि इस पंक्ति को जोड़कर स्रोत अनम्यूट किया गया है:

set-source-mute [name]|[#n]> 0

अपने स्रोत का नाम या सूचकांक दें। आप कई अन्य सेटिंग्स जोड़ सकते हैं जो पल्सएडियो विकी (अब मैन पेज पर man pulse-cli-syntax) में संदर्भित हैं ।

कॉन्फ़िगरेशन फ़ाइलों को बदलने से पहले कमांड लाइन इंटरफ़ेस के माध्यम से पहले सभी कमांड का परीक्षण करने की सिफारिश की जाती है। इसे किसी टर्मिनल में खोला जा सकता हैpacmd


मेरे .pulse फ़ोल्डर में कोई default.pa नहीं है। क्या मुझे एक लाइन: सेट-डिफॉल्ट-सोर्स x के साथ एक नई फ़ाइल बनानी चाहिए?
करने के लिए क्या

3
@ डिफ़ॉल्ट सेटिंग में हैं /etc/pulse/default.pa~/.pulseसंपादन से पहले इस फ़ाइल का उपयोग करें या इसे कॉपी करें ।
तक्षक

पूर्णता के लिए: किसी को इनपुट डिवाइस के रूप में लिखना होगा जो उस चीज का नाम है जो आउटपुट के कोण ब्रेसिज़ के अंदर लिखी गई है pacmd list-sources। अपने डिवाइस के लिए Ie साथ था set-default-source alsa_input.usb-0d8c_USB_PnP_Sound_Device-00-Device.analog-mon
हाय-एंजेल

@ हाय-एंजेल: इसके लिए आपको धन्यवाद - इसका जवाब बहुत पुराने संस्करण से आया है। अब हम एक सिंक के उचित नाम का उपयोग कर सकते हैं।
तक्कत

6

मैं मानता हूं कि समस्या यह है कि पल्सेडियो डिफ़ॉल्ट रूप से USB डिवाइस सेट नहीं करता है क्योंकि पल्स शुरू होने पर यह मौजूद नहीं है।

इसके लिए मेरा समाधान उस सिस्टम में हुक करना है जो एक USB डिवाइस कनेक्ट होने पर नोटिस करता है ... UDEV!

BTW, ये निर्देश थोड़ा फंकी हैं, और मैं मान रहा हूं कि आप कमांड लाइन पर सामान बनाने में सहज हैं, और udv फाइल को अपडेट करने के लिए रूट यूजर बन रहे हैं, और स्क्रिप्ट को निष्पादन योग्य बना रहे हैं।

सबसे पहले, सामान का पता लगाएं

यूएसबी आईडी

पहला कदम यह है कि अपने वेबकैम में प्लग करें और टाइप करके मैजिक वेंडर और प्रोडक्ट नंबर खोजें

lsusb

मैं एक Microsoft Lifecam का उपयोग कर रहा हूं, और यह इस रूप में दिखाता है

Bus 001 Device 013: ID 045e:072d Microsoft Corp.

महत्वपूर्ण हिस्सा 045e: 072d है

पल्सीडियो डिवाइस

अगला, वेब कैमरा कनेक्ट होने के दौरान, pulseaudio डिवाइस नाम का पता लगाएं। प्रकार

pacmd list-sources

फिर, मैं उस लाइन की तलाश कर रहा हूं जो name:तब शुरू होती है जब Microsoft लाइफकेम के बारे में कुछ होता है ... यहां यह है

name: <alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono>

तो मेरा pulseaudio डिवाइस नाम होगा alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

UDEV नियम

फिर मैंने एक नया udv नियम बनाया, जिसे निकाल दिया जाता है जब विक्रेता के साथ एक USB डिवाइस = 045e और उत्पाद = 072d डाला जाता है। एक नियम बनाने के लिए, /etc/udev/rules.d/SOMETHING.rules (मुझे मेरी फ़ाइल कहा जाता है /etc/udev/rules.d/95-webcam-mic.rules) नामक एक नई फ़ाइल बनाएं ।

इस लाइन को फाइल में डालें

SUBSYSTEMS=="usb", ATTR{idVendor}=="045e", ATTR{idProduct}=="072d", ACTION=="add", GROUP="audio", RUN+="/usr/local/bin/webcam-mic"

बदलना न भूलें ATTR {idVendor} और ATTR {idProduct} अपने वेबकैम के लिए मूल्यों के साथ।

यह नियम इनपुट के लिए usb डिवाइस को सेट करने के लिए एक स्क्रिप्ट चलाता है, जो कि RUN+="/usr/local/bin/webcam-mic"हिस्सा है।

अंत में, इनपुट के लिए वेबकैम सेट करें

त्वरित अवलोकन समय। हर बार जब मैं अपने वेबकैम को जोड़ता हूं तो मैं कमांड चलाना चाहता हूं

pacmd set-default-source alsa_input.usb-Microsoft_Microsoft___LifeCam_VX-5500-02-VX5500.analog-mono

लेकिन कमांड को मेरे (डेस्कटॉप चलाने वाले उपयोगकर्ता) के रूप में चलाने की आवश्यकता है , लेकिन udev रूट उपयोगकर्ता के रूप में चलता है - इसलिए जब udev मेरी कमांड चलाता है तो मुझे अपने उपयोगकर्ता को बदलने के लिए इसकी आवश्यकता होती है तब कमांड चलाएं।

इसलिए हमारे पास 2 विकल्प हैं।

  1. त्वरित और गंदा । Udv नियम बनाओ su james -c pacmd set-default-source... यह sooo गलत है मैं भी कमांड टाइप करना समाप्त नहीं कर सकता। यदि आप वेबकैम बदलते हैं तो क्या होगा? यदि आप इसे किसी अन्य उपयोगकर्ता के लिए स्थापित करते हैं तो क्या होगा?

  2. थोड़ा क्लीनर । एक ऐसी स्क्रिप्ट चलाएं जो एक डिफॉल्ट फाइल पढ़ती है जिसमें पल्सेडियो डिवाइस नाम और उसमें आपका उपयोगकर्ता नाम है। यदि आप चाहते हैं कि वे फाइल GitHub पर हों। पहले स्क्रिप्ट /usr/local/bin/webcam-mic। डिफॉल्ट फ़ाइल को /etc/default/webcam-micकेवल 2 शेल वेरिएबल्स को परिभाषित करने की आवश्यकता है, जैसा कि टिप्पणी में बताया गया है। स्क्रिप्ट रखो /usr/local/bin/और इसे निष्पादन योग्य बनाओ। उसके बाद /etc/defaults/अपने उपयोगकर्ता नाम और पल्सेडियो डिवाइस का उपयोग करने के लिए इसे डिफॉल्ट्स फ़ाइल में डालें और संपादित करें।

सौभाग्य!


कोई भी मौका आप उन लिपियों को फिर से अपलोड कर सकते हैं; वे pastebin से गायब हो गए हैं?
ej159

मैंने स्क्रिप्ट को GitHub पर एक जिस्ट में डाल दिया है, और उत्तर को अपडेट किया है।
जेम्स मिशेल

2

टकटक द्वारा समाधान मेरे लिए काम नहीं कर रहा था, यहाँ किसी के लिए अभी भी मेरे पास इस समस्या का समाधान है।

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

काम करने के लिए, पहले यह पावुकंट्रोल स्थापित करने के लिए उपयोगी है। Pavucontrol में, 'कॉन्फ़िगरेशन' टैब खोलें, और निरीक्षण करें कि चीजों की जाँच करने के लिए नीचे दिए गए आदेशों के साथ क्या होता है।

फिर, टर्मिनल में प्रवेश करें:

pacmd

वहां से, दर्ज करें:

list-cards

आउटपुट में, इच्छित USB ऑडियो का इंडेक्स नंबर ढूंढें (मेरे मामले में, यह '1' था)। फिर डिफ़ॉल्ट कार्ड और USB कार्ड दोनों के लिए 'प्रोफाइल' के तहत सूचीबद्ध लाइनों पर एक नज़र डालें। ये pavucontrol में सूचीबद्ध समान हैं, और 'ouput: इनपुट + आउटपुट', 'ऑफ', या 'इनपुट: एनालॉग-मोनो' आदि जैसे कुछ हो सकते हैं। फिर भी pacmd कमांड लाइन में, कमांड set-card-profile <index number> <profile name>को बदलना चाहिए। pavucontrol में सेटिंग्स। हम यहां क्या करना चाहते हैं, केवल डुप्लेक्स से आंतरिक ऑडियो को आउटपुट में स्विच करना है, और यूएसबी को इनपुट करना है।

एक बार उपयुक्त प्रोफ़ाइल मिल जाने के बाद, हम स्टार्टअप के ठीक बाद कुछ सेटिंग्स बदलने के लिए एक स्टार्टअप कमांड बनाना चाहते हैं। स्टार्टअप कमांड बनाने के लिए, डैश खोलें और 'स्टार्टअप एप्लिकेशन' खोजें, फिर 'ऐड' पर क्लिक करें, फिर अपनी पसंद का नाम और नीचे उपयुक्त कमांड दर्ज करें।

परीक्षण और त्रुटि के बाद, मेरा स्टार्ट अप कमांड इस तरह दिख रहा है:

bash -c "sleep 30 && pacmd set-card-profile 0 output:analog-stereo && pacmd set-card-profile 1 off && pacmd set-card-profile 1 input:analog-mono"

स्पष्टीकरण: मैंने पाया कि कमांड 'नींद' आवश्यक थी, इसका मतलब यह है कि कमांड को एक ठहराव के बाद निष्पादित किया जाता है, जिसे मैंने 30 सेकंड में सेट किया है (मुझे लगता है कि यह कम हो सकता है, इसके साथ खेल सकते हैं)। अगला कमांड ('&&' के बाद) केवल आउटपुट के लिए इनपुट + आउटपुट (डुप्लेक्स, जो डिफ़ॉल्ट है) से स्विच करने के लिए डिफ़ॉल्ट (आंतरिक) कार्ड प्रोफाइल प्राप्त करना है। अगला कमांड USB साउंड कार्ड के लिए है (मेरे मामले में, नंबर '1' है)। अंतिम कमांड मोड में 'इनपुट: एनालॉग-मोनो' पर वापस जाने के लिए इसी कार्ड के लिए है

जो काम करता है, उसे खोजने के लिए आपको इन सेटिंग्स के साथ खेलना पड़ सकता है।

अब जब मैं स्टार्टअप करता हूं, तो मेरा यूएसबी माइक्रोफोन 30 सेकंड के बाद उपयोग करने के लिए तैयार होता है, और स्काइप सही माइक्रोफोन का उपयोग करता है।


0

इसे आज़माएं, अपने शीर्ष पैनल पर स्पीकर आइकन पर क्लिक करें, प्राथमिकताएँ क्लिक करें। वहां आप माइक्रोफ़ोन के लिए एक डिफ़ॉल्ट इनपुट विकल्प का चयन कर सकते हैं और संभवत: इसे ठीक करने के लिए कुछ हार्डवेयर कॉन्फ़िगरेशन बदल सकते हैं।


1
आपकी मदद के लिए धन्यवाद, लेकिन मैं अभी यही कर रहा हूं। हालाँकि, मुझे इसे डिफ़ॉल्ट सेटिंग बनाने के लिए कोई भी तरीका नहीं दिख रहा है। हर अब और फिर, मुझे इसे फिर से करना होगा क्योंकि सेटिंग बदल गई होगी।
Gizmoatwork
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.