ffmpeg - 在 docker 容器中录制本地音频

标签 ffmpeg docker alsa pulseaudio

如何使用 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

最佳答案

您不需要在 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似乎对如何使用环回设备来记录内容进行了很好的详细介绍。

关于ffmpeg - 在 docker 容器中录制本地音频,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27637465/

相关文章:

docker - docker 容器中的 openldap ch_calloc 核心转储

android - Android-x86 4.3音频

C:为什么我的库中的全局变量不会更新? (使用 ALSA 库)

nginx - 使用 nginx 和 ffmpeg 的 RaspberryPi HLS 流式传输; v4l2 错误 : ioctl(VIDIOC_STREAMON): Protocol error

ffmpeg 2 pass encoding - 了解输出 .log 文件中的统计信息

docker - docker 容器如何与主机通信?

mysql - docker-compose 应用程序和数据库之间的链接

macos - mac终端ffmpeg批量递归转换保存目录结构

batch-file - 如何通过FFmpeg和批处理脚本转换每个目录中的音频。

c - 为什么会损坏声音?