Захватывать аудиовыход с помощью alsa или similiar

864
user685336

Я хочу направить (клонировать) свой аудиовыход (все звуки, выходящие из системы через hdmi) на виртуальное устройство ввода, чтобы я мог захватить выход (виртуальный аудиокабель). Как сказано, вывод hdmi, и я использую коди для воспроизведения.

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

Я знаю, что это возможно с Джеком, но не смог найти решение. Кроме того, я знаю, что это может быть возможно с «простой» alsa и интерфейсом обратной связи, и, наконец, это может быть возможно с pulseaudio, но все так сильно путает, особенно с hdmi.

Прямо сейчас я использую Alsa.

2

1 ответ на вопрос

1
dirkt

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

В Pulseaudio каждый приемник (например, ваш выход HDMI) имеет соответствующий источник монитора (то же имя, но с .monitorконцом). Вам просто нужно записать звук из этого источника, используя любое приложение, которое вам нравится, и вы можете захватить вывод, который покидает вашу систему через этот приемник. Вы можете указать приложения на конкретные источники либо с помощью pavucontrolутилиты, либо с помощью переключателей командной строки и т. Д. Приложения, например arecord -d your-hdmi-device.monitor.

Для ALSA вы должны использовать snd-aloopмодуль ядра, настроить виртуальную звуковую карту, продублировать ваш вывод звука HDMI с помощью dshareплагина, направить его на виртуальную звуковую карту, а затем выполнить запись с этой звуковой карты. Это намного сложнее, чем решение Pulseaudio, и мне нужно было бы закончить с .asoundrcсамим собой, чтобы получить это право.

У вас есть пример, как я могу расширить свою настройку на пульс? Кроме того, я забыл сказать, что я использую PyAudio для захвата. user685336 7 лет назад 0
Обычно все дистрибутивы предлагают поддержку Pulseaudio из коробки; просто установите нужные пакеты. Существует уровень совместимости ALSA, поэтому любое приложение, использующее ALSA, также будет работать. dirkt 7 лет назад 0
PyAudio кажется связыванием Python для PortAudio. PortAudio не поддерживает Pulseaudio по умолчанию, но для этого есть [программное обеспечение] (https://github.com/bkgood/portaudio-pulseaudio). Я никогда не использовал ни PyAudio, ни PortAudio, поэтому не могу сказать, насколько хорошо это работает. Для чего вы используете PyAudio (то есть чего вы хотите достичь в конце)? Будут ли работать привязки Python для Pulseaudio или ALSA? dirkt 7 лет назад 0
Это для https://github.com/scottlawsonbc/audio-reactive-led-strip, который использует PyAudio для чтения аудиопотока. Я проверю ссылку, которую вы предоставили. Спасибо. user685336 7 лет назад 0
@ user685336 Вы нашли решение, работающее с реактивной полосой? Я имею дело с той же проблемой в данный момент. Ben Longo 6 лет назад 0

Похожие вопросы