我想同时录制两个实时视频流(浏览器中的 rtmp flash 视频),为此我运行了两个 SimpleScreenRecorder 实例。每个实例记录屏幕上的不同区域。唯一的问题是声音。我使用单独的浏览器,因此每个浏览器在 pulseaudio 中都有自己的音频播放。
我如何分离播放,以便每个播放流都有单独的 pulseaudio 监视器?我只有“内置音频模拟立体声监视器”,但我需要两个监视器,一个用于 Firefox,一个用于 Chrome。
答案1
我已经使用 Jack 音频服务器完成了此操作:
- 安装 jackd 和 qjackctl:当被问及是否具有实时访问权限时回答“是”,然后重新启动以应用此访问权限。
- 使用以下 3 个命令暂时停止 pulseaudio:
mkdir ~/.pulse
echo autospawn=no > ~/.pulse/client.conf
pulseaudio -k
(稍后,要恢复到 pulseaudio 正常模式,请echo autospawn=yes > ~/.pulse/client.conf
运行pulseaudio
)
- 在你的主目录中创建 .asoundrc(这一点很重要),包含:
pcm.!default { 类型插头从属 { pcm "jack" } }
pcm.jack { 类型 jack
播放端口 { 0 系统:播放 1 系统:播放 2 }
捕获端口 { 0 alsa_pcm:捕获 1 alsa_pcm:捕获 2 } }ctl.mixer0 { 类型硬件卡 1 }
从声音菜单运行 qjackctl,单击“开始”,单击“连接”以显示“连接”窗口。
启动 2 个不同的 SimpleScreenRecorder,选择“jack”作为音频,启动预览模式以在两者中显示 vumeter
- 启动 Firefox 和 Chrome,在每个浏览器中播放视频
- 转到 qjackctl“连接”窗口,从左侧第一个“jack-alsa-xxx”拖放到右侧第一个“simplescreenrecorder”:您将看到一个连接显示,并且 vumeter 将在第一个 simplescreenrecorder 中移动。对第二个“jack-alsa”和“simplescreenrecorder”执行相同操作
- 现在您可以在每个 simplescreenrecorder 中录制来自每个浏览器的音频
可能是 Firefox 与 html5 和 youtube 中的 jack 音频服务器有问题,我只用 flashplayer 测试过。