web实现rtmp推流拉流(vue + nginx)

测试发现,利用html5调用摄像头可以实现,但是再进行rtmp推流就没有找到合适的方法了,然后参考网上一些直播云台,发现它们都有自己的推流拉流播放器,以网易云直播和腾讯云直播为例,它们有自己的开发包,然后用户接入它们的平台就可以二次开发了。可是我们要的是自己开发,用它们的有些还需要收费和授权码,综合考虑后,决定利用rtmp-streamer推流,用时采用腾讯云的拉流播放器(当然可以利用其它sdk,只要符合要求都行)。


先介绍rtmp-streamer,它是利用flash调用摄像头和麦克风,然后内部进行rtmp推流,对flash了解者更可以根据api自己去开发自己的sdk(当然我还不会开发)。我们可以去github上下载完成的开发包,也可以用npm去下载安装,安装语句如下:

npm install rtmp-streamer --save-dev


其实rtmp-streamer可以实现推流和拉流,但是拉流效果不好,所以只用里面的推流,这样一来,用到的资源就更少了,我们只需要用到rtmp-streamer里面的RtmpStreamer.swf(可以华丽丽的把它复制到一个合适的路径下)。


先来准备html,我们需要一个object来装载推流播放器

html代码

注意里面的id、src,其中id最好动态生成,而src是上面swf的路径,然后在简单配置一下样式即可


接下来开发js代码,我们需要先根据id获取到embed元素,然后配置相关属性,如分辨率等,最后再填写推流地址就可以了

vue代码设置

届时页面如下(推流前必须确保nginx服务器开启成功)

页面效果

相关配置


允许调用摄像头


监控画面


是不是很简单,到这里已经实现了web推流,接下来继续去开发拉流


拉流就更简单了,我们直接用腾讯云的拉流sdk(其他sdk也可以),相关配置可以去官网查看,基本都是导入js,然后进行相关配置,最后填上拉流地址即可


html部分

导入js

先在首页引入js


然后在文档中添加视频加载器


js部分


简简单单就可以实现了


页面效果如下


填写配置



进行观看


这时候利用web实现rtmp推流拉流基本实现,可以继续完善系统,如添加主播权限和主播互动。



开发的路还远没有结束呢,我们的目标是利用rtmp摄像头推流到服务器,然后服务器对直播流进行侦测,如人脸检测、人脸识别和车牌识别,当然这一切都是在web基础上实现的,不依赖于桌面应用(目前我只实现了利用web调用摄像头进行人脸识别,后续再开发其他的

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AGI阅读 16,003评论 3 119
  • 小时候生病了喝药,总会跟大人商量着能喝少一点,因为觉得药太苦 长大生病了喝药,父母不在身边也会自觉的把药喝到见底,...
    芬芬vstar阅读 298评论 0 0
  • 突然发现自己没有一项可以一直坚持下去的爱好,想起了十字绣,坚持绣完送别人做礼物吧,一周匀出半天时间来完成它,希望我会坚持
    另一个我nn阅读 137评论 0 0
  • 在我的概念里,公立医院都属于事业单位,应该不会有盈利这么一说,后来才知道,医院也是讲效益的,或者说医院有点类似于企...
    勃然沧海阅读 260评论 0 0
  • 橘红色的天空亲吻着在森林徘徊的少女。不知不觉已经天黑了,少女嘟囔着。突然,英仙座流星雨如花瓣撒落,少女看着那颜...
    DrinkF阅读 280评论 0 2