最近公司项目涉及到一个需求,调用电脑摄像头功能,经过在网上查找资料有以下三种方案实现。

通过浏览器API来getUserMedia来实现调用用户的摄像头,但有两点限制:部署到生产服务的时候要使用htts协议访问该项目,第二点限制就是第一次获取摄像头时要点击允许弹窗。

通过web端发送websocket请求给客户端,然后客户端调用摄像头应用程序,但每次初始打开摄像头应用时都有个初始化2~3秒左右,用户体验不免友好。

通过客户端获取摄像头的每一帧数据,并通过websocket返回给web端,具体步骤下面有代码讲解。

getUserMedia方式实现代码

调用摄像头录像

客户端返回视频流方式实现代码

vue前端代码

前端接收到H264视频流,需要用JMuxer来转码才能在video标签里播放,需要执行npm install JMuxer来安装这个库。详细代码如下:

C++客户端

https://github.com/qiyingcong/vue-c-websocket点击下载客户端包

双击打开这个应用程序就可以访问本地的websocket的视频流了

image.png

Copyright © 2088 世界杯决赛_世界杯是 - rchzwh.com All Rights Reserved.
友情链接
top