一种基于Android系统的解码视频的方法技术方案

技术编号:18240981 阅读:152 留言:0更新日期:2018-06-17 06:01
本发明专利技术公开了一种基于Android系统的解码视频的方法,涉及视频解码播放技术领域。该方法,通过在Android系统上对M3U8协议进行解析,然后对TS进行解包,再在Android系统上对h.264/aac进行解码播放(Android系统的设备本身可以播放mp4格式h.264/aac编码的视频),在使用过程中,Android用户下载M3U8文件,通过M3U8文件的索引地址,播放索引列表下具体的每个小段视频,实现了在Android设备上对M3U8索引列表下视频文件的解析播放,进而实现了流媒体的跨平台跨设备视频点播和直播体验。 1

A method of decoding video based on Android system

The invention discloses a decoding video method based on the Android system, which relates to the technical field of video decoding and playing. In this method, the M3U8 protocol is parsed on the Android system, then the TS is unwrapped, and then the h.264/aac is decoded and played on the Android system (the Android system device itself can play the MP4 format h.264/aac encoded video). In the course of use, the Android user downloads the M3U8 file and passes the index of the M3U8 file. The address, which plays the specific small segment video under the index list, realizes the analysis and playback of the video files under the M3U8 index list on the Android device, and then realizes the cross platform cross device video on demand and live broadcast experience of the streaming media. One

【技术实现步骤摘要】
一种基于Android系统的解码视频的方法
本专利技术涉及视频解码播放
,尤其涉及一种基于Android系统的解码视频的方法。
技术介绍
常用的流媒体协议主要有HTTP渐进下载和基于RTSP/RTP的实时流媒体协议.目前比较方便又好用的是用HTTP渐进下载协议,其中,Apple公司的HTTPLiveStreaming(HLS,超文本直播流)是这种协议的代表,HLS协议是由Apple公司创立,基于HTTP的流媒体传输交互协议,并且HLS协议支持自动码率适配,在HLS技术中Web服务器向通信终端提供视频流服务。它最初是苹果公司针对iPhone、iPod、iTouch和iPad等移动设备而开发的流,现在在桌面也有很多应用。在HLS技术中,Web服务器向客户端提供接近实时的音视频流。但在使用的过程中是使用的标准的HTTP协议,所以,只要使用HLS的技术,就能在普通的HTTP的应用上直接提供点播和直播。在AppStore中的视频相关的应用,基本都是应用的此种技术。该技术基本原理是将视频文件或视频流切分成小片(ts)并建立索引文件(M3U8)。支持的视频流编码为H.264,音频流编码为AAC。M3U8文件是指UTF-8编码格式的M3U文件。M3U文件是记录了一个索引纯文本文件,打开它时播放软件并不是播放它,而是根据它的索引找到对应的音视频文件的网络地址进行在线播放。M3U8是苹果公司推出的用在iPhone手机上的视频流媒体播出协议,视音频格式采用h.264/aac编码,使用mpeg2ts进行封包。在现有技术条件下,在基于Android系统的设备上无法实现对M3U8协议进行解析,也即这种协议的流媒体文件无法在基于Android系统的终端设备上进行播放,现在的解决的方案主要有以下两种:1.HTML播放,即在HTML中播放M3U8协议的流媒体文件。优点:HTML是直接支持M3U8协议的流媒体文件,不用考虑终端设备的系统问题。缺点:体验不好,没有原生开发的播放器流畅及操控的便捷性。2.浏览器伪装Ipad模式,即在Android设备的浏览器中设置为Ipad模式,然后播放该类型的的流媒体文件。优点:伪装成Apple设备访问行为,操作相对简单。缺点:浏览器播放体验不好,且容易被检查出原设备为基于Android系统的终端,造成播放失败。
技术实现思路
本专利技术的目的在于提供一种基于Android系统的解码视频的方法,从而解决现有技术中存在的前述问题。为了实现上述目的,本专利技术采用的技术方案如下:一种基于Android系统的解码视频的方法,包括如下步骤:S1,获取M3U8文件;S2,解析M3U8文件,获取.TS包文件;S3,对.TS包文件进行解析,直接获取TS视频片段地址,或对TS视频片段索引列表进行URL拼接后,获取TS视频片段地址;S4,创建播放任务列表,存储M3U8文件中每个TS视频片段的地址;S5,根据每个TS视频片段的地址,在基于Android系统的设备上播放任务列表中TS视频片段。优选地,S1具体为:通过网络传输从存储视频文件的服务器获取或从设备存储器中取得带解析的文件。优选地,S1中,所述M3U8文件如有加密,则获取key的URL地址和M3U8索引列表密文,获取内容解密公钥,并对M3U8索引列表密文进行解密。优选地,S2具体为,根据M3U8文件中的系列标签对M3U8文件进行解析,得到.TS包文件的URL地址或相对索引地址,所述系列标签包括:#EXTM3U,位于每个M3U8文件的第一行;#EXT-X-TARGETDURATION,用于指定最大的媒体段时间长度,其值在M3U8文件中只出现一次;#EXTINF,用于描述单个媒体文件的长度,其值小于或等于#EXT-X-TARGETDURATION标签中指定的值,该标签之后为.TS包文件的URL地址或相对索引地址。优选地,S3中,TS视频片段地址为文件名称、目录结构、目录结构且与M3U8文件的下载地址目录重叠或完整的片段下载地址;所述直接获取TS视频片段地址,或对TS视频片段索引列表进行URL拼接后,获取TS视频片段地址,采用如下方法进行实施:打开一级文件,获取TS视频片段地址;或打开一级文件后,对TS视频片段索引列表进行URL拼接后,获取TS视频片段地址;或在一级文件中,直接获取到二级文件的地址,在二级文件中,直接获取TS视频片段地址,或在二级文件中,拼接二级链接的地址获取到TS视频片段地址;或在一级文件中,拼接一级链接的地址获取到二级文件的地址,在二级文件中,直接获取TS视频片段地址,或在二级文件中,拼接二级链接的地址获取到TS视频片段地址。优选地,S4具体为:创建一个数组或序列的播放任务列表,用于存储解析获得的每个TS视频文件的索引地址,并将播放任务列表利用以下任意一种的安卓数据存储技术存储到应用数据里:SharedPreferences存储数据、文件存储数据、SQLite或其他数据库存储数据、ContentProvider存储数据和网络存储数据。优选地,S5具体为:将每个TS视频片段的地址传递给播放器,播放器根据这个地址获取相应的视频流文件进行播放。本专利技术的有益效果是:本专利技术实施例提供的基于Android系统的解码视频的方法,通过在Android系统上对M3U8协议进行解析,然后对TS进行解包,再在Android系统上对h.264/aac进行解码播放(Android系统的设备本身可以播放mp4格式h.264/aac编码的视频),在使用过程中,Android用户下载M3U8文件,通过M3U8文件的索引地址,播放索引列表下具体的每个小段视频,实现了在Android设备上对M3U8索引列表下视频文件的解析播放,进而实现了流媒体的跨平台跨设备视频点播和直播体验。附图说明图1是本专利技术实施例提供的基于Android系统的解码视频的方法流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施方式仅仅用以解释本专利技术,并不用于限定本专利技术。如图1所示,本专利技术实施例提供了一种基于Android系统的解码视频的方法,包括如下步骤:S1,获取M3U8文件;S2,解析M3U8文件,获取.TS包文件;S3,对.TS包文件进行解析,直接获取TS视频片段地址,或对TS视频片段索引列表进行URL拼接后,获取TS视频片段地址;S4,创建播放任务列表,存储M3U8文件中每个TS视频片段的地址;S5,根据每个TS视频片段的地址,在基于Android系统的设备上播放任务列表中TS视频片段。其中,S1具体可以为:通过网络传输从存储视频文件的服务器获取或从设备存储器中取得带解析的文件。在实际使用过程中,即用户下载M3U8文件。在本专利技术的一个优选实施例中,S1中,所述M3U8文件如有加密,则获取key的URL地址和M3U8索引列表密文,获取内容解密公钥,并对M3U8索引列表密文进行解密。采用上述方法,可以实现对M3U8文件的解密。本专利技术实施例中,S2具体可以为,根据M3U8文件中的系列标签对M3U8文件进行解析,得到.TS包文件的URL地址或相对索引地址,所述系列标签包括:#EXTM3U,位于每个M3U8文件的第一行;#EX本文档来自技高网
...
一种基于Android系统的解码视频的方法

【技术保护点】
1.一种基于Android系统的解码视频的方法,其特征在于,包括如下步骤:

【技术特征摘要】
1.一种基于Android系统的解码视频的方法,其特征在于,包括如下步骤:S1,获取M3U8文件;S2,解析M3U8文件,获取.TS包文件;S3,对.TS包文件进行解析,直接获取TS视频片段地址,或对TS视频片段索引列表进行URL拼接后,获取TS视频片段地址;S4,创建播放任务列表,存储M3U8文件中每个TS视频片段的地址;S5,根据每个TS视频片段的地址,在基于Android系统的设备上播放任务列表中TS视频片段。2.根据权利要求1所述的基于Android系统的解码视频的方法,其特征在于,S1具体为:通过网络传输从存储视频文件的服务器获取或从设备存储器中取得带解析的文件。3.根据权利要求1所述的基于Android系统的解码视频的方法,其特征在于,S1中,所述M3U8文件如有加密,则获取key的URL地址和M3U8索引列表密文,获取内容解密公钥,并对M3U8索引列表密文进行解密。4.根据权利要求1所述的基于Android系统的解码视频的方法,其特征在于,S2具体为,根据M3U8文件中的系列标签对M3U8文件进行解析,得到.TS包文件的URL地址或相对索引地址,所述系列标签包括:#EXTM3U,位于每个M3U8文件的第一行;#EXT-X-TARGETDURATION,用于指定最大的媒体段时间长度,其值在M3U8文件中只出现一次;#EXTINF,用于描述单个媒体文件的长度,其值小于或等于#EXT-X-TARGETDURATION标签中指定的值,该标签之后为.TS包文件的UR...

【专利技术属性】
技术研发人员:冀玉周
申请(专利权)人:航天科工智慧产业发展有限公司
类型:发明
国别省市:北京,11

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

1