背景需求:
许多客户有这样的需求:微信公众号做为平台来对摄像机进行直播;可以让用户随时随地打开公共号就可以观看;保证画面的流畅性;保证视频的并发访问量等。
问题分析:
虽然需求看似很简单,其实真正实现起来还是有相当多的阻碍。 首先:如何让摄像机的输出的视频流可以在微信的公众平台实现播放,摄像机输出的视频流播放往往需求插件是无法实现在微信公众号中进行直播;
其次:自己部署视频服务来进行流分发,对自身的服务器硬件和网络带宽都是有要求的,虽然硬件是可以解决的,但是对于一般普通的个人或者是私人企业单独投入一套完整的设备只是为了完成公众号直播,这个代价有点大;
再次:也是让普通用户最头痛的一点就是如何使内网的摄像机完成这些需求;如何在普通家庭网络这种情况下成功让外网访问到我们的视频流。
解决方案:
EasyNVR可以完成流的分发、转发出满足微信直播的视频流;也可以做到,拉取视频流转推出去,但是拉取视频流的限制在于服务端需要拉取到摄像机的视频流,在内网我们可以通过分配摄像机固定ip,配置出rtsp地址来进行拉流然后完成分发推流等一系列功能,对于公网,在普通家庭网络的情况下没有固定的外网ip,通过rtsp拉取摄像头的视频就显得不是很方便了。对于摄像头数量比较少的情况下,再在公网部署流媒体服务器就是显得相对比较笨重了;针对EasyNVR拥有推流CDN的功能,配合cdn可以完美解决这一尴尬问题;
以腾讯云为例进行方案介绍:
1.内网部署EasyNVR,并完成摄像机配置;
1.1成功访问EasyNVR
1.2通过RTSP地址将摄像机接入EasyNVR
1.3视频广场成功展示接入设备对应信息
2.开通CDN服务,并接入(以腾讯云为例);
2.1 登陆腾讯云,开通腾讯云直播服务;
腾讯云登陆
直播LVB
2.2进入【视频直播】控制台
2.1.1. 选择直播码接入
左边菜单选择【直播码接入】,点击【确认接入】
2.1.2. 选择推流生成器
点击【推流生成器】获得直播推流地址,下面会具体列出【推流地址】,播放地址等
可以根据自定义的ID,生成一批推流地址,然后配置到EasyNVR通道CDN地址中
2.1.3. 通过EasyNVR成功接入CDN
3.通过CDN返回播放地址接入微信公众号;
注意由于腾讯云放回的m3u8地址是一个直播的视频流地址,直接播放会在微信页面有一个【继续访问】的页面提示;
解决方案: 写一个视频播放静态页面,通过有域名来访问就可以避免微信的认证提醒;
(播放页面主要内容为HLS流媒体播放器,具体实现方式参考EasyNVR自身DEMO)
将此地址放至微信公众号可以直接进行访问进行直播;