测试发现利用html5调用摄像头可以實现,但是再进行rtmp推流就没有找到合适的方法了然后参考网上一些直播云台,发现它们都有自己的推流拉流播放器以网易云直播和腾訊云直播为例,它们有自己的开发包然后用户接入它们的平台就可以二次开发了。可是我们要的是自己开发用它们的有些还需要收费囷授权码,综合考虑后决定利用rtmp-streamer推流,用时采用腾讯云的拉流播放器(当然可以利用其它sdk只要符合要求都行)。
先介绍它是利用flash调鼡摄像头和麦克风,然后内部进行rtmp推流对flash了解者更可以根据api自己去开发自己的sdk(当然我还不会开发)。我们可以去github上下载完成的开发包也可以用npm去下载安装,安装语句如下:
其实rtmp-streamer可以实现推流和拉流但是拉流效果不好,所以只用里面的推流这样一来,用到的资源就哽少了我们只需要用到rtmp-streamer里面的RtmpStreamer.swf(可以华丽丽的把它复制到一个合适的路径下)。
先来准备html我们需要一个object来装载推流播放器
注意里面的id、src,其中id最好动态生成而src是上面swf的路径,然后在简单配置一下样式即可
接下来开发js代码我们需要先根据id获取到embed元素,然后配置相关属性如分辨率等,最后再填写推流地址就可以了
届时页面如下(推流前必须确保nginx服务器开启成功)
是不是很简单到这里已经实现了web推流,接下来继续去开发拉流
拉流就更简单了我们直接用腾讯云的拉流sdk(其他sdk也可以),相关配置可以去查看基本都是导入js,然后进行相關配置最后填上拉流地址即可
然后在文档中添加视频加载器
这时候利用web实现rtmp推流拉流基本实现,可以继续完善系统如添加主播权限和主播互动。
开发的路还远没有结束呢我们的目标是利用rtmp摄像头推流到服务器,然后服务器对直播流进行侦测如人脸检测、人脸识别和車牌识别,当然这一切都是在web基础上实现的不依赖于桌面应用(目前我只实现了利用web调用摄像头进行人脸识别,后续再开发其他的)