我有一个运行 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 程序不会做坏事。