我经常使用笔记本电脑进行视频会议,但几天前我的网络摄像头在 Firefox 中不知为何停止工作了。我认为我在系统权限问题上单击了“不允许”,但我不确定。
有人能帮助我让我的网络摄像头恢复正常工作,而不需要我重新安装整个系统吗?
我尝试做的第一件事就是重新启动,这是传统做法。
环境如下:
- 笔记本电脑配有标准 UVC 网络摄像头。
- Fedora Linux 41、Gnome 47、Pipewire 1.2.7-1.fc41 均已更新至当前版本。
- RPM 版本的 Firefox,当前版本为 133.0.3。
有效的方法如下:
- 网络摄像头在其他软件(非 Google 的 Chromium、OBS、Gnome 的“相机”程序)上运行良好。
- 即使在 Firefox 中,我仍然可以传输我的屏幕内容。
- 我可以从 Mozilla 的 ftp解压Firefox 版本,运行二进制文件并正常使用我的网络摄像头。
以下是曾经有效的方法:
- 大约五天前,网络摄像头还可以在 Firefox 中使用,我一直将它与 BigBlueButton 和其他基于网络的工具一起使用。
以下是我已在 Firefox 中检查过的内容:
- 这在任何域名上都不起作用,它不是简单的“我拒绝了那个网站”。
- 我仔细检查了 Firefox 的相机权限设置,包括域和 中的所有复选框
about:settings#privacy
。网站列表现在为空,并且设置为允许请求权限。 - 尝试在浏览器的 JavaScript 控制台中获取有关视频相关媒体设备的任何信息都会立即失败。同时,获取音频设备会导致标准的“浏览器请求权限”,并最终导致该类型媒体的预期结果。
- 我尝试将设置
about:config
设置media.webrtc.camera.allow-pipewire
为false
,正如最近的类似讨论所建议的那样。该讨论并不完全适用,因为它们指的是虚拟 v4l2-loopback 摄像头,而不是实际的 UVC 设备。 - 我用 创建了一个新的空配置文件
firefox -no-remote -ProfileManager
,在该配置文件上,行为仍然相同。
以下是我在系统其余部分已经检查过的内容:
- Firefox 是通过 rpm 安装的,而不是通过 flatpak 安装
- 设置 -> 隐私 -> 相机的设置方式一般允许访问,也特别允许 Firefox 访问相机。我还断断续续地切换此按钮,以达到良好的效果。
- 我查看了所有涉及 ID 的 pipewire 客户端、设备和源,其中
wpctl status
和wpctl inspect $id
。那些包含 的客户端pipewire.access
、设备和源显示为unrestricted
。 - 我尝试阅读
dbus-monitor --session
,但是日志的数量让我不知所措,我真的不知道要在其中寻找什么。 - 我尝试阅读
pw-mon
,但没有什么特别突出的地方。 - 我通过查看检查了 dbus 策略
~/.local/share/dbus-1/services/
,但我的用户甚至没有那个特定的目录。 dbus-send --print-reply --dest=org.freedesktop.portal.Desktop /org/freedesktop/portal/desktop org.freedesktop.DBus.Properties.Get string:"org.freedesktop.portal.Camera" string:"IsCameraPresent"
我向 dbus 询问了它返回时的相机variant boolean true
。- 我向 dbus 询问了 的值
org.freedesktop.impl.portal.PermissionStore.Lookup
,它返回的是({'': ['no'], 'org.gnome.Snapshot': ['yes'], 'org.mozilla.firefox': ['yes']}, <byte 0x00>)
。 - 我询问了 SELinux 是否有任何特殊情况
sudo semanage boolean --list | grep mozilla
,但所有设置都保持默认状态。