接上篇

在上一篇博客《一种流量成本节省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

#20171028于北京#

一种微信直播H5直播与存储回放的HLS摄像机方案的更多相关文章

  1. EasyDarwin开源流媒体服务器实现RTSP直播同步输出MP4、RTMP、HLS的方案思路

    背景 近期跟开源团队商量,想在EasyDarwin上继续做一些功能扩展,目前EasyDarwin开源流媒体服务器只能够实现高效的RTSP推流直播转发/分发功能,输入与输出都是RTSP/RTP流,不能够 ...

  2. 一种流量成本节省60%以上的手机直播微信直播H5直播幼儿园直播方案

    前言 近几年视频直播可以说是非常火热,EasyDarwin也非常受开发者的欢迎,不仅仅是主播火了,而且各种商业直播也火了起来:会场直播.宴会直播.讲座直播.景区直播.后厨直播.课堂直播.幼儿园直播等等 ...

  3. 实现RTSP摄像机硬盘录像机NVR网站网页微信H5直播方案EasyNVR部署问题之:ERR_CONTENT_LENGTH_MISMATCH

    背景分析 接触到EasyNVR产品的开发者都知道,EasyNVR是一套功能齐全.简洁易用的流媒体解决方案,可作为能力曾前端接入摄像头,后端接入业务系统使用,也可以作为应用层,直接修改为属于企业用户自己 ...

  4. h5直播开发之旅总结

    前言 关于直播,有很多相关技术文章,这里不多说. 作为前端,我们比较关心我们所需要的. 直播的大致流程: APP端调用摄像头 -> 拍摄视频 -> 实时上传视频 -> 服务器端获取视 ...

  5. H5直播避坑指南

    本文来自"小时光茶社(Tech Teahouse)"公众号 作者简介: 文赫,2015年加入腾讯,作为前端开发工程师参与过手Q游戏公会,游戏中心,企鹅电竞等项目,具有丰富的移动端开 ...

  6. h5直播

    直播开发之旅 ① 状态控制: 目前我们先考虑直播的三种状态: 直播前,直播中,结束. 针对每个状态我们肯定会有不同的显示,这三种状态可以是三个页面,相互切换,或者一个页面,控制页面相关隐藏和显示. 可 ...

  7. [微信小程序直播平台开发]___(一)介绍与流程

    1.一个可以忽略的前言 最近在做的一个项目,客户要做一个直播平台,主播发起视频直播,然后其他人进入房间观看这样子,跟其他直播平台不同的是,主播可以打赏观众,噗. 因为客户要做的是一个民宿的微信小程序, ...

  8. 视频技术详解:RTMP H5 直播流技术解析

    本文聚焦 RTMP 协议的最精华的内容,接进行实际操作 Buffer 的练习和协议的学习. RTMP 是什么 RTMP 全称即是 Real-Time Messaging Protocol.顾名思义就是 ...

  9. 前端开发:H5直播起航

    前言 前不久抽空对目前比较火的视频直播,做了下研究与探索,了解其整体实现流程,以及探讨移动端HTML5直播可行性方案. 发现目前 WEB 上主流的视频直播方案有 HLS 和 RTMP,移动 WEB 端 ...

随机推荐

  1. AC日记——封锁阳光大学 洛谷 P1330

    封锁阳光大学 思路: bfs染色: 如果当前点能通往已染色的点则不能完成: 图不一定联通: 来,上代码: #include <queue> #include <cstdio> ...

  2. 语义分割丨PSPNet源码解析「训练阶段」

    引言 之前一段时间在参与语义分割的项目,最近有时间了,正好把这段时间的所学总结一下. 在代码上,语义分割的框架会比目标检测简单很多,但其中也涉及了很多细节.在这篇文章中,我以PSPNet为例,解读一下 ...

  3. 了解什么是WebLogic Server 多数据源(Multi-DataSource)

      1. 什么是多数据源 我们知道配置WebLogic Server集群时一定要配置一个单一接入点(例如:Apache或F5),这样客户端只要访问这个单一入口点就可以了.对于客户来说,就好象访问一台服 ...

  4. iOS -- iOS11新特性,如何适配iOS11

    前言 这几天抽空把WWDC的Session看了一些,总结了一些iOS11新的特性,可能对我们的App有影响,需要我们进行适配.本文作为一个总结. 本文内容包括:集成了搜索的大标题栏.横向选项卡栏.Ma ...

  5. Web支持可暂停的超大文件上传

    代码镇顶:https://github.com/dna2github/petalJS/blob/master/upload 前些天遇到用户须要上传10GB大小以上的文件的需求,查查网上的库.都不好用. ...

  6. 转: Gradle:Gradle入门

    from: http://blog.csdn.net/p106786860/article/details/50422463

  7. AutoCAD 样条曲线如何结束

    如下所示,走了四个点之后曲线绘制结束想要闭合了   鼠标右击选择确认   然后变成下面这个样子,鼠标再右击就可以结束(然后又回从下面伸出来东西,还是右击)总之就是想要结束的时候:右击确认,不断右击   ...

  8. vue v-model使用说明

    1.概述 v-model 会忽略所有表单元素的 value.checked.selected 特性的初始值而总是将 Vue 实例的数据作为数据来源.你应该通过 JavaScript 在组件的 data ...

  9. vue组件class绑定

    当在一个自定义组件上使用 class 属性时,这些类将被添加到该组件的根元素上面.这个元素上已经存在的类不会被覆盖. 例如,如果你声明了这个组件: Vue.component('my-componen ...

  10. hdu-5015-233 Matrix-矩阵

    非常显然矩阵的第一列为: 0 a[1] a[2] a[3] a[4] 我们转化一下,转化为 23 a[1] a[2] a[3] a[4] 3 那么由第一列转移到第二列则为 23*10+3 a[1]+2 ...