跳到主内容
UniKit

摄像头拍照与录像

用浏览器摄像头拍照或录像:切换前后摄像头、镜像预览、截图下载 PNG、录制并下载 WebM 视频,全部在本地完成。

浏览器本地运行所有计算都在你的浏览器里完成,数据不会离开本机。

摄像头

视频流只在本地处理,不会上传到任何服务器;浏览器会先询问摄像头权限。

状态: 尚未开始

镜像预览前置摄像头默认镜像显示,与常见的自拍效果一致。

环境检查

  • HTTPS / 安全上下文支持
  • getUserMedia不支持
  • MediaRecorder不支持

照片

拍照后可在这里预览并下载 PNG。

录像

停止录像后可在这里预览并下载视频。

这个工具能做什么

  • 手边只有一台笔记本或手机,临时要拍一张证件照、白板照片或商品图,打开网页就能拍,不用装 App。
  • 录一段屏幕前的讲解或演示短视频,停止后直接下载 WebM 文件,交给剪辑软件或聊天工具。
  • 需要自拍效果的预览:前置摄像头默认镜像显示,拍出来的照片与预览一致。
  • 排查摄像头问题:页面会先检查 HTTPS 安全上下文、getUserMedia 与 MediaRecorder 是否可用,再把权限拒绝、设备被占用等错误翻译成人话。

示例

输入

开启摄像头(前置 user,理想宽度 1280),点击「拍照」

输出

unikit-photo-20261010-153045.png

这是下载文件名的真实格式:`unikit-photo-<本地日期>-<本地时间>.png`。拍照时会按最长边等比缩放到 1280 像素以内(不放大原图),勾选镜像时画面左右翻转后再截图;如果开启镜像,截出的图片和预览一致,文字会反。

常见问题

为什么提示无法使用摄像头?

最常见的是权限被拒绝(浏览器地址栏里可以重新允许)、页面不是 HTTPS(浏览器只在安全上下文里开放摄像头)、摄像头被其他程序占用(会议软件、录屏工具),或者设备本身没有摄像头。页面会把这几类情况分别给出提示,先看「环境检查」那三项是否都是「支持」。

为什么必须 HTTPS,本地打开文件不行吗?

浏览器规定摄像头属于敏感能力,只在安全上下文里可用。`https://` 和 `http://localhost` 都算安全上下文,而直接用 `file://` 打开或走普通 `http://` 页面会拿不到 getUserMedia。本地开发请用开发服务器(通常是 localhost)。

录像是什么格式,能不能录声音?

录像优先选择浏览器支持的容器,顺序是 WebM/VP9、WebM/VP8、WebM,都不支持时才退回 MP4,文件名扩展名会跟着变。音频不采集:`getUserMedia` 只请求 video,所以录出来的视频是无声的,这也是它不需要麦克风权限的原因。

照片和视频会上传吗?

不会。视频流由浏览器直接交给页面上的 video 元素,截图走 canvas 的 `toDataURL`,录像走 MediaRecorder 加 Blob 对象 URL,全程没有任何网络请求,关掉页面后内存里的流和 URL 都会被释放。

镜像开关影响什么?

只影响截图的像素。预览时的镜像由 CSS 完成,拍照时若勾选镜像,会在 canvas 上做一次水平翻转,使图片与预览一致——对自拍更自然,但拍文档或白板时建议关掉,否则文字会左右颠倒。

关键词:camerawebcam拍照录像getUserMediaMediaRecorder摄像头mirror拍照工具

同类工具