摄像头测试

在线检测摄像头的实时画质、分辨率和帧率。

预览

启动摄像头以查看实时画面及信号参数。

相机已关闭

摄像头画面与截图均仅在您的设备本地处理,不会被录制、上传或存储。

常见问题

为什么必须先允许访问摄像头?

浏览器只有在获得您的允许后才会共享摄像头,您随时可以在网站设置中撤销该权限。测试仅利用此权限来显示预览并读取摄像头的运行模式,停止测试后会立即释放摄像头。

为什么找不到摄像头规格表上的某个分辨率?

列表中显示的是当前摄像头和浏览器实际支持输出的模式,并非营销宣传的参数。驱动程序、USB带宽和光线环境都可能影响可用选项,某些模式也可能仅限特定应用调用。

如果摄像头被其他应用占用怎么办?

大多数摄像头同时只能服务于一个应用。请关闭视频通话或录制应用(包括其他浏览器标签页),然后重新开始测试。如果仍然失败,请重新插拔摄像头或重启浏览器。

浏览器调用摄像头与 WebRTC 技术原理

现代网页浏览器无需安装任何插件,即可直接访问用户的摄像头硬件。这一功能主要依赖于 WebRTC(网页即时通信)标准中的媒体捕获 API。当用户在“摄像头测试”工具中点击“启动摄像头”时,浏览器会向系统请求视频流权限。为了保护用户隐私,本工具仅请求视频轨道,明确排除了音频(麦克风)请求。

在建立连接时,浏览器会通过媒体轨道向硬件发送约束条件。一旦连接成功,工具将提供一个名为“预览”的实时镜像视频流。在底层,浏览器会持续维持这一媒体通道,直到用户主动点击“停止”、切换至其他设备,或者直接关闭、离开当前网页(触发 pagehide 事件)。在这些情况下,工具会立即释放所有活动的媒体轨道,确保硬件设备完全退出工作状态,防止后台偷跑。

摄像头分辨率与宽高比的计算

在“摄像头参数”面板中,用户可以直观地看到当前活动视频轨道的“分辨率”与“宽高比”。

  • 分辨率:指视频轨道当前的实际物理像素宽度和高度(例如 1920×1080 或 1280×720)。
  • 宽高比:是根据当前分辨率的宽度与高度,经过数学约简后得出的最简比例(例如 16:9 或 4:3)。

为了检测设备对不同分辨率的兼容性,本工具提供了“扫描分辨率”功能。该功能并非无限制地枚举硬件的所有底层细节,而是通过依次向摄像头应用 exact(精确)约束条件,来测试 11 种常见的标准分辨率模式。在测试每个模式时,系统会短暂建立一个临时轨道,确认其是否可用,随后立即将其停止。

在扫描过程中,界面会实时显示“正在测试分辨率… ‹done›/‹total›”的状态。扫描完成后,用户可以在“支持的分辨率”列表中看到诸如“可用分辨率:‹count› / ‹total›”的汇总信息。对于每个测试的分辨率,系统会标记为“使用中”或“不支持”。用户可以直接点击列表中标有“不支持”之外的可用分辨率,将其直接应用到当前的“预览”画面中。如果某个特定分辨率模式在测试中被硬件拒绝,系统会触发错误提示:“相机拒绝了 ‹mode›;已恢复至先前的模式。”

帧率(FPS)的实时测量与动态变化

帧率(每秒传输帧数,FPS)是决定视频画面流畅度的核心指标。在本工具的“摄像头参数”中,“帧率”的旁侧会标注数据的来源属性:

帧率标注 测量机制
实时测得 浏览器利用 API 在滚动时间窗口内,对实际接收到的视频帧进行实时计数与计算得出的数值。
摄像头报告 直接读取并显示浏览器底层驱动程序所报告的设备标称帧率。

需要注意的是,实时测得的帧率往往是一个动态波动的值。即使摄像头标称支持 30 FPS 或 60 FPS,在实际使用中也可能出现帧率下降。这通常与环境光线不足(摄像头延长曝光时间)、USB 总线带宽不足(多个高带宽设备共用同一控制器)或系统 CPU 资源紧张有关。

硬件标称参数与实际表现的差异

用户经常会发现,测试中显示的分辨率或帧率无法达到产品包装盒上宣传的物理规格。这种数据差异是正常现象,主要由以下因素决定:

  1. USB 带宽限制:高分辨率、无压缩的视频流需要极高的传输带宽。如果将摄像头接入了慢速的 USB 2.0 接口,或者与高负载的 USB 设备共用通道,系统可能会强制降低分辨率或帧率。
  2. 驱动程序与系统限制:操作系统的通用驱动程序可能未启用摄像头的某些特定输出格式。
  3. 环境光线:在暗光环境下,许多摄像头会自动开启“低光补偿”功能,通过延长单帧曝光时间来保证画面亮度,这会导致实际测得的帧率大幅下降。

因此,本工具特别标注了“分辨率和帧率数据反映了浏览器当前的实际报告与测量结果,可能会与相机标称的规格有所不同。”

浏览器权限安全与 HTTPS 规范

现代浏览器对硬件访问有着极其严格的安全限制。摄像头属于敏感设备,浏览器仅允许在安全上下文(即 HTTPS 加密连接或本地 localhost)中调用相关媒体 API。

如果用户尝试在非加密的 HTTP 网页上运行测试,浏览器将直接拒绝初始化媒体流,此时工具会弹出错误提示:“当前浏览器或页面无法访问相机。请在安全(HTTPS)连接下使用现代浏览器重试。”

此外,当工具请求访问权限时,如果用户在浏览器弹窗中选择了拒绝,系统将无法获取任何视频流,并显示错误:“相机访问权限已被阻止。请在浏览器中为此网站允许相机访问,然后重新开始。” 用户可以随时在浏览器的地址栏权限设置中撤销或重新授予该权限。

常见故障排查与错误代码解析

在调用摄像头时,可能会遇到各种硬件或软件冲突。以下是常见的错误场景及排查方法:

  • 设备未连接或被禁用:如果系统未检测到任何摄像头硬件,工具会提示:“未找到相机。请连接或启用相机,然后重试。” 请检查 USB 接口或设备管理器中的启用状态。
  • 独占性冲突(设备被占用):大多数摄像头在同一时间只能被一个应用程序独占调用。如果其他视频会议软件、录屏工具或其他浏览器标签页正在使用该摄像头,测试将会失败,并提示:“相机无法启动,可能正被其他应用占用。请关闭该应用后重试。”
  • 意外断开:如果在测试过程中,用户拔掉了摄像头的连接线,工具会立即捕获到这一硬件中断,并提示:“当前使用的相机已断开连接。”
  • 未知错误:对于其他无法归类的启动失败,工具会输出具体的原因代码:“相机无法启动(‹error›)。”

常见问题解答(FAQ)

为什么必须先允许访问摄像头?

浏览器只有在获得您的允许后才会共享摄像头,您随时可以在网站设置中撤销该权限。测试仅利用此权限来显示预览并读取摄像头的运行模式,停止测试后会立即释放摄像头。

为什么找不到摄像头规格表上的某个分辨率?

列表中显示的是当前摄像头和浏览器实际支持输出的模式,并非营销宣传的参数。驱动程序、USB带宽和光线环境都可能影响可用选项,某些模式也可能仅限特定应用调用。

如果摄像头被其他应用占用怎么办?

大多数摄像头同时只能服务于一个应用。请关闭视频通话或录制应用(包括其他浏览器标签页),然后重新开始测试。如果仍然失败,请重新插拔摄像头或重启浏览器。