一种HLS流媒体的播放方法、系统及存储介质技术方案

技术编号:21341045 阅读:23 留言:0更新日期:2019-06-13 21:54
本发明专利技术公开了一种HLS流媒体的播放方法、系统及存储介质,方法包括:远程流媒体服务器对HLS文件中的索引列表文件和TS切片文件进行加密,本地流媒体服务器并监听到媒体播放器的播放请求后,本地流媒体服务器从远程流媒体服务器获取索引列表文件并解密,同时媒体播放器将视频播放域名替换为本地域名;本地流媒体服务器创建新索引列表文件,并将TS视频切片文件路径替换为本地域名,本地流媒体服务器下载TS视频切片文件进行解密并缓存,以使媒体播放器能直接播放本地解密后的TS视频切片文件。本发明专利技术使得Android平台的媒体播放器灵活支持加密HLS协议,更可以实现预加载功能,根据网速情况调整缓冲文件大小,减少在网速不稳定情况下出现不断缓冲现象。

A Playback Method, System and Storage Media for HLS Streaming Media

The invention discloses a playback method, system and storage medium of HLS streaming media, which includes: remote streaming media server encrypts index list file and TS slice file in HLS file, local streaming media server obtains index list file from remote streaming media server and decrypts it after listening to the playback request of media player. When the media player replaces the domain name of video play with the local name, the local streaming media server creates a new index list file and replaces the path of TS video slice file with the local name. The local streaming media server downloads TS video slice file for decryption and caching, so that the media player can directly play the decrypted TS video slice file. The invention makes the media player of Android platform flexibly support encrypted HLS protocol, realizes pre-loading function, adjusts the size of buffer file according to network speed, and reduces the phenomenon of continuous buffer under unstable network speed.

【技术实现步骤摘要】
一种HLS流媒体的播放方法、系统及存储介质
本专利技术涉及流媒体播放
,尤其涉及一种HLS流媒体的播放方法、系统及存储介质。
技术介绍
HLS(HTTPLiveStreaming,超文本直播流)协议是由苹果公司创立,针对iPhone,iPad等通信终端设计的,基于HTTP(HyperTextTransferProtocol,超文件传输协议)的流媒体传输交互协议,并且HLS协议支持自动码率适配,在HLS技术中Web服务器向通信终端提供接近实时的音视频流。AndroidMediaPlayer是智能电视等采用Android平台的系统自带的多媒体播放器,借助于多媒体类MediaPlayer的支持,可以很方便在在应用中播放音频、视频。但是,Android平台的系统播放器MediaPlayer支持的协议(不支持RTMP、MMS等)和封装格式非常有限,并且不能播放加密的HLS流媒体,无法对视频源增加自定义加密算法和防盗链技术。综上可知,现有技术在实际使用上显然存在不便与缺陷。因此,现有技术还有待于改进和发展。
技术实现思路
鉴于上述现有技术的不足之处,本专利技术为解决现有技术缺陷和不足,提出了一种HLS流媒体的播放方法,通过创建本地http流媒体代理服务器作为系统媒体播放器和远程流媒体服务器的中介,由本地http流媒体代理服务器应系统媒体播放器的请求完成对加密HLS流媒体的解密并实时返回给系统媒体播放器进行播放,使得Android平台的智能电视等的系统媒体播放器MediaPlayer可以灵活支持加密HLS协议。本专利技术解决技术问题所采用的技术方案如下:一种HLS流媒体的播放方法,用于在android平台支持自定义加密算法的HLS流媒体的播放,包括如下步骤:A、远程流媒体服务器对HLS文件中的索引列表文件和TS切片文件进行加密;B、创建本地流媒体服务器并监听到所述媒体播放器的播放请求后,所述本地流媒体服务器从所述远程流媒体服务器获取索引列表文件并解密,同时所述媒体播放器将视频播放域名替换为本地域名;C、本地流媒体服务器创建新索引列表文件,并将TS视频切片文件路径替换为本地域名,所述本地流媒体服务器下载TS视频切片文件进行解密并缓存,以使所述媒体播放器直接播放本地解密后的TS视频切片文件。作为进一步的技术方案改进,所述步骤A远程流媒体服务器对HLS文件进行加密是对HLS文件中的索引列表文件和TS切片文件内容双重加密,算法采用标准AES-128加密算法。作为进一步的技术方案改进,所述步骤B中创建本地流媒体服务器是采用轻量级的开源http服务器NanoHTTPD。作为进一步的技术方案改进,所述步骤B中所述本地流媒体服务器从所述远程流媒体服务器获取索引列表文件并解密是从远程流媒体服务器中获取M3U8索引列表文件并对该M3U8索引列表文件进行解密处理。作为进一步的技术方案改进,所述步骤B中所述媒体播放器将视频播放域名替换为本地域名是将所述视频播放的域名替换为本地127.0.0.1域名,即媒体播放器向所述本地流媒体服务器发送请求。作为进一步的技术方案改进,所述步骤C中所述本地流媒体服务器创建新索引列表文件是创建新的M3U8索引列表文件,并将该新的M3U8索引列表文件中的TS视频切片文件路径替换为本地127.0.0.1域名路径,使得所述媒体播放器播放所述本地流媒体服务器已下载的TS视频切片文件。作为进一步的技术方案改进,所述步骤C中所述本地流媒体服务器下载TS视频切片文件进行解密并缓存,以使所述媒体播放器直接播放本地解密后的TS视频切片文件具体包括如下步骤:所述本地流媒体服务器通过M3U8索引列表文件解析获取TS文件列表下载地址;所述本地流媒体服务器根据TS文件列表下载地址从所述远程流媒体服务器下载TS视频切片文件,对TS视频切片文件进行异步解密处理,并缓存到所述本地流媒体服务器;所述本地流媒体服务器将所述新的M3U8索引列表文件返回给所述媒体播放器,由媒体播放器直接播放本地流媒体服务器上缓存的TS视频切片文件。本专利技术还提供一种HLS流媒体的播放系统,用于在android平台支持自定义加密算法的HLS流媒体的播放,包括处理器,以及与所述处理器连接的存储器,所述存储器存储有android平台HLS流媒体的播放程序,该android平台HLS流媒体的播放程序被所述处理器执行时实现以下步骤:A、远程流媒体服务器对HLS文件中的索引列表文件和TS切片文件进行加密;B、创建本地流媒体服务器并监听到所述媒体播放器的播放请求后,所述本地流媒体服务器从所述远程流媒体服务器获取索引列表文件并解密,同时所述媒体播放器将视频播放域名替换为本地域名;C、本地流媒体服务器创建新索引列表文件,并将TS视频切片文件路径替换为本地域名,所述本地流媒体服务器下载TS视频切片文件进行解密并缓存,以使所述媒体播放器直接播放本地解密后的TS视频切片文件。本专利技术还提供一种存储介质,所述存储介质存储有android平台HLS流媒体的播放程序,该android平台HLS流媒体的播放程序被处理器执行时实现上述android平台HLS流媒体的播放方法的步骤。由此,本专利技术使得Android平台的智能电视机等的系统媒体播放器可以灵活支持加密HLS协议,并且利用其硬解功能能够高效、直接地播放TS高清流媒体文件;更好的是,本地http流媒体服务器端可以实现预加载功能,根据用户网速情况,自动调整缓冲文件大小,减少在网速不稳定情况下出现不断缓冲现象。附图说明图1是本专利技术一种HLS流媒体的播放方法优选实施例的流程图。具体实施方式为使本专利技术的目的、技术方案及优点更加清楚、明确,以下参照附图并举实施例对本专利技术进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。HTTPLiveStreaming(缩写是HLS)是一个由苹果公司提出的基于HTTP的流媒体网络传输协议。是苹果公司QuickTimeX和iPhone软件系统的一部分。它的工作原理是把整个流分成一个个小的基于HTTP的文件来下载,每次只下载一些。当媒体流正在播放时,客户端可以选择从许多不同的备用源中以不同的速率下载同样的资源,允许流媒体会话适应不同的数据速率。HLS只请求基本的HTTP报文,可以穿过任何允许HTTP数据通过的防火墙或者代理服务器,它也很容易使用内容分发网络来传输媒体流。HLS的视频的封装格式是TS(TransportStream),还定义了用来控制播放的m3u8索引列表文件。在HLS技术中Web服务器向通信终端提供接近实时的音视频流。NanoHttpd是个很强大的开源库,是使用Java实现的微型webserver,是一个可嵌入应用程序的轻量级的HTTPServer,对Android平台来说,是一个很不错的微型服务器解决方案,可以非常方便地集成到Android应用中去。AndroidMediaPlayer是Android平台的智能电视等系统自带的多媒体播放器,借助于多媒体类MediaPlayer的支持,可以很方便在应用中播放音频、视频。但是,Android平台的智能电视等的系统媒体播放器MediaPlayer支持的协议(不支持RTMP、MMS等)和封装格式非常有限,并且不能播放加密的HL本文档来自技高网...

【技术保护点】
1.一种HLS流媒体的播放方法,用于在android平台媒体播放器进行加密算法的HLS 流媒体播放,其特征在于包括如下步骤:A、远程流媒体服务器对HLS文件中的索引列表文件和TS切片文件进行加密;B、创建本地流媒体服务器并监听到所述媒体播放器的播放请求后,所述本地流媒体服务器从所述远程流媒体服务器获取索引列表文件并解密,同时所述媒体播放器将视频播放域名替换为本地域名;C、本地流媒体服务器创建新索引列表文件,并将TS视频切片文件路径替换为本地域名,所述本地流媒体服务器下载TS视频切片文件进行解密并缓存,以使所述媒体播放器直接播放本地解密后的TS视频切片文件。

【技术特征摘要】
1.一种HLS流媒体的播放方法,用于在android平台媒体播放器进行加密算法的HLS流媒体播放,其特征在于包括如下步骤:A、远程流媒体服务器对HLS文件中的索引列表文件和TS切片文件进行加密;B、创建本地流媒体服务器并监听到所述媒体播放器的播放请求后,所述本地流媒体服务器从所述远程流媒体服务器获取索引列表文件并解密,同时所述媒体播放器将视频播放域名替换为本地域名;C、本地流媒体服务器创建新索引列表文件,并将TS视频切片文件路径替换为本地域名,所述本地流媒体服务器下载TS视频切片文件进行解密并缓存,以使所述媒体播放器直接播放本地解密后的TS视频切片文件。2.根据权利要求1所述的一种HLS流媒体的播放方法,其特征在于,所述步骤A远程流媒体服务器对HLS文件进行加密是对HLS文件中的索引列表文件和TS切片文件内容双重加密,算法采用标准AES-128加密算法。3.根据权利要求1所述的一种HLS流媒体的播放方法,其特征在于,所述步骤B中创建本地流媒体服务器是采用轻量级的开源http服务器NanoHTTPD。4.根据权利要求1所述的一种HLS流媒体的播放方法,其特征在于,所述步骤B中所述本地流媒体服务器从所述远程流媒体服务器获取索引列表文件并解密是从远程流媒体服务器中获取M3U8索引列表文件并对该M3U8索引列表文件进行解密处理。5.根据权利要求1所述的一种HLS流媒体的播放方法,其特征在于,所述步骤B中所述媒体播放器将视频播放域名替换为本地域名是将所述视频播放的域名替换为本地127.0.0.1域名,即媒体播放器向所述本地流媒体服务器发送请求。6.根据权利要求5所述的一种HLS流媒体的播放方法,其特征在于,所述步骤C中所述本地流媒体服务器创建新索引列表文件是创建新的M3U8索引列表文件,并将该新的M3U8索引列表文件中的TS视频切片文件路径替...

【专利技术属性】
技术研发人员:唐勇
申请(专利权)人:深圳市雷鸟信息科技有限公司
类型:发明
国别省市:广东,44

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

1