XXL*_*rio 5 selenium ffmpeg pulseaudio docker
我正在尝试使用 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
Run Code Online (Sandbox Code Playgroud)
这适用于我的主机操作系统,但是当尝试在容器中启动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
Run Code Online (Sandbox Code Playgroud)
这似乎与名为 dbus 的免费桌面服务有关。我尝试安装它并启动它的守护进程,但我似乎无法让它正常工作。我找不到关于如何从这里继续进行的太多信息。我对pulseaudio 缺少什么?也许有一种更简单的方法可以在容器内录制系统音频?
我的目标不是从主机操作系统录制它,而是在浏览器内播放音频并将其全部录制在同一个容器内。
这里的以下解决方案帮助了我。
在启动 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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4667 次 |
| 最近记录: |