Как я могу создать виртуальную звуковую карту pulseaudio в Linux без звукового оборудования?

У меня есть докер под управлением Alpine Linux. Аппаратного аудиоустройства нет вообще.

Мне удалось заставить работать pulaudio, казалось бы, нормально под пользователем.

Я экспериментировал с попыткой заставить PA функционировать как виртуальную звуковую карту с целью потоковой передачи аудио из докера с помощью ffmpeg. Но пока без удачи. И я еще не сталкивался с примерами, в которых не использовался компьютер, на котором отсутствовало аудиооборудование.

Моя главная задача - заставить VICE (x64, эмулятор Commodore 64) правильно использовать "пульс" вместо "фиктивного". Я скомпилировал VICE с "--with-pulse", и "pulse" действительно отображается в меню настроек.

Хотя, когда я переключаюсь на "пульс" вместо "фиктивного", x64 жалуется, что не может его инициализировать, а затем отключает собственный вывод звука.

У pactl и pacmd, похоже, нет проблем с управлением сервером pulseaudio.

Я пробовал следующее (а также модуль-труба)

$ pacmd load-module module-null-sink sink_name=VirtSoundCard sink_properties=device.description=Virtual-Sound-Card

$ pacmd set-default-sink VirtSoundCard

Хотя пока без удачи. Так что надеюсь услышать от кого-нибудь, кто может знать, как это можно сделать, пока я провожу остаток ночи, пытаясь.

"Default.pa", который я использую: atms: https://bitbucket.org/duckhuntpr0/pyvice/src/pyvice_base/src/fs/home/pyvice/default.pa

1 ответ

Решение

Pulseaudio может создавать различные приемники (то, что вы называете "виртуальными звуковыми картами", но приемники предназначены для вывода, источники для ввода, и они также связаны с реальным звуковым оборудованием).

Посмотрите на список модулей, который включает в себя приемники и примеры синтаксиса. У вас есть выбор между использованием RTP / SDP, ROAP.

Вы также можете получить доступ к серверу pulseaudio на хосте через собственный procotol, в этом случае вам не нужно запускать сервер pulseaudio в док-клиенте.

Пока не было необходимости использовать ffmpeg, Если вы действительно хотите использовать ffmpegВы также можете создать нулевой приемник и подключить его источник ffmpeg, Это было бы ближе всего к вашей идее о "виртуальной звуковой карте", но это также наименее эффективная альтернатива.

Наконец, я не совсем понимаю, почему вы должны запускать VICE (эмулятор) внутри образа докера - поскольку это уже эмулятор, вы можете просто запустить его на хосте; нет опасности, что эмулируемая программа C64 сделает что-то плохое.

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