在youku和pplive上看视频时,用户可以可以选择“标清”、“高清”或“超清”,原理比较好理解,对于同一个片子,在视频库存储着标清、高清和超清3个码率的版本,3个版本均按照时长切割成相同数量的数据片,用户选择高清时,播放器就加载对应时长上的高清片,选择超清时就加载对应时长上的超清片。这样一来用户就可以根据自己当前的网络状况和视频流畅性选择合适的视频播放模式。但即便是这样,MP4协议还是有他的美中不足:
1、智能程度不够,不能对网络状况进行自检测,然后自动切换到当前环境下的最高码率;
2、缓冲时间长,在视频开始时,播放器会选择尽可能高的码率,导致加载第一个视频片得时间长,缓冲慢。
苹果公司的创意可不是吹出来的,他搞出来了一个HLS协议,其最大的特点是支持动态码率,具体实现情况如下:
1、同MP4一样,针对不同的码率将视频切片成若干个版本,比如350K,700K,1.5M;
2、将上述切片信息组织成一个profile文件;
3、视频启动时,播放器加载并解析profile文件;
4、播放器首先从最低码率(350K)的版本中加载第一片,由于码率低,数据量小,故缓冲时间短;
5、视频播放稳定后,播放器自动检测网络状况,若发现网络状况很好,则后续会选择高码率的视频片,慢慢过渡到最高码率;
同理,若发现网络状况不佳,则会慢慢过渡到低码率的视频版本。形象一点的说法就是,视频一会儿清晰一会儿不清晰,
但比较流程。
总的说来,HLS在优先考虑流畅性的前提下支持码率的自动切换。相比于MP4确实有其先进之处,但该协议对客户端播放器提出了更高的要求,需要播放器去解析profile信息,对于一些比较低端的客户端还是有些吃不消的。
最近项目中用到这个协议,更深入的东西有待研究。
分享到:
相关推荐
例如,使用LibVLCSharp,你可以创建一个VideoLAN.LibVLC.Windows实例,配置输入源和输出目标为HLS流,然后启动推流。需要注意的是,推流过程中需要处理编码、封装和网络传输等复杂任务,所以选择合适的库和理解其...
### HLS流媒体协议概述 HLS(HTTP Live Streaming)是一种由苹果公司开发并推广的流媒体网络传输协议,主要用于提供高质量、低延迟的音视频内容传输服务。此文档旨在介绍HLS协议的基本概念、文件格式及其操作流程,...
由于HLS协议是流媒体技术的重要组成部分,掌握该协议对于IT行业中的专业人员来说是必不可少的。特别是在多媒体内容分发网络(CDN)、在线视频平台、OTT服务提供商等相关的技术职位上,对HLS协议的深入理解能够帮助...
海康摄像头支持HLS协议,意味着用户可以通过设置视频服务器,使其提供HLS流。在“视频服务器图文设置”中,通常会包含以下步骤: 1. 登录海康摄像头的管理界面。 2. 找到“视频输出”或“流媒体设置”等相关选项。 ...
4. **服务器部署**:转换完成后,HLS流需要上传到服务器,供客户端通过HTTP协议请求。`HlsServer.exe`可能是用于部署和管理HLS流的服务器程序,它可以接收上传的TS文件和M3U8文件,并提供HTTP服务。 5. **客户端...
此外,HLS协议支持不同比特率的多个流,称为自适应流,播放器应能根据网络状况自动选择合适的流。 7. **安全性**:HLS内容可以通过加密(如AES-128)保护,播放器需要解密密钥才能播放。这通常涉及到与服务器的额外...
在搭建HLS流媒体服务器的过程中,我们首先需要安装和配置一系列的库和工具,以便能够有效地处理视频流并将其转化为适应HLS协议的格式。以下是关键步骤的详细说明: 1. 安装依赖包:使用`yum install`命令安装必要的...
- 使用推流工具或软件(如FFmpeg),将编码后的流发送到服务器上的HLS流处理程序。 - 服务器接收推流数据,将其存储并切分成TS文件,并生成.m3u8索引文件。 - 随后,客户端就可以通过HTTP请求拉取这些内容进行...
通过深入理解播放列表文件的结构及其包含的各种标签,开发者能够更好地利用HLS协议构建稳定、高效的流媒体服务。未来随着网络技术和硬件性能的不断提升,HLS协议也将不断进化,以满足更加复杂多变的应用场景需求。
总的来说,这个基于AS3的HLS协议视频播放器的demo展示了如何使用Flex和AS3进行多媒体应用开发,同时处理适应性流媒体和实时流媒体的需求。它对于学习和理解流媒体技术、AS3编程以及Flex框架的使用都有很高的参考价值...
HLS是一种由苹果公司开发的互联网流媒体协议,它允许视频和音频内容以适应不同网络条件的片段进行传输。在使用LoadRunner(LR)这种强大的负载和性能测试工具时,模拟HLS协议可以帮助我们评估系统在高并发、长时间...
- **识别延迟问题**:对比RTMP、FLV和HLS流的包时间戳,可以评估不同协议的延迟表现。 - **检查编码质量**:分析FLV和HLS的编码参数,如比特率、分辨率,以及编码器是否正确工作。 - **确认流的完整性**:检查数据包...
例如,可以使用FFmpeg这样的开源工具将RTSP流转换为HLS流。后端服务器接收到RTSP流,通过FFmpeg进行转码和切片,生成M3U8索引文件,然后前端通过HTTP请求获取M3U8文件和TS片段进行播放。 在前端部分,我们可以使用...
本文将深入探讨`Nginx`如何利用`RTMP`和`HLS`协议实现视频流分发,并重点关注在`Win32`环境下设置`Nginx`视频直播服务器的方法。 首先,让我们了解`Nginx`的基本概念。`Nginx`是一个高性能、高并发的HTTP和反向代理...
总的来说,ExoPlayer是一个强大的工具,适用于开发需要精细控制和高级功能的Android媒体应用,尤其在处理DASH和HLS流媒体时。通过学习和应用ExoPlayer,开发者可以提供更高质量的流媒体体验,并能应对各种复杂的媒体...
《广播电视网络直播系统HLS流媒体技术的应用》 随着移动网络技术的快速发展,传统广电节目在互联网大潮中面临着收视率和盈利能力的双重挑战。HTTP Live Streaming(HLS)流媒体技术在这种背景下逐渐崭露头角,成为...
HLS协议中提到的媒体片段是指构成流媒体内容的基本单位,每个媒体片段都是一个独立的文件,可以采用不同的格式进行封装。 ##### 3.1 支持的媒体片段格式 HLS协议支持多种媒体片段格式,包括: - **MPEG-2 ...
### HLS压力测试详解 ... HTTP Live Streaming(HLS)是一种由苹果公司开发的基于HTTP的流媒体传输协议,主要用于...通过以上步骤,我们可以有效地对HLS流进行压力测试,确保在各种网络条件下都能提供高质量的视频体验。
HLS协议的核心概念是将无界的多媒体流分割成一系列短小的可下载TS(Transport Stream)片段,每个片段包含一小段时间的媒体数据。这些TS片段通过M3U8播放列表文件进行组织和调度,M3U8是一个文本文件,列出了可用的...