सवाल स्काइप जैसे लाइव ऑडियो (वीडियो) वार्तालाप के माध्यम से एक ऑडियो प्लेबैक स्ट्रीम साझा करें


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

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

मुझे यह कैसे करना है? मैं बहुत आभारी रहूंगा!

मेरे प्रश्न का एक हिस्सा यहां दिया गया है: एक इनपुट डिवाइस के रूप में ऑडियो आउटपुट पास / रिकॉर्ड कैसे करें? (लेकिन यह वास्तविक माइक्रोफ़ोन को ओवरलैप किए बिना आउटपुट स्ट्रीम को इनपुट के रूप में सेट करने की अनुमति देता है)


4
2018-02-14 22:03


मूल




जवाब:


  1. आईडी की जांच करें

    $ pactl list short sources
    0   alsa_output.pci-0000_01_00.1.hdmi-stereo.monitor    module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    1   alsa_output.pci-0000_00_1b.0.analog-stereo.monitor  module-alsa-card.c  s16le 2ch 44100Hz   IDLE
    2   alsa_input.pci-0000_00_1b.0.analog-stereo   module-alsa-card.c  s16le 2ch 44100Hz   SUSPENDED
    3   combined.monitor    module-combine-sink.c   s16le 2ch 44100Hz   SUSPENDED
    
    $ pactl list short sinks
    0   alsa_output.pci-0000_01_00.1.hdmi-stereo    module-alsa-card.c  s16le 2ch 44100Hz   RUNNING
    1   alsa_output.pci-0000_00_1b.0.analog-stereo  module-alsa-card.c  s16le 2ch 48000Hz   RUNNING
    2   combined    module-combine-sink.c   s16le 2ch 44100Hz   IDLE
    
  2. 2 वर्चुअल सिंक बनाएं, (Virtual1 माइक + संगीत, Virtual2 संगीत)

    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
    
  3. लूपबैक माइक टू Virtual1

    pactl load-module module-loopback latency_msec=1 sink=Virtual1
    
  4. लूपबैक Virtual2.monitor सेवा मेरे Virtual1

    pactl load-module module-loopback latency_msec=1 sink=Virtual1 source=Virtual2.monitor
    
  5. लूपबैक Virtual2.monitor एनालॉग स्टीरियो के लिए (मेरे मामले में)

    pactl load-module module-loopback latency_msec=1 sink=1 source=Virtual2.monitor
    
  6. फिर खोलें pavucontrol:

    • इनपुट डिवाइस: फॉलबैक सेट करें Virtual1.monitor या सीएलआई का उपयोग कर:

      pactl set-default-source Virtual1.monitor
      
    • आउटपुट डिवाइस: एनालॉग स्टीरियो (मेरे मामले में) या सीएलआई का उपयोग करके डिफ़ॉल्ट सेट करें:

      pactl set-default-sink 1
      
    • रिकॉर्डिंग: से स्काइप की पुष्टि करें Virtual1.monitor या सीएलआई का उपयोग (मैं परिणामों से कुछ लाइनों को हटा दें, avconv उदाहरण के रूप में):

      $ pactl list short clients
      23  protocol-native.c   chromium-browser
      24  protocol-native.c   chromium-browser
      45  protocol-native.c   pavucontrol
      237 protocol-native.c   avconv
      239 protocol-native.c   pactl
      
      $ pactl list short source-outputs
      35  0   45  protocol-native.c   float32le 1ch 25Hz
      36  1   45  protocol-native.c   float32le 1ch 25Hz
      37  2   45  protocol-native.c   float32le 1ch 25Hz
      38  3   45  protocol-native.c   float32le 1ch 25Hz
      39  4   45  protocol-native.c   float32le 1ch 25Hz
      41  0   45  protocol-native.c   float32le 1ch 25Hz
      42  1   45  protocol-native.c   float32le 1ch 25Hz
      52  1   45  protocol-native.c   float32le 1ch 25Hz
      54  1   237 protocol-native.c   s16le 2ch 48000Hz
      
      $ pactl move-source-output 54 Virtual1.monitor
      
    • प्लेबैक: संगीत प्लेयर को सेट करें Virtual2 (दूसरा शून्य डिवाइस), और एनालॉग स्टीरियो में स्काइप की पुष्टि करें। या सीएलआई के माध्यम से (chromium उदाहरण के लिए, पिछले देखें pactl list short clients):

      $ pactl list short sink-inputs
      17  3   24  protocol-native.c   s16le 2ch 44100Hz
      58  0   -   module-combine-sink.c   s16le 2ch 44009Hz
      59  1   -   module-combine-sink.c   s16le 2ch 44100Hz
      
      $ pactl move-sink-input 17 Virtual2       
      

सरल आरेख (/,\ लूपबैक बाएं से दाएं):

            Microphone      ---
                               \                   
            Virtual1.mon    ------  Virtual1    >   Skype
                               /  
    VLC   > Virtual2.mon    ------  Virtual2
                               \
    Skype > AnalogSt.mon    ------  AnalogSt    >   Headset

वापस स्विच करने के लिए (सामान्य उपयोग), देखें पल्सियोडियो लूपबैक ऑडियो आउटपुट डिवाइस को अनलोड करें

  • मॉड्यूल आईडी जांचें:

    pactl list short modules
    
  • एकल मॉड्यूल को अनलोड करें (या एक करके एक)

    pactl unload-module id
    
  • या (डिफ़ॉल्ट मॉड्यूल के साथ पुनः लोड करें):

    pulseaudio -k
    

टिप्पणियाँ:

  • मैंने सिंक का उपयोग किया है id (उदाहरण: 1) लेकिन यदि आप एक स्क्रिप्ट बनाना चाहते हैं तो नामों का उपयोग करना बेहतर है। (मैंने यहां से परहेज किया क्योंकि वे लंबे हैं)।

  • मैं एक्सएफसीई में एक और ऑडियो आउटपुट सिंक पर कैसे स्विच करूं? स्ट्रीम प्राप्त करने के लिए अच्छी स्क्रिप्ट है id नाम से उपयोग करने के लिए move-sink-input तथा move-source-output

  • मैंने उपयोग कर लिया है latency_msec=1 जो उच्च CPU उपयोग के लिए नेतृत्व कर सकते हैं। ऑडियो वार्तालाप में, आपको संगीत और माइक्रोफ़ोन के बीच देरी की परवाह नहीं है। आप इसे हटा सकते हैं या इसे बढ़ा सकते हैं। लेकिन मिश्रण रिकॉर्डिंग के लिए, आप संगीत और माइक्रोफोन के बीच बहुत छोटी देरी की तलाश कर सकते हैं।

    जैसा कि मैंने इसका परीक्षण किया है, देरी एक सेकंड से करीब है।

  • मुझे लगता है कि जैक टूल्स के साथ क्या चल रहा है यह जानने में मुश्किल होती है। ग्राफिक मानचित्र के साथ यह स्पष्ट होगा:

enter image description here


4
2018-02-15 00:44



उत्तर के लिए बड़ा धन्यवाद। लेकिन मुझे समस्याएं हैं: सबसे पहले pavucontrol में यह केवल "नल आउटपुट की निगरानी" कहता है। दूसरा, जिन लोगों के साथ मैं चैट कर रहा हूं, उनकी अपनी गूंज सुनने के बारे में शिकायत करें। क्या मैं ध्वनि पुनर्निर्देशन के लिए स्काइप के आउटपुट को ब्लैकलिस्ट कर सकता हूं? - GEO
ठीक है, माफ करना, मुझे याद आती है, मैंने जवाब अपडेट किया है, अब यह सिंक नामों को पाव्यूकोन्ट्रोल में विवरण के रूप में दिखाता है। pulseaudio -k सभी परिवर्तन रीसेट करने और शुरू करने के लिए। यह अब आसान होना चाहिए - user.dz
डिफ़ॉल्ट रूप से यह माइक्रोफोन को लूपबैक करता है, लेकिन आप इसका परीक्षण कर सकते हैं।pactl load-module module-loopback source=2 latency_msec=1 sink=1, आपको हेडसेट में माइक सुनना चाहिए। फिर pactl unload-module 30 (30 आईडी है जब आप लोड-मॉड्यूल करते हैं। - user.dz
स्नीथसर: अस्पष्ट होने के लिए खेद है: जैसा कि आपने निर्देश दिया था, सब कुछ धन्यवाद, लेकिन मैं कमांड लाइन के साथ पैव्यूकंट्रोल में चरणों को कैसे बदल सकता हूं? - GEO
स्नीथशेर: मैंने कभी नहीं कहा, मैंने कहा pactl unload-module module-loopback - GEO