zoukankan      html  css  js  c++  java
  • 从HLS协议看SVC的市场需求

    以下较多内容可能摘自

    http://arctg30.iteye.com/blog/1141308

    本人做少量编辑总结

    “在youku和pplive上看视频时,用户可以可以选择“标清”、“高清”或“超清”,原理比较好理解,对于同一个片子,在视频库存储着标清、高清和超清3个码率的版本,3个版本均按照时长切割成相同数量的数据片,用户选择高清时,播放器就加载对应时长上的高清片,选择超清时就加载对应时长上的超清片。这样一来用户就可以根据自己当前的网络状况和视频流畅性选择合适的视频播放模式。但即便是这样,MP4协议还是有他的美中不足:

    1、智能程度不够,不能对网络状况进行自检测,然后自动切换到当前环境下的最高码率;

    2、缓冲时间长,在视频开始时,播放器会选择尽可能高的码率,导致加载第一个视频片得时间长,缓冲慢。

    苹果公司的创意可不是吹出来的,他搞出来了一个HLS协议,其最大的特点是支持动态码率,具体实现情况如下:

    1、同MP4一样,针对不同的码率将视频切片成若干个版本,比如350K,700K,1.5M;

    2、将上述切片信息组织成一个profile文件;

    3、视频启动时,播放器加载并解析profile文件;

    4、播放器首先从最低码率(350K)的版本中加载第一片,由于码率低,数据量小,故缓冲时间短;

    5、视频播放稳定后,播放器自动检测网络状况,若发现网络状况很好,则后续会选择高码率的视频片,慢慢过渡到最高码率;

          同理,若发现网络状况不佳,则会慢慢过渡到低码率的视频版本。形象一点的说法就是,视频一会儿清晰一会儿不清晰,

          但比较流程。

    总的说来,HLS在优先考虑流畅性的前提下支持码率的自动切换。相比于MP4确实有其先进之处,但该协议对客户端播放器提出了更高的要求,需要播放器去解析profile信息,对于一些比较低端的客户端还是有些吃不消的。

    最近项目中用到这个协议,更深入的东西有待研究。”

     

    网络自适应不全是协议的事情,也要Codec支持,现有的H.264的SVC框架并不太好。有必要开发新的SVC框架以适应不同网络状态的需求。

     

     

  • 相关阅读:
    canvas上的像素操作(图像复制,细调)
    AMD、CMD、CommonJS 和 ES6 模块化规范
    JS垃圾回收
    函数式编程中如何处理副作用?
    vue中的$on,$emit,$once,$off源码实现
    重新学习react生命周期
    keep alive实现原理
    读取 url 参数方法
    使用Bootstratp Blazor +EF Codefirst 愉快的增删改查!
    记录一下爬取微信小程序视频的过程!
  • 原文地址:https://www.cnblogs.com/gaozehua/p/2265798.html
Copyright © 2011-2022 走看看