请求与实际并排对比
浏览器把分辨率当作愿望,而不是命令。本页面会请求你选择的尺寸,并根据轨道设置和画面帧本身报告摄像头最终采用的尺寸,悄悄降级的情况一目了然。
检查摄像头是否正常工作,看看它实际能输出什么:实时预览、浏览器协商出的分辨率与你请求的分辨率并排对比、实测帧率、光线检查,以及可以保存的快照。
在你点击“启动摄像头”之前不会打开任何设备。视频只留在当前标签页中,绝不会被录制或上传。
点击“启动摄像头”,浏览器会请求权限。当前已选择 1080p 预设;你可以随时更改它或更换摄像头。
像自拍视角一样镜像显示,所以你的右手出现在右边。视频通话的另一端看到的是非镜像画面;除非你另行选择,快照也会以非镜像方式保存。
在摄像头运行时更改其中任何一项,视频流都会以新设置重新启动。
浏览器把尺寸当作一种愿望。启动摄像头,看看这个尺寸是被满足了,还是被悄悄协商降级了。
每一帧到达时都会打上时间戳,统计窗口为滚动的两秒。
启动摄像头,测量它实际输出的帧率,而不是它报告的帧率。
每秒两次,对画面的 64 × 36 缩小副本求平均亮度。
启动摄像头,检查画面是太暗、偏暗、光线良好还是曝光过度。
启动摄像头,读取它向浏览器标称的尺寸和帧率范围。
以实际输出的完整分辨率拍摄,保存在当前标签页中,只有在你下载时才会存到设备上。
启动摄像头,然后点击“拍摄快照”。画面会以实际输出的分辨率捕获,并保留在此设备上,直到你下载它。
这里的每个数据都是此浏览器与这台摄像头商定的结果。摄像头自带的应用,或使用其他驱动路径的原生应用,可能获得比浏览器更高的分辨率或帧率。
USB 2.0 端口、集线器和过长的线缆会限制能通过的视频量,弱光下的自动曝光会延长每一帧。帧率低于报告值时,通常是其中某个原因造成的,而不是摄像头坏了。
不会录制或上传任何内容,页面也不会发出任何包含你视频的网络请求。快照会保留在当前标签页中,直到你下载它,离开页面时就会被丢弃。
帧率根据 2 秒滚动窗口内的帧时间戳测量,需要 8 个帧间隔才会显示数值;对于慢速摄像头,则需要跨度达 1.5 秒的 2 个帧间隔。出现 1 秒或更长的间隙时,窗口会重新开始,数值会被清除,直到画面帧恢复。亮度是画面 64 × 36 缩小副本的 Rec. 709 平均亮度值,每 500 ms 读取一次。点击“停止摄像头”、切换摄像头或尺寸,或离开页面,都会停止所有轨道,正是这一步让摄像头指示灯熄灭。
getUserMedia 并不会按某个尺寸打开摄像头,而是把一份愿望清单交给浏览器。浏览器将这份清单与摄像头提供的模式进行比较,选出能运行的最接近的一种,然后启动视频流,却不会说明放弃了什么。本页面会请求你选择的尺寸,从轨道设置和画面帧本身读回协商结果,为每一帧的到达计时,并每秒两次采样画面亮度。这一切都在当前标签页中完成。
点击“启动摄像头”,并在浏览器询问时选择“允许”。在你点击之前不会打开任何设备;如果之前访问被阻止过,页面会指出需要修改的设置,包括浏览器中的设置以及 macOS 或 Windows 的隐私设置。
从列表中选择内置摄像头或 USB 摄像头,再选择一个分辨率预设。预览旁边的面板会并排显示你请求的尺寸和摄像头实际输出的尺寸,后者往往更小。
查看实测帧率、帧抖动和光线判定。拍摄快照,以实际输出的完整分辨率保存一张 PNG 或 JPEG 静态画面,然后点击“停止摄像头”,让指示灯熄灭。
浏览器把分辨率当作愿望,而不是命令。本页面会请求你选择的尺寸,并根据轨道设置和画面帧本身报告摄像头最终采用的尺寸,悄悄降级的情况一目了然。
每一帧到达时都会通过 requestVideoFrameCallback 打上时间戳,并据此算出两秒滚动帧率、平均帧间隔、抖动,以及相对于摄像头报告帧率的丢帧估计。
每秒两次,对画面的 64 × 36 缩小副本求平均亮度。判定结果分为太暗、偏暗、光线良好和曝光过度,建议还会把光线不足与它造成的帧率损失联系起来。
获得访问权限后,内置摄像头、USB 摄像头、采集卡和虚拟摄像头都会按名称列出,插入或拔出摄像头时列表会自动刷新。
默认显示镜像预览,就像自拍视角;三分网格帮你为脸部构图;全屏视图便于近距离检查对焦和噪点。
静态画面以实际输出的分辨率拍摄,并保存在当前标签页中,直到你下载为 PNG 或 JPEG。默认保存为非镜像,也就是别人看到你的样子,也可以选择保存为镜像。
启动测试并阅读它给出的提示,因为每种故障的解决方法都不同。“摄像头访问被阻止”表示浏览器或操作系统拒绝了访问,解决方法在地址栏或隐私设置中。“未找到摄像头”表示它没有连接、在设备管理器或系统设置中被禁用,或者被硬件按键关闭了。“摄像头无法启动”表示有其他应用正在占用它。如果预览打开了却一片漆黑,请检查镜头上是否有滑动式隐私遮板;镜头被遮住时,光线读数会接近零。
很多摄像头同一时间只能被一个程序打开,在 Windows 上尤其如此。Zoom、Microsoft Teams、Google Meet 标签页、OBS、FaceTime 以及厂商自带的摄像头工具都可能占用它,有时窗口关闭后仍在系统托盘中运行。请彻底退出这些程序,关闭其他用过摄像头的标签页,然后点击“重试”。拔下 USB 摄像头再重新连接,也能解除卡住的驱动程序。
在 Chrome 和 Edge 中,点击地址栏左侧的网站设置图标,将“摄像头”设为“允许”,然后刷新页面。在 Mac 上的 Safari 中,打开“Safari 浏览器 > 设置 > 网站 > 摄像头”,将此网站设为“允许”。在 Firefox 中,点击地址栏中的摄像头或权限图标,解除阻止后重试。如果浏览器已允许而测试仍然失败,说明是操作系统在拒绝:在 macOS 上打开“系统设置 > 隐私与安全性 > 摄像头”,打开你所用浏览器的开关;在 Windows 上打开“设置 > 隐私和安全性 > 相机”,打开“相机访问”以及“让桌面应用访问你的相机”。
因为人们看自己时,期望看到的就是镜像画面:它的表现就像一面镜子,你往左移,屏幕上的你也往左移。出于这个原因,本页面默认以镜像方式显示预览,“镜像”开关可以将其关闭。摄像头本身并没有镜像。视频通话另一端的人看到的是正向的你,所以你衣服上的文字或举起的纸上的字,在他们看来是正的,尽管在你看来是反的。快照默认保存为非镜像,也是同样的原因。
在浏览器中,尺寸只是一个请求,摄像头可以悄悄拒绝,而通常有三方面的原因。浏览器会在摄像头提供的模式中选择,可能会选得更低;如果完全不请求尺寸,Chrome 和 Firefox 通常会以 640 × 480 打开摄像头。连接可能带不动:未压缩的 1080p、每秒 30 帧所需的带宽远超 USB 2.0 的传输能力,所以摄像头要靠压缩才能实现全高清,而繁忙的集线器或过长的延长线会迫使它降级。另一端的应用也可能设置上限,因为大多数视频通话只发送 720p 或更低。在这里选择 1080p,对比请求值和实际值,就能看出限制出在哪一方。
原因是自动曝光。光线不足时,摄像头会延长每一帧的曝光时间来收集光线,而一帧到达的速度不可能快于它的曝光:1/15 秒的曝光会把帧率限制在每秒 15 帧,无论摄像头标称多快。许多摄像头在弱光下会自动这样做,所以这里测得的帧率可能远低于报告的帧率,而画面看起来仍然够亮。把光源放在你的前方而不是后方,看着实测帧率回升。
比大多数摄像头能提供的要低。Zoom、Microsoft Teams 和 Google Meet 在大多数通话中发送 720p 或更低,在图库视图或网络较差时还会更低,只有在特定套餐、会议类型或设置下才会发送 1080p。常见的目标约为每秒 30 帧。因此,能稳定输出 720p、每秒 30 帧的摄像头就足以应付通话;4K 摄像头主要有助于构图、数码变焦以及录制或直播,这些场景才会用上它的全部输出。
不会。视频从摄像头进入当前标签页,不会去往别处:不会录制任何内容,不会上传任何内容,页面也不会发出任何包含画面帧的网络请求。各项测量只是对已在内存中的帧进行计算。快照会保留在当前标签页中,直到你下载它,离开页面时就会被丢弃。点击“停止摄像头”或关闭标签页,所有轨道都会停止。
把摄像头直接插到电脑上,不要经过集线器,然后启动摄像头。获得访问权限后,选择器会按名称列出每个摄像头,包括内置摄像头、USB 摄像头、采集卡,以及 OBS 等应用创建的虚拟摄像头;插入或拔出摄像头时,列表会自动刷新。选择外接摄像头后,视频流会切换到它并重新启动;随后实际输出的分辨率和帧率会显示线缆和端口是否跟得上。每个应用都会自行选择摄像头,所以也要在通话应用的设置中选好。
大多数摄像头的指示灯与传感器是否通电相关联,因此只要有程序还开着摄像头,灯就会一直亮。当你点击“停止摄像头”、切换摄像头或分辨率,或离开页面时,本页面会停止所有轨道,指示灯应在一两秒内熄灭。如果灯仍然亮着,说明有别的程序在占用摄像头:另一个标签页、在后台运行的通话应用,或厂商的工具软件。在 Mac 上,菜单栏中的“控制中心”会显示正在使用它的应用。在 Windows 11 上,“设置 > 隐私和安全性 > 相机”会列出最近使用过它的应用。
探索不断扩充的工具合集,涵盖计算、文档、写作和日常工作。