我正在尝试使用 Selenium 设置一个 Docker 容器,该容器使用 ffmpeg 录制带有系统音频的浏览器。我使用 Xvfb 处理视频。不幸的是,在音频方面,这似乎更加棘手。
我想我应该在容器内设置一个虚拟的脉冲音频接收器,这将允许我记录它的监视器:
pacmd load-module module-null-sink sink_name=loopback
pacmd set-default-sink loopback
ffmpeg -f pulse -i loopback.monitor test.wav
这适用于我的主机操作系统,但是当尝试在容器中启动pulseaudio守护进程时,它失败并显示以下消息:
E: [pulseaudio] module-console-kit.c: Unable to contact D-Bus system bus: org.freedesktop.DBus.Error.FileNotFound: Failed to connect to socket /var/run/dbus/system_bus_socket: No such file or directory
这似乎与名为 dbus 的免费桌面服务有关。我尝试安装它并启动它的守护进程,但我似乎无法让它正常工作。
我找不到关于如何从这里继续进行的太多信息。我对pulseaudio 缺少什么?也许有一种更简单的方法可以在容器内录制系统音频?
我的目标不是从主机操作系统录制它,而是在浏览器内播放音频并将其全部录制在同一个容器内。
以下解决方案来自here https://georgik.rocks/how-to-start-d-bus-in-docker-container/帮助过我。
在启动 PulseAudio 之前,以 root 身份运行以下命令:
mkdir -p /var/run/dbus
dbus-uuidgen > /var/lib/dbus/machine-id
dbus-daemon --config-file=/usr/share/dbus-1/system.conf --print-address
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)