如何在没有音频硬件的 Linux 上创建虚拟 pulseaudio 声卡?

如何在没有音频硬件的 Linux 上创建虚拟 pulseaudio 声卡?

我有一个运行 Alpine Linux 的 Docker。根本没有硬件音频设备。

我已经设法让 pulseaudio 在用户下顺利运行。

我一直在尝试让 PA 充当虚拟声卡,目的是使用 ffmpeg 从 docker 流式传输音频。但到目前为止还没有成功。而且我还没有遇到不涉及缺少音频硬件的机器的示例。

我主要关心的是获得 VICE(x64,Commodore 64 模拟器)正确利用'脉冲'而不是 'dummy'。我使用 '--with-pulse' 编译了 VICE,并且'脉冲'确实出现在设置菜单中。

但是,当我切换到“脉冲”而不是“虚拟”时,x64 会抱怨它无法初始化它,然后禁用它自己的声音输出。

帕克特尔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':https://bitbucket.org/duckhuntpr0/pyvice/src/pyvice_base/src/fs/home/pyvice/default.pa

答案1

Pulseaudio 可以创建各种接收器(即所谓的“虚拟声卡”,但用于输出,来源用于输入,并且它们也与真实声音硬件相关联)。

看看模块列表其中包括接收器和语法示例。您可以选择使用同步/同步协议反渗透净水器

您还可以通过本机协议访问主机上的 pulseaudio 服务器,在这种情况下,您不需要在 docker 客户端中运行 pulseaudio 服务器。

目前还不需要使用ffmpeg。如果你真的想使用ffmpeg,你也可以创建一个零汇,并将其监听源连接到ffmpeg。这最接近您所说的“虚拟声卡”,但也是效率最低的替代方案。

最后,我不太明白为什么你必须在 docker 镜像中运行 VICE(一个模拟器)——因为它已经是一个模拟器,你可以在主机上运行它;模拟的 C64 程序不会做坏事。

相关内容