一种微信直播H5直播与存储回放的HLS摄像机方案
接上篇
在上一篇博客《一种流量成本节省60%以上的手机直播微信直播H5直播幼儿园直播方案》中,我们一共介绍了两种省钱的HLS直播途径:
方案一:编码器或者内网推流直接对接云存储的场景
如果我们是一个做编码器或者我们在内网有个直播主机,而且可以对编码器、主机做定制,那么我们可以直接将直播流切片成HLS数据源源不断写入到云存储中,再通过云存储提供的Public或者Private的http地址,就可以直接观看HLS直播,与我们在直播服务器中切片的HLS m3u8地址访问方法一样;
方案二:推流到公网的服务器再做切片
如果我们没有办法或者技术方法改变内网推流端,而是直接购买的直播设备,我们也是可以做到的:购买一台云主机,部署上RTMP服务器(例如EasyDSS),再通过RTMP服务器将切片的HLS直播数据源源不断通过内网的形式写入到云存储中,阿里云也出了一个叫做cloudfs的产品,就是能够直接将OSS云存储挂在到服务器上做为一个磁盘,这样就能想写本地磁盘目录一样,写m3u8+ts文件了,这里的费用也是极低的,首先内网上行到服务器主机的流量是免费的,服务器主机写入到云存储走内网流量也是免费的,流量费用与第一种方式是相似的!
我们今天着重要描述的就是场景一的实现方案,直接在摄像机或者编码器中将直播/存储的HLS数据写入到OSS/七牛云存储这样的云存储中,注意,这里不论是直播类型的HLS,还是点播类型的HLS,都可以写入到云存储中,而且都能够跟正常的直播型HLS或者点播型存储效果是一致的!
实现方法
确定了方向,那么下一步就是应该如何实现呢,我总结了几个层次的需求,按顺序:
Step1:有摄像机/编码器的二次开发权限,能直接在摄像机/编码器的arm系统中植入我们对接云存储的程序;
Step2:对接摄像机/编码器SDK或者协议获取到实时的音视频流,并转换为标准的H.264+AAC(如果有音频);
Step3:将H.264+AAC切片成HLS实时流数据/点播流数据;
Step4:将Step3中的数据通过云存储的SDK写入到云存储的Bucket中;
开发计划
我本身是海康萤石的用户,每个月需要自己付款12元保存7天的录像,我的计划是自己基于厂家的摄像机开发一款云存储摄像机,具备几个功能:
根据摄像机的SDK二次开发,当有移动侦测回调的时候,才启动云存储录像;
存储录像到云存储中保存7/30天;
摄像机原生需要支持H.264,音频转码通过EasyAACEncoder:https://github.com/EasyDarwin/EasyAACEncoder来实现;
HLS切片采用EasyHLS:https://github.com/EasyDarwin/EasyHLS来实现;
云存储当然就用云存储平台提供的SDK二次开发了,例如OSS:https://help.aliyun.com/document_detail/32131.html?spm=5176.87240.400427.51.01eGWx,七牛云:https://developer.qiniu.com/kodo/sdk/1255/cpp
当然阿里云的OSS有直接将4、5两步合并的SDK:https://help.aliyun.com/document_detail/32159.html?spm=5176.87240.400427.55.01eGWx;
获取更多信息
Copyright © EasyDarwin.org 2012-2017
#20171028于北京#