मैं Skype पर संगीत चलाने के लिए PulseAudio वर्चुअल ऑडियो स्ट्रीम का उपयोग कैसे कर सकता हूं?


20

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

मैंने इसके बारे में खुले पल्स (गूगल "लुकिंग (शायद) पल्स ऑडियो के साथ उपयोग के लिए) के लिए ट्यूटोरियल का अनुसरण करने की कोशिश की है। इसके बारे में और यहां तक ​​कि कई बार वीडियो देखा। मैंने पहले केवल JACK की कोशिश की यह पता लगाने के लिए कि यह मेरे हेडसेट को नहीं पहचान पाएगा, Logitech G35।

मैं संगीत बजाने में सक्षम हूं, मेरे दोस्त हैं और मैं इसे सुनता हूं लेकिन मैं अपनी आवाज उसी समय नहीं भेज सकता। यह या तो मेरी आवाज है या संगीत है जो मेरे दोस्त सुनते हैं। मैं अपनी आवाज कैसे भेज सकता हूं?

मेरे सेटअप की कुछ तस्वीरें (एक अशक्त आउटपुट का उपयोग करके):

प्लेबैक टैब: यहां छवि विवरण दर्ज करें

रिकॉर्डिंग टैब: यहां छवि विवरण दर्ज करें

जवाबों:


23

कई घंटों की छेड़छाड़ के बाद आखिरकार मैंने इसे हासिल कर लिया!

मैंने दो नल आउटपुट बनाए और पहले के लिए दो लूपबैक बनाए और दूसरे के लिए एक लूपबैक बनाया।

pactl load-module module-null-sink sink_name=Virtual1
pactl load-module module-null-sink sink_name=Virtual2
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

इसके बाद मैंने PulseAudio वॉल्यूम कंट्रोल (pavucontrol) खोला

ये मेरी सेटिंग हैं। मैंने उन्हें दिखाई देने वाले क्रम में टाइप किया। संख्याएँ नीचे से ऊपर जाती हैं।

  • रिकॉर्डिंग टैब:

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

    • अनुप्रयोग:
      • सभी एप्लिकेशन को आपके हेडसेट / स्पीकर पर आउटपुट होना चाहिए।
      • Skype (स्ट्रीम) के माध्यम से आप जो एप्लिकेशन रिकॉर्ड करना / भेजना चाहते हैं, उसे छोड़कर नल आउटपुट पर सेट किया जाना चाहिए। यह सूची में पहला "Null आउटपुट" होगा।
    • आभासी धाराएँ:
      • आपके हेडसेट का लूपबैक: नल आउटपुट 2. यह सूची में दूसरा "नल आउटपुट" होगा।
      • नल आउटपुट के मॉनिटर का लूपबैक (1): आपका हेडसेट।
      • नल आउटपुट के मॉनिटर का लूपबैक (2): नल आउटपुट 2. यह सूची में दूसरा "नल आउटपुट" होगा।

11

बस "अशक्त आउटपुट" के साथ भ्रमित न होने के लिए, बस इस तरह के नाम निर्दिष्ट करें:

pactl load-module module-null-sink sink_name=Virtual1 sink_properties=device.description="NAME HERE (mic+music)"
pactl load-module module-null-sink sink_name=Virtual2 sink_properties=device.description="NAME HERE (only music)"
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual1
pactl load-module module-loopback sink=Virtual2

1

@MikWind द्वारा प्रस्तावित सुधार से भी आगे जाना संभव है, और निर्माण के समय लूपबैक उपकरणों के स्रोतों को कॉन्फ़िगर करना है।

अंत में मुझे लगातार सब कुछ सेटअप करने के लिए एक bash स्क्रिप्ट मिली:

#!/bin/bash

MICROPHONE="alsa_input.pci-0000_00_1b.0.analog-stereo"
SPEAKERS="alsa_output.pci-0000_00_1b.0.analog-stereo"

# Create the null sinks
# virtual1 gets your audio source (mplayer ...) only
# virtual2 gets virtual1 + micro
pactl load-module module-null-sink sink_name=virtual1 sink_properties=device.description="virtual1"
pactl load-module module-null-sink sink_name=virtual2 sink_properties=device.description="virtual2"

# Now create the loopback devices, all arguments are optional and can be configured with pavucontrol
pactl load-module module-loopback source=virtual1.monitor sink=$SPEAKERS
pactl load-module module-loopback source=virtual1.monitor sink=virtual2
pactl load-module module-loopback source=$MICROPHONE sink=virtual2

अपने आप को काम करने के लिए पर्याप्त समझने से पहले कई घंटे संघर्ष किया, मैंने अपने शोध परिणाम (स्क्रिप्ट, प्रलेखन लिंक, स्पष्टीकरण) को एक git रेपो में संकलित किया ।

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

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