среда, 9 августа 2017 г.

Запись многих каналов с pulseaudio

Так как skype на линухе умер окончательно, и пользоваться им больше нельзя, и пришлось съехать на веб версию в браузере и альтернативные звонилки, то и бесшовный способ записи разговоров с помощью skype-recorder больше невозможен. Приходится страдать.

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

Понятия не имею что именно с ними не так, и почему они не работаю, но то что для моей системы оказались непригодны - факт медицинский.
Промучался изряднос  разными combine-sink, так и не завелось.

Решил записать на будущее тот способ что для меня работает.
Просто оказалось невероятно.

Итак, в чём собственно идея. Я не хочу слышать себя в наушниках, поэтому метод через loopback модуль отправляющий собственный звук в наушники не подходит.

Нужно сделать новый фейковый sink, и туда отправить и выход на наушники и вход с микрофона.

Делается так:
1. Создадим null-sink
pactl load-module module-null-sink sink_name='foo'

2. Создадим два loopback
pactl load-module module-loopback
pactl load-module module-loopback

3. Назначим источники для loopback

4. Откроем pavucontrol и отправим оба loopback на новый null поток
5. Запустим запись, например в audacity и назначим ей входной поток этот самый null

Удивительным образом прекрасно работает.

Научится бы ещё писать в разные каналы с разных источников, но я понимаю в выбранном мной методе - невозможно.

Если знаете метод лучше - пожалуйста делитесь.