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

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

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

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

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

1 ответ

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

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

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

Другие вопросы по тегам