zoukankan      html  css  js  c++  java
  • TSINGSEE青犀视频如何通过webrtc-client实现超低延时的安防直播?

    视频流媒体系统发展到现在,已经度过了高速发展的时期,目前直播所遇到的瓶颈就是,传统的直播技术延迟非常大,通过多媒体技术降低直播延迟、提高实时互动效率是我们TSINGSEE青犀视频团队研究低延迟直播技术的新目标。

    我们对当前主流直播技术做了分析,在低延迟直播技术出现前主要有 HLS 和 RTMP/HTTP-FLV 两个协议。

    HLS:延迟主要来自编码解码时产生延迟、网络延迟、CDN分发延迟。由于它是切片协议,延迟分两大块,一个是服务端有切片缓冲延迟,另一个是在播放端防抖缓冲会有延迟。切片的大小和数量都会影响 HLS延迟大小,一般在十秒以上。

    RTMP/HTTP-FLV: 目前国内大部分厂家在用的 RTMP,它相对于HLS在服务端做了优化。RTMP服务端不再进行切片,而是分别转发每一帧,CDN分发延迟非常小。RTMP延迟主要来自播放端防抖缓冲:为提升弱网环境下抖动时直播的流畅度,缓冲延迟一般有五到十秒。

    这两类协议都是基于TCP,国内厂商基本上已经将RTMP over TCP的延迟做到了极致,如果一个协议仍然基于TCP优化延迟,效果上很难优于目前的RTMP。TCP由于其自身的一些特性,并不适用于低延迟直播场景,主要原因如下:

    • 重传慢:TCP的ACK确认机制,丢包后发送侧超时重传,超时时间一般是200ms,会造成接收侧帧抖动。

    • 拥塞判断不准确:基于丢包的拥塞控制算法无法准确判断拥塞,丢包并不等于拥塞;也会造成发送链路 bufferbloat,链路 RTT 增大,延迟增加。

    • 灵活性差:这是最主要原因,TCP 拥塞控制算法在操作系统内核层实现,优化成本较高,移动端只有利用系统已有的优化。

    基于上述分析,我们准备开辟一条新的道路来解决低延时问题,这条道路就是WebRTC,通过WebRTC实现低延时直播。

    对于WebRTC的开发目前已经完成了大的框架,接下来正在优化细节的把控,我们的处理流程是:

    现场进行设备接入,拉取设备流,云端部署我们最新服务用户接入现场传输过来的视频流,通过WebRTC的技术进行低延时化处理。通过目前内部测试的效果,对于普通的安防设备,延时可以有效的控制在300毫秒,这个就可以让客户有个很好的用户体验了。

  • 相关阅读:
    泛泰A870(高通APQ8064t 600 cpu) Mokee4.4.2(Android4.4) 图赏
    cocos2d-x 游戏优化方案
    IOS中用UIStoryBoard类初始化/跳转控制器
    PHPthinking邀请您一起赚Money
    天凉好个秋(连载九)
    图像处理之Canny边缘检測
    SAE+wordpress邮箱问题,WP MAIL STMP插件配置但无效解决的方法
    Codeforces Beta Round #25 (Div. 2)--A. IQ test
    eclipse4.2+安装modelgoon插件,该插件支持在eclipse直接依据java文件生产类图
    使用Volley缓存图片时,缓存无效的原因。
  • 原文地址:https://www.cnblogs.com/TSINGSEE/p/14344047.html
Copyright © 2011-2022 走看看