Удосконалення відповіді Waschtl на цю тему, щоб ви могли СЛУХАТИ ТА ЗАПИСАТИ звук програми:
Спочатку ми шукаємо вихід за замовчуванням і вкладаємо його ім'я $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 ...
команду відповіді Waschtl (із записом n-play замість пари ), але GUI pavucontrol
є більш простим (і чудовим для перевірки / усунення несправностей):
$ sudo apt-get install pavucontrol
$ pavucontrol &
Потім ми відтворюємо звук у додатку, який ми хочемо записати. На pavucontrol
Playbackвкладці ми вибираємо у спадному списку додатків: "Запис і відтворення" .
Нарешті, нам добре одночасно записувати та слухати! ( кульгавий приклад mp3, запустіть на передньому плані)
$ 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, щоб повернути його до комбінованого інтерфейсу.
- Щоб мати можливість слухати звук з декількох "реальних" інтерфейсів (наприклад, навушники, вихід HDMI та ін.), Ми повинні включати всі "реальні" виходи, які ми можемо використовувати для прослуховування, як записуючі раби на записі n-play , як:
pactl load-module module-combine-sink sink_name=record-n-play slaves=real-output-1,real-output-2
.
EDIT: Остерігайтеся, оскільки Ubuntu 18 (можливо, теж 17) комбінована раковина, як правило, стає пристроєм виводу системи за замовчуванням замість реального пристрою виводу. Тож коли ви змінюєте гучність за допомогою значка звуку в системному треї, це впливає на звук запису. Обхід: Після створення комбінованої раковини відкрийте pavucontrol
на вкладці Вихід. Виберіть "Перегляд: віртуальні пристрої виводу" і скиньте гучність звуку комбінованої раковини до 100%. Потім виберіть "Переглянути: пристрої виведення обладнання" та натисніть зелений значок "Визначити як альтернативу" на реальному пристрої виводу.