一种微信直播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或者点播型存储效果是一致的!

实现方法

确定了方向,那么下一步就是应该如何实现呢,我总结了几个层次的需求,按顺序:

  1. Step1:有摄像机/编码器的二次开发权限,能直接在摄像机/编码器的arm系统中植入我们对接云存储的程序;

  2. Step2:对接摄像机/编码器SDK或者协议获取到实时的音视频流,并转换为标准的H.264+AAC(如果有音频);

  3. Step3:将H.264+AAC切片成HLS实时流数据/点播流数据;

  4. Step4:将Step3中的数据通过云存储的SDK写入到云存储的Bucket中;

开发计划

我本身是海康萤石的用户,每个月需要自己付款12元保存7天的录像,我的计划是自己基于厂家的摄像机开发一款云存储摄像机,具备几个功能:

  1. 根据摄像机的SDK二次开发,当有移动侦测回调的时候,才启动云存储录像;

  2. 存储录像到云存储中保存7/30天;

  3. 摄像机原生需要支持H.264,音频转码通过EasyAACEncoder:https://github.com/EasyDarwin/EasyAACEncoder来实现;

  4. HLS切片采用EasyHLS:https://github.com/EasyDarwin/EasyHLS来实现;

  5. 云存储当然就用云存储平台提供的SDK二次开发了,例如OSS:https://help.aliyun.com/document_detail/32131.html?spm=5176.87240.400427.51.01eGWx,七牛云:https://developer.qiniu.com/kodo/sdk/1255/cpp

  6. 当然阿里云的OSS有直接将4、5两步合并的SDK:https://help.aliyun.com/document_detail/32159.html?spm=5176.87240.400427.55.01eGWx

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyDarwin

#20171028于北京#

原文地址:https://www.cnblogs.com/babosa/p/7858009.html