安防领域HLS直播问题探讨

近期外出交流比较多,在之前的一篇博客《一种流量成本节省60%以上的手机直播微信直播H5直播幼儿园直播方案》我们说到了一种模式,就是当我们在做最近火热的幼儿园直播平台时,比较简单的做法是在幼儿园内部会部署一台工控机设备,上面跑一个RTMP推流程序,再在公网部署一套流媒体服务器,内网的RTMP推流服务将摄像机的视频流拉取到本地再不间断地推流到公网的RTMP流媒体服务器,这样就能在公网获得一个固定的HLS m3u8直播地址,这样就可以交给微信业务端,嵌入到直播业务中了,这种做法的好处:

  • 实现方法简单灵活,直接拉流+推流+HLS切片;

  • 微信HLS秒开,无等待过程,起播非常快;

  • 服务器上行流量多是免费的,所以,对流量的消耗没有影响;

唯一存在的问题是:

  • 太耗内网网络的上行带宽,比如一个家庭100M宽带,上行4M~8M,那么一路摄像机就算调整的比较低,控制在512kbps,一个月幼儿园只能满足8~16路左右的摄像机,要增加再多的摄像机,一种做法是降低画质到更低,还有一种就是增加带宽线路,显然两种都不是很好的方案;

  • 内网上行带宽基本被全时段占据,连办公网络也会收到影响,简单说就是,传文件都传不出去了,因为带宽已经被上行的视频直播流量用掉了;

方案选择

之前在我们的《基于EasyDarwin云视频平台的幼儿园视频直播(手机直播/微信直播)解决方案》中,我们是实现了一种按需推流直播的方案,这种方案在什么情况下是效果是比较好的呢?

  • 内网摄像机太多太多了,都同时上传直播视频不大合适;

  • 观看的客户端是原生App,直接可以采用RTMP播放;

因为采用按需直播的形式,HLS是临时切片的,也就是说这个切片过程会因为终端的不同,起播消耗的时间也不一样,体验会比较差,那么当您的应用对摄像机的画质要求不高,也就是画面可以尽量压缩、或者内网的摄像头数量不多,就那么几个,占用不了多少上行带宽资源,那么我们可以采用内网不间断RTMP直播推流,公网RTMP流媒体服务器不间断直播切片的方案了;

方案实现

那么我们如何实现这种方案呢,也就是如何在公网一直进行内网摄像头的RTMP/HLS直播,我们可以采用EasyNVR+EasyDSS的方案!

第一步:公网流媒体服务器下载并部署EasyDSS流媒体服务器

直接在EasyDSS官网下载EasyDSS流媒体服务器版本,其中包含了EasyDSS流媒体服务器Windows/Linux版本及使用手册PDF:

主要配置节点:

第二步:内网主机下载并部署EasyNVR

在EasyNVR官网:http://www.easydarwin.org/easynvr,下载EasyNVR最新版本,其中包含EasyNVR Windows/Linux版本、EasyNVR使用文档PDF和二次开发接口文档PDF;

常规配置按照EasyNVR使用手册中配置即可,这里说一下需要达成本文方案所需要的关键配置方法:

  • 配置EasyNVR的nginx_rtmp_ip和nginx_rtmp_port为公网的EasyDSS流媒体服务器的IP和RTMP端口;
  • 将每一个EasyNVR的通道配置为“非按需直播”,也就是不间断从摄像机拉流,再推到RTMP流媒体服务器;

第三步:调用EasyDSS流媒体服务器接口获取直播地址

完成以上两步之后,就可以直接调用公网的EasyDSS文档中描述的接口,例如:getlivesessions、query_record_devices等等接口,获取摄像机的RTMP直播流、HLS直播流、录像检索、录像回放等功能了;

获取更多信息

邮件:support@easydarwin.org

WEB:www.EasyDarwin.org

Copyright © EasyDarwin.org 2012-2017

EasyNVR+EasyDSS实现简单套路的RTMP、微信直播、录像、回放方案的更多相关文章

  1. 实现RTSP摄像机进行网页直播和微信直播的技术方案:EasyNVR自动更新方法

    问题背景: 1.EasyNVR的用户越来越多,技术人员一一对应解答效率不高: 2.随着EasyNVR应用场景的不断增加,以及EasyNVR自身在技术上的不断优化,版本更新比较快: 3.由于开发人力有限 ...

  2. 网页直播、微信直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的easynvr

    近期遇到好多客户咨询关于实现微信直播.或者是将直播页面集成进入自己项目中. 该方案的主要目的:完成在公网一直进行内网摄像头的RTMP/HLS直播! 实现方案的具体实现: EasyNVR+EasyDSS ...

  3. 基于EasyNVR+EasyDSS H5视频直播二次开发实现业务需求:直接使用播放页面

    之前的"网页直播.微信直播技术解决方案:EasyNVR与EasyDSS流媒体服务器组合之区分不同场景下的easynvr"有介绍一些功能.由于客户需求,我们定制一下功能.给该套方案添 ...

  4. EasyDSS高性能RTMP、HLS(m3u8)、HTTP-FLV、RTSP流媒体服务器的视频直播录像、检索、回放方案

    需求背景: 近期遇到客户反馈对于直播摄像机录像功能是有一定的需求点的,其实EasyDarwin团队早就研发出对应功能,只是用户对于产品没有足够了解,因此本篇将对录像功能来做一次介绍. 首先,录像就是对 ...

  5. EasyDarwin如何支持点播和RTMP/HLS直播?EasyDSS!

    2017年很长很长一段时间没有更新EasyDarwin开源项目了,虽然心里有很多EasyDarwin功能扩展的计划:比如同步录像.同步RTMP/HLS直播输出.拉模式转发优化.Onvif接入.GB28 ...

  6. ffmpeg+EasyDSS流媒体服务器实现稳定的rtmp推流直播

    本文转自EasyDarwin团队成员Alex的博客:http://blog.csdn.net/cai6811376/article/details/74783269 需求 在做EasyDSS开发时,总 ...

  7. 实现RTSP网站微信直播方案EasyNVR(linux版)部署问题之:ERR_CONTENT_LENGTH_MISMATCH

    发现问题: 想要优化一下EasyNVR相关功能,内部测试软件,于是在linux系统中部署了一台EasyNVR.当部署好,运行起来发现问题: EasyNVR的配置页面数据出不来. 分析问题: 基于是we ...

  8. EasyNVR无插件播放HLS/RTMP网页直播方案前端完善:监听表单变动

    在上一篇博客中我们表述完了防止提交成功后多余操作提交的一个过程:其中的精髓在于ajax的触发事件的使用. 而这篇博客主要想说明一下如何实时的判断出表单是否发生变化. 问题表述: 在网页前端的开发过程中 ...

  9. EasyNVR H5直播流媒体解决方案前端构建之:如何播放自动适配RTMP/HLS直播播放

    之前在进行EasyNVR多屏开发的时候,由于多屏功能不需要在手机端展示出来(pc多播放为RTMP,手机端播放为HLS),因此只注意到了引用videojs来进行rtmp的播放.由于不同项目需求不同,对h ...

随机推荐

  1. 组队训练3回放 ——hnqw1214

    组队训练3回放 练习赛过程回放: 开场先看最后一题, 发现是专题训练时做过的网络流原题, cst照着之前的打一遍,第一遍WA, 发现数组开小了,改大后AC. 这时候qw看B题, 一开始想不到方法, c ...

  2. EOJ Monthly 2018.7

    准备继续大学acm啦 又要开始愉快的码码码啦 第一次在华东师大OJ上面做题 看来EOJ上的积分体质是假的,我怎么一把上红??? A.数三角形 神tm的防AK题放在A,出题人很不友好啊... 先写了个暴 ...

  3. python的列表元组字典集合比较

    定义 方法 列表 可以包含不同类型的对象,可以增减元素,可以跟其他的列表结合或者把一个列表拆分,用[]来定义的 eg:aList=[123,'abc',4.56,['inner','list'],7- ...

  4. 2016北京集训测试赛(十四)Problem A: 股神小L

    Solution 考虑怎么卖最赚钱: 肯定是只卖不买啊(笑) 虽然说上面的想法很扯淡, 但它确实能给我们提供一种思路, 我们能不买就不买; 要买的时候就买最便宜的. 我们用一个优先队列来维护股票的价格 ...

  5. 从客户端(ExportContent="...ontinuous <br />Pass Count":13...")中检测到有潜在危险的 Request.Form 值。

    mvc中,用chrome浏览器导出excel提示如题错误的解决办法. <system.web> <httpRuntime requestValidationMode="2. ...

  6. Concurrency(Locking, Blocking and Row Versioning)

    https://www.simple-talk.com/sql/t-sql-programming/row-versioning-concurrency-in-sql-server/?utm_sour ...

  7. Android 使用SharedPreferences数据存储

    自己写了个SP辅助类 尽管写的有点啰嗦,也是自己的成果.例如以下: package com.yqy.yqy_testsputil; import android.annotation.Suppress ...

  8. circular-array-loop(蛮难的)

    https://leetcode.com/problems/circular-array-loop/ 题目蛮难的,有一些坑. 前后两个指针追赶找环的方法,基本可以归结为一种定式.可以多总结. pack ...

  9. 2016.7.14 generator基于注解和基于xml自动生成代码的区别

    1.generator配置文件generatorConfig.xml的区别 2.生成代码的区别 注:二者的实体类都一样. (1)基于XML 生成的文件有: 后面省略. 也就是说,基于xml的方式,是要 ...

  10. Web终端之使用shellinabox在浏览器进行ssh登录

    shellinbox有一个内建的web server作为基本的web ssh client,允许你通过指定的端口访问linux服务器的ssh shell,只要你的浏览器支持AJAX/JS/CSS就可以 ...