当前位置: 首页 > 专利查询>范文鲜专利>正文

提高Android平台的HLS流播放器容错的方法技术

技术编号:11753540 阅读:267 留言:0更新日期:2015-07-22 01:55
一种效率高且可提高Android平台的HLS播放器容错的方法。包括以下步骤:1)在应用Android操作系统的移动智能终端的网络连接端设置HLS Proxy模块;2)将HLS流服务器提供的播放地址传送到HLS Proxy模块;3)HLS Proxy模块将由网络上下载的流媒体进行缓冲、转码、适配并自动处理流媒体切片的下载、拼接、校验、码流自适应操作并将处理后的流媒体以本地播放地址或文件保存;4)HLS Proxy模块以本地播放器的方式向客户端播放HLS Proxy模块生成的保存在本地播放地址或文件中的流媒体。本发明专利技术能显著提升用户的播放体验,有效解决死地址、坏地址、循环嵌套地址等多种问题或副作用。

【技术实现步骤摘要】

本专利技术涉及流媒体
,具体涉及一种。
技术介绍
流媒体是指采用流式传输的方式在Internet播放的媒体格式。流媒体又叫流式媒体,它是指商家用一个视频传送服务器把节目当成数据包发出,传送到网络上,用户通过解压设备对这些数据进行解压后,节目就会像发送前那样显示出来。流媒体实现的关键技术就是流式传输。流式传输定义很广泛,主要指通过网络传送媒体(如视频、音频)的技术总称。其特定含义为通过Internet将影视节目传送到PC机。实现流式传输有两种方法:实时流式传输(Real time streaming)和顺序流式传输(progressive streaming)。实时流式传输指保证媒体信号带宽与网络连接匹配,使媒体可被实时观看到。实时流式传输根据网络情况调整输出音视频的质量从而实现媒体的持续的实时传送,用户可快进或后退以观看前面或后面的内容。顺序流式传输是顺序下载,在下载文件的同时用户可观看在线媒体,在给定时刻,用户只能观看已下载的那部分,而不能跳到还未下载的前头部分,在传输期间不会根据用户连接的速度对下载顺序做调整。常用的流媒体协议主要有HTTP渐进下载(其为顺序流式传输方式)和基于RTSP/RTP的实时下载(其为实时流式传输方式)流媒体协议。目前适用于复杂的移动互联网环境的是HTTP渐进下载的方法。其中尤以apple公司的HTTP Live Streaming (简称HLS)为代表。HLS最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备所开发的流。HTML5 (即超文本标记语言)直接其。HTTP Live Streaming基于HTTP的流媒体网络传输协议。是苹果公司QuickTimeX和1s软件系统的一部分。它的工作原理是把整个流媒体分成一个个小的基于HTTP的文件来下载,每次只下载一些。当流媒体正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。在开始一个流媒体会话时,客户端会下载一个包含元数据的extended M3U(m3u8)playlist文件,用于寻找可用的流媒体。HLS只请求基本的HTTP报文,与实时传输协议(RTP)不同,HLS可以穿过任何允许HTTP数据通过的防火墙或者代理服务器。它也很容易使用内容分发网络来传输流媒体。HLS的这些优势使得其在各大视频网站、客户端中广泛应用。但是国内很多的视频服务器如CNTV、PPTV、LETV和搜狐等对HLS协议的实现有些不同,原生的Android代码不一定兼容得到,或者有些机型的BSP没有实现HLS的协议。另外,Android的原始播放器或市面上一些播放器并没有针对这些问题进行解决,造成用户观看这些视频是可能中断播放甚至是完全播放不了。那么HTTP Live Streaming是怎么样工作的呢。在以前的视频播放技术中,播放模式中必须等待整个文件下载完才行,而在HLS技术中Web服务器向客户端提供接近实时的音视频流。但在使用的过程中使用的是标准的HTTP协议,所以这时,只要使用HLS的技术,就能在普通的HTTP的应用上直接提供点播和直播。具体原理可参见下面的步骤:视频采集_>编码器_>流分割_>流服务器(下发索引文件和视频文件)_>客户端。内容准备的过程大约两种,一是视频采集,编码器首先将摄像机实时采集的音视频数据压缩编码为符合特定标准的音视频基本流或者已经编码后的文件(要使用H.264视频和AAC音频编制的编码文件,因为HLS技术只支持H.264视频和AAC音频),然后将编码后的文件封装成符合MPEG-2 (如MPEG2TS、MPEG2PS,主要是因为其声音和视频会交织在一起,也会有关键帧来让视频可以直接播放)的封装格式。针对HLS的流媒体分割方式,与所述RTSP的实时下载或普通点播有较大的不同,HLS会将MPEG-2分割成若干个ts的文件。分割过程大多是按时间来切,根据国外的资料,建议切1s—个的文件。另外,分割还有一点不同,就是所用的流分割器会生成一个含有指向这些小ts文件的索引文件。最后,将这些切分了的小的一系列的ts文件,放到普通的web服务器中就行了。在CDN(即内容分发网络,全称是Content Delivery Network,)中也是一样,因为请求这些文件会使用标准的HTTP协议。索引文件后缀是.m3u8,索引文件采用扩展的M3U播放列表格式,其实就一文本。内部的视频的地址会是如下形式:http: //media, example, com/segmentl.ts、http: //media, example, com/segment2.ts> http://media, example, com/segment3.ts 等。所以此时可以直接做Cache (即高速缓冲存储器)或者直接将其放到Web服务器中,简单方便。如果MME(即多用途互联网邮件扩展类型)的信息输出不符的话,要针对每个 ts 的后缀.m3u8 进行相应修改:.m3u8applicat1n/x_mpegURL、.ts video/MP2T。最后就是客户端,如果是HTML直接在HTML5中支持这种视频可以使用如下标签。〈video tabindex = "0"height = "480"width = "640">〈source src = ^/contentl/contentl.mSuS^)〈/video〉如果是应用客户端(Safari QuickTime之类),就得装软件来支持,客户端会根据选择的流的索引来下载文件,当下载了最少二段后开始播放。直接m3u8的索引结束。另外,HTTP可以设计成自适应比特率流,在不同网络环境,选择下载不同码流的视频。综上,HTTP Live Streaming无论是直播还是点播,都能做到近似实时的方式来进行流播放。理论上的最小时延是每个切片的长。HLS在互联网视频领域应用广泛,在面对移动互联网的各种复杂环境,也遇到了许多问题,HLS协议虽然有规范,但各家具体实现方案不一,导致播放器无法兼容,存在的具体问题如下:1)HLS协议支持相对地址,但播放器不支持多级相对地址。如图1所示,展示的是一个HLS播放地址,携带了多级的相对地址。2)由于网络等原因,.ts切片丢失造成播放卡顿、黑屏等问题。HLS协议中,允许.ts片段丢失,播放器一般也是请求失败就跳过本片段,但从用户的角度看,就会有体验不好的感觉问题。3)有些Android机器播放在线视频能力较差,而播放本地视频时则没问题。常规方式和常规播放器,都是在线渐进式下载。4)HLS按照协议规范,将流媒体按设计的下载切片逐个下载,但在真实的网络传输环境中,由于网络传输状况是动态的,如此按部就班的依次下载流媒体,在网络状况较差时则不能圆满、完整的将流媒体下载下来。由此,可能会在用户所用wifi网络速度较快的情况下仍然不能看到较理想、完整的下载视频。
技术实现思路
本专利技术要解决的技术问题是提供一种效率高且可提高Android平台的HLS播放器容错的方法。为了解决上述技术问题,本专利技术采用的技术方案为:本专利技术的,包括常规的视频采集,生成视频文件,将该视频文件发送本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/62/CN104796796.html" title="提高Android平台的HLS流播放器容错的方法原文来自X技术">提高Android平台的HLS流播放器容错的方法</a>

【技术保护点】
一种提高Android平台的HLS流播放器容错的方法,包括常规的视频采集,生成视频文件,将该视频文件发送到HLS流服务器,再由HLS流服务器通过互联网对外提供播放地址的方法,其特征在于:还包括以下步骤:1)在应用Android操作系统的移动智能终端的网络连接端设置HLS Proxy模块;2)将HLS流服务器提供的播放地址传送到HLS Proxy模块;3)HLS Proxy模块将由网络上下载的流媒体进行缓冲、转码、适配并自动处理流媒体切片的下载、拼接、校验、码流自适应操作并将处理后的流媒体以本地播放地址或文件保存;4)HLS Proxy模块以本地播放器的方式向客户端播放HLS Proxy模块生成的保存在本地播放地址或文件中的流媒体。

【技术特征摘要】

【专利技术属性】
技术研发人员:范文鲜
申请(专利权)人:范文鲜
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1