如何使用ffmpeg在docker容器中记录Firefox等应用程序的音频? 我找到了如何将pulseaudio转发给主持人的示例 - netflix,skype。
当我尝试使用pactl时:
pactl list sources
或者
docker exec -it <container-id> bash
apt-get install pulseaudio
pactl load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/.pulse-socket
我收到了一个错误:
Connection failure: Connection refused
pa_context_connect() failed: Connection refused
这也失败了
ffmpeg -f pulse -i default /tmp/pulse.wav
答案 0 :(得分:1)
您在docker容器中不需要声卡 - 脉冲音频会为您创建一个空的接收器/源,如果您愿意,也可以添加一个回送设备。
然而!如果我使用需要X的脉冲音频库,我会遇到连接错误。我使用了Xvfb。并做了类似的事情:
Xvfb :0 -screen 0 1600x1200x24+32 -ac -fbdir /shared_volume&
pulseaudio --start --disallow-exit -vvv --log-target=newfile:"$LOG_DIR/pulseaudio.log" --daemonize&
我只需要检测播放声音的时间,但是this guide似乎对如何使用环回设备录制内容进行了详细的详细介绍。
答案 1 :(得分:0)
默认情况下,您无法访问容器内的声卡。如果将--privileged
标志传递给docker run,它应该可以正常工作。请注意,这将为容器提供主机的完全权限,您可能希望将其限制为一组功能。
有关详细信息:https://docs.docker.com/reference/run/#runtime-privilege-linux-capabilities-and-lxc-configuration