Захватывать аудиовыход с помощью 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
Сам, чтобы получить это право.