इस थ्रेड के वास्कट उत्तर को बेहतर बनाना ताकि आप एप्लिकेशन को ध्वनि और रिकॉर्ड कर सकें।
सबसे पहले, हम अपने डिफ़ॉल्ट आउटपुट की तलाश करते हैं और उसका सिंक नाम इसमें डालते हैं $DEFAULT_OUTPUT:
$ pacmd list-sinks | grep -A1 "* index"
* index: 1
name: <alsa_output.pci-0000_00_1b.0.analog-stereo>
$ DEFAULT_OUTPUT=$(pacmd list-sinks | grep -A1 "* index" | grep -oP "<\K[^ >]+")
$ echo $DEFAULT_OUTPUT
alsa_output.pci-0000_00_1b.0.analog-stereo
फिर, हम एक संयुक्त सिंक बनाते हैं जिसमें केवल एक दास होता है: $ DEFAULT_OUTPUT । एप्लिकेशन (स्रोत) द्वारा उत्पन्न ध्वनि को दास सिंक (यानी वास्तविक आउटपुट) के लिए भेजा जाएगा, और हम इसे रिकॉर्ड भी करेंगे। यह एक नल सिंक से अलग है जहां स्रोत ध्वनि को अग्रेषित नहीं किया जाता है।
$ pactl load-module module-combine-sink \
sink_name=record-n-play slaves=$DEFAULT_OUTPUT \
sink_properties=device.description="Record-and-Play"
sink_properties यदि आप वर्णन नाम में रिक्त स्थान का उपयोग करते हैं तो वैकल्पिक और बग हो सकता है।
फिर, हम वाशट्ल आंसर कीpactl move-sink-input ... कमांड का उपयोग कर सकते हैं ( स्टीम के बजाय रिकॉर्ड-एन-प्ले के साथ ) लेकिन जीयूआई अधिक सरल है (और जाँच / समस्या निवारण के लिए महान है):pavucontrol
$ sudo apt-get install pavucontrol
$ pavucontrol &
फिर, हम उस ऐप में कुछ ध्वनि खेलते हैं जिसे हम रिकॉर्ड करना चाहते हैं। में pavucontrol Playbackटैब, हम एप्लिकेशन ड्रॉपडाउन सूची में चयन करें: "रिकार्ड और प्ले" ।
अंत में, हम एक ही समय में रिकॉर्ड करने और सुनने के लिए अच्छे हैं! ( लंगड़ा एमपी उदाहरण, अग्रभूमि में चला)
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3"
या हम पृष्ठभूमि में रिकॉर्ड कर सकते हैं और किसी भी समय बंद कर सकते हैं:
$ parec --format=s16le -d record-n-play.monitor | \
lame -r --quiet -q 3 --lowpass 17 --abr 192 - "temp.mp3" \
> /dev/null &1>/dev/null
$ killall -q parec lame
ध्यान दें:
- सब कुछ अनसुना करने या प्रक्रिया को पुन: प्रयास करने के लिए: इस उत्तर का उपयोग करके सिंक हटाएं या रीसेट करें ।
pulseaudio -kसत्र की चूक के लिए सब कुछ रीसेट करने के लिए महान काम करता है।
- यदि हम सिस्टम साउंड सेटिंग्स में डिफ़ॉल्ट आउटपुट को बदलते हैं, तो कस्टम ऐप प्लेबैक सेटिंग ओवरराइट हो जाएगी और हमें संयुक्त इंटरफ़ेस पर वापस सेट करने के लिए pavucontrol में वापस जाना होगा।
- कई "वास्तविक" इंटरफेस (जैसे हेडफ़ोन, एचडीएमआई आउटपुट, आदि ...) से ध्वनि को सुनने में सक्षम होने के लिए, हमें सभी "वास्तविक" आउटपुट शामिल करने चाहिए जो हम सुनने के लिए उपयोग कर सकते हैं, रिकॉर्ड-एन-प्ले स्लेक दास के रूप में , जैसे
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2:।
संपादित करें: उबंटू 18 (शायद 17 भी) के बाद से, संयुक्त सिंक वास्तविक आउटपुट डिवाइस के बजाय डिफ़ॉल्ट सिस्टम आउटपुट डिवाइस बन जाता है। इसलिए जब आप सिस्टम ट्रे में ध्वनि आइकन का उपयोग करके वॉल्यूम बदलते हैं तो यह आपके रिकॉर्ड ध्वनि को प्रभावित करता है। समाधान: संयुक्त सिंक बनाने के बाद, pavucontrolआउटपुट टैब में खोलें । "दृश्य: वर्चुअल आउटपुट डिवाइस" चुनें और संयुक्त सिंक की ध्वनि मात्रा को 100% पर रीसेट करें। फिर असली आउटपुट डिवाइस पर "व्यू: हार्डवेयर आउटपुट डिवाइसेस" चुनें और हरे रंग के आइकन "वैकल्पिक रूप में परिभाषित करें" को दबाएं।