火狐浏览器允许多个画中画窗口需将 about:config 中 media.videocontrols.picture-in-picture.allow-multiple 设为 true,再通过失焦首个视频、在独立标签页手动点击后触发第二个 pip;若仍冲突,可用多用户配置文件隔离运行。

火狐浏览器默认只允许一个画中画窗口,想同时播放多个视频必须手动解除限制,核心是改 media.videocontrols.picture-in-picture.allow-multiple 这个配置项为 true,其他方法只是辅助或绕行方案。
修改 about:config 允许多个 PiP 实例
这是最直接、最底层的解法。Firefox 89+ 版本起引入该开关,但默认为 false,导致新触发的 PiP 总是覆盖旧窗口。
- 在地址栏输入
about:config,点“接受风险并继续” - 搜索
media.videocontrols.picture-in-picture.allow-multiple - 双击该项,把值从
false改成true - 无需重启,立即生效;但已存在的单个 PiP 窗口不会自动变多,需重新触发
注意:这个设置只控制“是否允许多个并发 PiP”,不解决网站禁用 API 或 video 元素未正确暴露的问题。
确保多个 PiP 窗口能真正并存的操作要点
即使配置已开启,仍可能因操作顺序或焦点问题导致第二个 PiP 覆盖第一个——本质是浏览器误判为“同一上下文请求”。
- 第一个视频进入 PiP 后,**不要让它保持聚焦状态**:点击其他标签页或桌面空白处,让其失去 DOM 焦点
- 第二个视频必须在**独立标签页**中播放,且播放后**手动点击一次视频区域**(确保
video元素获得焦点) - 再用快捷键
Ctrl + Shift + P或右键菜单触发,而不是靠页面控件按钮(有些网站按钮会复用同一 PiP 实例) - 如果某网站(如部分 Bilibili 嵌入页)始终只出一个窗口,可能是它调用了
document.exitPictureInPicture()清理旧实例,这时得换用不同用户配置文件启动的独立 Firefox 实例
用多用户配置文件启动隔离的 Firefox 实例
当 about:config 设置无效,或你怀疑扩展、Cookie、媒体策略冲突时,这是最彻底的隔离方式——每个实例拥有完全独立的存储与运行环境。
- 访问
about:profiles,创建两个新配置文件,例如命名为PiP-A和PiP-B - 关闭所有 Firefox 窗口
- Windows 下用命令行启动:
firefox.exe -P "PiP-A" -no-remote;macOS 下:/Applications/Firefox.app/Contents/MacOS/firefox -P "PiP-A" -no-remote - 重复启动另一个实例,用
PiP-B配置名;两个窗口互不感知,各自可开一个 PiP,等效于两个物理浏览器
缺点是内存占用翻倍,且不能跨实例共享书签或登录态——但它能绕过几乎所有策略和脚本干扰,适合长期多源监看场景。
用 JavaScript 手动调用 requestPictureInPicture() 创建 PiP
适用于网页本身没提供 PiP 按钮、或你想精确控制哪个 video 元素进 PiP 的情况,比如 iframe 内嵌视频或自定义播放器。
- 打开开发者工具(
F12),切换到 Console 标签页 - 执行:
document.querySelector('video').requestPictureInPicture()(替换选择器以匹配目标 video) - 若报错
NotAllowedError,说明当前上下文不满足触发条件:视频未播放、未静音、或未获得用户手势(如 click)激活 - 可在视频的
click事件回调里调用,确保满足“用户交互触发”要求
这种方式不依赖页面 UI,但每次都要手动执行;若需批量处理,可写临时 userscript 注入,不过要注意跨域 iframe 的限制。
真正难的不是“怎么开多个”,而是让多个 PiP 窗口稳定共存而不互相抢占焦点或被系统级策略中断——尤其是当其中一个视频暂停、缓冲或跳转时,Firefox 可能悄悄销毁其 PiP 实例。建议优先用 about:config + 正确操作顺序,复杂场景再上多配置文件方案。











