zoukankan      html  css  js  c++  java
  • 安防互联网直播服务中为什么HTML5目前还没有实时的低延迟视频流协议?

    我们最常见的流媒体协议的RTMP协议,在网络和硬件正常好的情况下,延迟可以达到1-3s左右,它也是目前主流视频直播中最常见的协议,像我们的安防流媒体服务器也支持这种协议的视频流输出。

    为什么到现在还没有 HTML5 上的实时(延迟 < 3s)视频流协议?理论上利用 websocket + AVC TS 是可以实现的,但是正常总会遇到很多现实的问题。

    在h5页面中,如果要用RTMP或HTTP-FLV,需要基于浏览器开发插件,然而浏览器有很多种,同时,基于别人的浏览器做插件,基本是不可能的。苹果公司开放了HLS协议,这种协议在h5中不需要插件即可进行播放,解决了在h5页面中直播的问题。

    然而,对于直播来说,HLS协议还是存在很多问题:

    1、播放时需要多次请求,对于网络质量的要求更高
    2、延迟在10s左右
    3、同时还存在延时累积,比如一分钟内的延迟有5s,看了10分钟后,延迟可能会达到50s
    4、只能支持拉流,不支持推流

    H5中播放直播的场景主要是,以ios、安卓为主要平台,分享到第三方应用中,通过hls协议拉流,来为app引流。此外,要想做到HLS小于3秒的延时,理论上是可以的,这需要看你ts分片的大小,和一个m3u8存储多少个ts的分片的索引。

    如果一个m3u8存储6个ts的分片索引,每个分片为5s,那么就起码有30s的延时。只要把分片的时长减少,比如减少到250ms每个分片,一个m3u8只存储一个ts分片,那么理论延时就只有250ms。但是这样的话,每秒钟至少有4次的HTTP请求,并且因为每一个ts分片都有I帧,大大增大了需要传送的带宽。

    会给服务器带来很多压力,也会增加流量上的消耗,所以总体上很难有兼顾带宽,延时和减轻服务器压力的HLS方案。

  • 相关阅读:
    Nhibernate多表查询解决办法
    Nhibernate compositeid class must override Equals()解决办法
    SQLSERVER2005安装说明
    IList转化为Dataset C#
    Named SQL queries
    把object转换成DataSet,进行数据绑定
    使用Lucene检索文档中的关键字
    使用代理为业务操作添加安全检测
    mongodb副本集架构搭建
    Java生成中文验证码
  • 原文地址:https://www.cnblogs.com/EasyNVR/p/12659444.html
Copyright © 2011-2022 走看看