Скрипт для записи звука программы на микрофон

Я хочу сделать сценарий оболочки для записи звука программы и направить его как запись микрофона в Linux.

Например, я слушаю музыку на YouTube и хочу, чтобы эта музыка отправлялась в мой разговор по скайпу, а не в мой голос.

И последнее, но не менее важное: я знаю, как это сделать с помощью pavucontrol, мне нужно перейти в «Запись» и переключить «Запись потока из», но я хочу сделать то же самое из командной строки, а не с помощью графический интерфейс

Я пробовал это:

pactl load-module module-loopback source=1 sink=2

(где 1 — звук моего рабочего стола, 2 — аналоговый стереофонический дуплекс (но он также включает обычный звук поверх моего входа….), и он не работает должным образом. Я не знаю, что делать.

Спасибо


person sidney    schedule 07.10.2013    source источник
comment
также спросил здесь: superuser.com/q/655449/4714   -  person glenn jackman    schedule 07.10.2013
comment
Я максимизирую свои шансы получить ответ, потому что мой вопрос совместим с этими двумя сайтами. Я также спрашивал на форумах Ubuntu и в IRC-канале pulseaudio. Нет ответа. Спасибо за ваш конструктивный комментарий.   -  person sidney    schedule 07.10.2013
comment
Я не наказываю тебя. Я предупреждаю читателей о вопросе, что они могут захотеть поискать ответы на другом сайте.   -  person glenn jackman    schedule 07.10.2013
comment
ладно, тогда спасибо, как-то запутался в вашем комментарии   -  person sidney    schedule 07.10.2013


Ответы (1)


module-loopback можно использовать только для замыкания источников на стоки. (т.е. микрофон к динамику.) Доступ к переключателю, который вы нашли в pavucontrol, можно получить из командной строки через

 pactl move-source-output <source output> <source>

Вы можете получить исходный идентификатор вывода через

pactl list source-outputs

во время записи программы и список источников, использующих

pactl list sources

Вы также можете указать источник по имени, например. combined.monitor.

Я только что попробовал это с mplayer и audacity и заметил два подводных камня:

  • Если монитор стерео, а источник по умолчанию — моно, приложениям может не понравиться перенаправление. Вы можете использовать module-remap-source, чтобы обойти это: Переназначьте монитор на один моноканал и переместите выход источника на вновь созданный переназначенный источник.
  • Возможно, вам придется включить устройство мониторинга в pavucontrol, прежде чем это сработает. Из командной строки это можно сделать с помощью pactl set-source-mute. (См. man pactl)
person Phillip    schedule 24.03.2014
comment
Потрясающий ! Большое спасибо, я искал этот ответ уже десять лет :)! - person sidney; 25.03.2014
comment
@sidney Я видел, как люди используют Jack для микширования/перенаправления звука; ср., например, это или это. - person Geremia; 29.12.2016