就上下文而言,我的总体意图是在同一台机器上创建单独的 Firefox 窗口的视频和音频录制。
我正在以编程方式创建两个具有不同用户配置文件的 Firefox 实例。这两个 Firefox 窗口正在播放带音频的视频。我目前正在使用pulseaudio
以下命令(其中USER
是一个唯一字符串)来配置pulseaudio
服务器:
pulseaudio -D --exit-idle-time=-1
pacmd load-module module-virtual-sink sink_name=${USER} # Load a virtual sink as ${USER}
pacmd set-default-sink ${USER} # Set ${USER} as the default sink device
pacmd set-default-source ${USER}.monitor # Set the monitor of the ${USER} sink to be the default source
此命令在每个 Firefox 窗口创建之前运行。使用ffmpeg
编码器,我能够创建只记录生成它们的 Firefox 窗口的视频,但当窗口同时创建时音频会重叠。下面,我编辑了命令ffmpeg
以包含我使用的部分pulse
。
ffmpeg -f pulse -ac 2 -i default
我想知道的是:我是否从根本上误解了这里的某些内容,即,当声音同时从任一窗口播放时,是否可以对 Firefox 窗口进行独立的录音?
如果可能的话,请告诉我是否应该进一步扩展我的实施细节。
答案1
使用 pavucontrol “播放”选项卡,您可以解锁频道,然后将每个 Firefox 实例设置为不同的频道(一个左,一个右)。
然后设置 ffmpeg 选项 -ac 以仅录制左或仅录制右:
ffmpeg -f pulse -ac 1 -i default testleft.mp4
ffmpeg -f pulse -ac 2 -i default testright.mp4
jackd 可以实现更灵活的音频路由,但 Firefox 需要 pulseaudio。
也许你可以使用这带有 jackd 支持的特殊 Firefox。