`
arctg30
  • 浏览: 17243 次
  • 来自: ...
社区版块
存档分类
最新评论

HLS流协议

阅读更多

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

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

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

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

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

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

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

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

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

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

      但比较流程。

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

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


分享到:
评论

相关推荐

    HLS协议官方文档

    本文是HLS协议V7官方文档,英文原版,是HLS流媒体必须掌握的协议技术。

    hls拉流实例1,hls推流,C#源码.rar

    例如,使用LibVLCSharp,你可以创建一个VideoLAN.LibVLC.Windows实例,配置输入源和输出目标为HLS流,然后启动推流。需要注意的是,推流过程中需要处理编码、封装和网络传输等复杂任务,所以选择合适的库和理解其...

    hls流媒体服务器搭建过程V3.01

    在搭建HLS流媒体服务器的过程中,我们首先需要安装和配置一系列的库和工具,以便能够有效地处理视频流并将其转化为适应HLS协议的格式。以下是关键步骤的详细说明: 1. 安装依赖包:使用`yum install`命令安装必要的...

    srs 的 flv hls rtmp流的抓包及图片截图

    - **识别延迟问题**:对比RTMP、FLV和HLS流的包时间戳,可以评估不同协议的延迟表现。 - **检查编码质量**:分析FLV和HLS的编码参数,如比特率、分辨率,以及编码器是否正确工作。 - **确认流的完整性**:检查数据包...

    本地音视频文件转HLS流直播

    4. **服务器部署**:转换完成后,HLS流需要上传到服务器,供客户端通过HTTP协议请求。`HlsServer.exe`可能是用于部署和管理HLS流的服务器程序,它可以接收上传的TS文件和M3U8文件,并提供HTTP服务。 5. **客户端...

    HLS流媒体协议描述文档

    This document describes a protocol for ...本文描述了一种用于传输无界流的协议。 多媒体数据。它指定文件的数据格式和 服务器(发送者)和客户端要采取的行动 (接收器)的溪流。它描述了这个协议的7版本。

    hls拉流实例1,hls推流,C#源码.zip

    - 使用推流工具或软件(如FFmpeg),将编码后的流发送到服务器上的HLS流处理程序。 - 服务器接收推流数据,将其存储并切分成TS文件,并生成.m3u8索引文件。 - 随后,客户端就可以通过HTTP请求拉取这些内容进行...

    海康摄像头HLS视频播放示例

    海康摄像头支持HLS协议,意味着用户可以通过设置视频服务器,使其提供HLS流。在“视频服务器图文设置”中,通常会包含以下步骤: 1. 登录海康摄像头的管理界面。 2. 找到“视频输出”或“流媒体设置”等相关选项。 ...

    基于as3的hls协议视频播放器的demo

    总的来说,这个基于AS3的HLS协议视频播放器的demo展示了如何使用Flex和AS3进行多媒体应用开发,同时处理适应性流媒体和实时流媒体的需求。它对于学习和理解流媒体技术、AS3编程以及Flex框架的使用都有很高的参考价值...

    LR模拟HLS协议

    HLS是一种由苹果公司开发的互联网流媒体协议,它允许视频和音频内容以适应不同网络条件的片段进行传输。在使用LoadRunner(LR)这种强大的负载和性能测试工具时,模拟HLS协议可以帮助我们评估系统在高并发、长时间...

    nginx(rtmp,hls)视频流分发

    本文将深入探讨`Nginx`如何利用`RTMP`和`HLS`协议实现视频流分发,并重点关注在`Win32`环境下设置`Nginx`视频直播服务器的方法。 首先,让我们了解`Nginx`的基本概念。`Nginx`是一个高性能、高并发的HTTP和反向代理...

    hls直播协议_rfc8216_hls.pdf

    HLS协议的核心概念是将无界的多媒体流分割成一系列短小的可下载TS(Transport Stream)片段,每个片段包含一小段时间的媒体数据。这些TS片段通过M3U8播放列表文件进行组织和调度,M3U8是一个文本文件,列出了可用的...

    HLS Stream Dump

    本文将详细讲解HLS流媒体的相关知识点,并基于" HLS Stream Dump "这一主题进行深入探讨。 1. **HLS协议概述**: HLS是一种基于HTTP的流媒体协议,它的核心思想是将视频内容分割成一系列小的、可下载的TS...

    HLS M3U8协议文档(英文版)

    HTTP Live Streaming(HLS)协议文档 HTTP Live Streaming(HLS)是一种流媒体协议,用于传输无限流媒体数据。该协议由Apple Inc....HLS协议是一种灵活、可扩展的流媒体协议,广泛应用于流媒体领域。

    Flash 播放器的插件支持HLS播放

    在实际应用中,开发者需要将这个插件集成到他们的Flash Player应用程序中,以实现对HLS流的支持。这通常涉及以下几个步骤: 1. 下载并引入插件代码到项目中。 2. 在OSMF上下文中注册插件,使系统认识并能处理HLS流。...

    H5移动端播放HLS流

    本篇文章将详细探讨如何在H5移动端实现HLS流的播放。 首先,HLS是由Apple公司提出的一种基于HTTP的流媒体系统,其主要特点是将视频内容分割成多个连续的短小的TS(Transport Stream)文件,并通过一个M3U8播放列表...

    HLS流媒体服务器代理

    在Java中实现HLS流媒体服务器代理,主要是为了处理和分发这些TS文件,以及相关的M3U8索引文件。M3U8是HLS流的播放列表文件,它包含了所有可用的TS文件的URL以及它们的顺序。服务器代理的主要任务包括: 1. **接收...

    exoplayer播放器简单实用播放dash、hls流

    总的来说,ExoPlayer是一个强大的工具,适用于开发需要精细控制和高级功能的Android媒体应用,尤其在处理DASH和HLS流媒体时。通过学习和应用ExoPlayer,开发者可以提供更高质量的流媒体体验,并能应对各种复杂的媒体...

    HLS协议标准

    HLS(HTTP Live Streaming)协议是苹果公司推出的一种基于HTTP的流媒体网络传输协议,主要用于在互联网上进行实时视频流的分发。该协议的主要特点是将连续的视频流分割成一系列较短的HTTP可下载的媒体片段,这些片段...

Global site tag (gtag.js) - Google Analytics