一种流媒体的播放方法及相关装置制造方法及图纸

技术编号:21168068 阅读:33 留言:0更新日期:2019-05-22 09:53
本申请公开了一种流媒体的播放方法及相关装置。方法包括:获取目标流媒体的索引文件;下载索引文件中预设字段之后首个索引项对应的视频文件;若视频文件中的视频帧不属于同一个画面组,则将视频文件拆分成第一视频子文件和第二视频子文件,第一视频子文件中的视频帧属于同一个画面组,第二视频子文件中的视频帧属于另一个画面组;生成第一视频子文件在本地的第一索引项和第二视频子文件在本地的第二索引项;将第一索引项和第二索引项更新至索引文件。本申请能够对HLS协议的索引文件进行修复,解决同一画面组下的视频文件的索引信息被字段(如#EXT‑X‑DISCONTINUITY字段)相隔的问题,可避免终端设备在播放画面组下的视频流时误清除当前缓存的视频解码数据。

A Method of Playing Streaming Media and Related Devices

This application discloses a streaming media broadcasting method and related devices. The methods include: obtaining the index file of the target streaming media; downloading the video file corresponding to the first index item after the preset field in the index file; dividing the video file into the first video sub-file and the second video sub-file if the video frame in the video file does not belong to the same picture group; the video frame in the first video sub-file belongs to the same picture group and the second video sub-file. The video frame in the file belongs to another picture group; generates the first index item of the first video sub-file in the locality and the second index item of the second video sub-file in the locality; and updates the first index item and the second index item to the index file. This application can repair the index files of HLS protocol, solve the problem that the index information of video files under the same picture group is separated by fields (such as EXT_X_DISCONTINUITY field), and avoid the terminal device mistakenly clearing the current cached video decoding data when playing the video stream under the picture group.

【技术实现步骤摘要】
一种流媒体的播放方法及相关装置
本申请涉及多媒体播放
,尤其是一种流媒体的播放方法及相关装置。
技术介绍
超文本直播流(HTTPLiveStreaming,HLS)是苹果公司的动态码率自适应技术。相对于常规的流媒体直播协议,支持HLS协议的流媒体服务器把整个流媒体拆分成一个个小的多媒体文件进行存储。拆分后的多媒体文件的索引信息会记录在m3u8文件(索引文件)中,终端设备可以基于m3u8文件选择不同的速率对拆分后的多媒体文件进行下载播放。现有技术中,m3u8文件会引入#EXT-X-DISCONTINUITY字段以标记流媒体的音视频编码参数发生改变。一般情况下,一个流媒体的m3u8文件会存在多个#EXT-X-DISCONTINUITY字段。终端设备在播放流媒体的过程中,遇到#EXT-X-DISCONTINUITY字段会清除当前缓存的视频解码数据。目前HLS协议对同一画面组(GroupofPictures,GOP)的视频流切分没有考虑到m3u8文件中#EXT-X-DISCONTINUITY字段对播放带来的影响。因此m3u8文件经常会出现#EXT-X-DISCONTINUITY字段将同一GOP下的不同视频文件的索引信息相隔,从而导致终端设备在加载播放被隔开的后半段GOP的视频流时,因之前缓存的视频解码数据丢失而无法正常进行解码,致使播放画面出现异常现象。
技术实现思路
本申请实施例的目的是提供一种流媒体的播放方法及相关装置,用于在终端设备播放GOP下的视频流的过程中,避免终端设备误清除当前缓存的视频解码数据。为了实现上述目的,本申请实施例采用下述技术方案:第一方面,提供了一种流媒体的播放方法,包括:获取目标流媒体的索引文件;下载所述索引文件中预设字段之后的首个索引项对应的视频文件;若所述视频文件中的视频帧不属于同一个画面组,则将所述视频文件拆分成第一视频子文件和第二视频子文件,所述第一视频子文件中的视频帧属于同一个画面组,所述第二视频子文件中的视频帧属于另一个画面组;生成所述第一视频子文件在本地的第一索引项和所述第二视频子文件在本地的第二索引项;将所述第一索引项和所述第二索引项更新至所述索引文件。第二方面,提供一种流媒体的播放装置,包括:获取模块,用于获取目标流媒体的索引文件;下载模块,用于下载所述索引文件中预设字段之后的首个索引项对应的视频文件;拆分模块,用于若所述视频文件中的视频帧不属于同一个画面组,则将所述视频文件拆分成第一视频子文件和第二视频子文件,所述第一视频子文件中的视频帧属于同一个画面组,所述第二视频子文件中的视频帧属于另一个画面组;索引生成模块,用于生成所述第一视频子文件在本地的第一索引项和所述第二视频子文件在本地的第二索引项修复模块,用于将所述第一索引项和所述第二索引项更新至所述索引文件。第三方面,提供了一种终端设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述计算机程序被该处理器执行时实现第一方面所述的播放方法中的步骤。本申请实施例的方案可以修复HLS协议的索引文件中同一画面组下的视频文件的索引信息被字段(如#EXT-X-DISCONTINUITY字段)相隔的问题,从而避免终端设备在播放画面组下的视频流时误清除当前缓存的视频解码数据,进而改善播放画面的质量。由于不需对终端设备的播放器进行改进,因此本申请实施例的方案易于实现,具有较高的实用性。附图说明此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:图1是本申请实施例提供的流媒体的播放方法的步骤示意图;图2是本申请实施例提供的播放方法中检索流程的步骤示意图;图3是本申请实施例提供的播放方法中修复流程的步骤示意图;图4是本申请实施例提供的流媒体的播放装置的逻辑结构示意图;图5是本申请实施例提供的终端设备的硬件结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。如前所述,现有技术中终端设备在播放流媒体的过程中,遇到#EXT-X-DISCONTINUITY字段,会清除所缓存的视频解码数据,这样一来,若同一GOP的视频流的索引信息在m3u8文件中被#EXT-X-DISCONTINUITY字段相隔,则会导致终端设备无法正常对被隔开的后半段视频流进行解码,造成播放画面出现花屏等异常现象。针对这一问题,本申请实施例提供一种解决方案。一方面,本申请实施例提供一种流媒体的播放方法,该播放方法应用于终端设备,如图1所示,包括:步骤S102,获取目标流媒体的索引文件;针对步骤S102而言:目标流媒体为基于HLS协议的流媒体数据,索引文件即上文所述的m3u8文件。本步骤可以向网络侧获取目标流媒体的索引文件。比如,终端设备在播放直播时,可以向直播平台获取直播相关的流媒体的索引文件。步骤S104,下载索引文件中预设字段之后的首个索引项对应的视频文件;针对步骤S104而言:上述预设字段可以为#EXT-X-DISCONTINUITY字段,本步骤具体从索引文件中#EXT-X-DISCONTINUITY字段之后的首个#EXTINF字段中获取URL,并基于该URL下载视频文件。步骤S106,若视频文件中的视频帧不属于同一个画面组,则将视频文件拆分成第一视频子文件和第二视频子文件,第一视频子文件中的视频帧属于同一个画面组,第二视频子文件中的视频帧属于另一个画面组;针对步骤S106而言:i帧是每个画面组GOP的第一帧,因此本步骤可以判断视频文件中的首帧是否为i帧;若不是i帧,则可以确定视频文件中的视频帧属于不同的GOP。即,视频文件i帧之前的视频帧属于上一GOP的视频流,其余视频帧属于当前GOP的视频流。因此,本步骤拆分获得的第一视频子文件包含视频文件中首个i帧之前的所有视频帧,第二视频子文件包含视频文件中除第一视频子文件外的所有视频帧。步骤S108,生成第一视频子文件在本地的第一索引项和第二视频子文件在本地的第二索引项;针对步骤S108而言:本步骤可以对第一视频子文件和第一视频子文件的本地路径进行HTTP格式转化,得到基于HLS协议描述的第一视频子文件和第一视频子文件的本地索引项。步骤S110,将第一索引项和第二索引项更新至索引文件。针对步骤S110而言:本步骤可以将第一索引项添加至索引文件中针对该第一视频子文件的GOP的记录位置,并将第二索引项添加至索引文件中针对该第二视频子文件的GOP的记录位置。应理解,终端设备基于该索引文件,即可正常播放目标流媒体的视频内容。通过图1所示的播放方法可以知道,本申请实施例的方案可以修复HLS协议的索引文件中同一GOP下的视频文件的索引信息被#EXT-X-DISCONTINUITY字段相隔的问题,从而避免终端设备在播放GOP下的视频流时误清除当前缓存的视频解码数据,进而改善播放画面的质量。由于不需对终端设备的播放器进行改进,因此本申请实施例的方案易于实现,具有较高的实用性。本文档来自技高网...

【技术保护点】
1.一种流媒体的播放方法,其特征在于,包括:获取目标流媒体的索引文件;下载所述索引文件中预设字段之后的首个索引项对应的视频文件;若所述视频文件中的视频帧不属于同一个画面组,则将所述视频文件拆分成第一视频子文件和第二视频子文件,所述第一视频子文件中的视频帧属于同一个画面组,所述第二视频子文件中的视频帧属于另一个画面组;生成所述第一视频子文件在本地的第一索引项和所述第二视频子文件在本地的第二索引项;将所述第一索引项和所述第二索引项更新至所述索引文件。

【技术特征摘要】
1.一种流媒体的播放方法,其特征在于,包括:获取目标流媒体的索引文件;下载所述索引文件中预设字段之后的首个索引项对应的视频文件;若所述视频文件中的视频帧不属于同一个画面组,则将所述视频文件拆分成第一视频子文件和第二视频子文件,所述第一视频子文件中的视频帧属于同一个画面组,所述第二视频子文件中的视频帧属于另一个画面组;生成所述第一视频子文件在本地的第一索引项和所述第二视频子文件在本地的第二索引项;将所述第一索引项和所述第二索引项更新至所述索引文件。2.根据权利要求1所述的播放方法,其特征在于,还包括:判断所述视频文件中的首帧是否为i帧;若不是i帧,则确定所述视频文件中的视频帧不属于同一个画面组。3.根据权利要求2所述的播放方法,其特征在于,所述第一视频子文件包含所述视频文件中首个i帧之前的所有视频帧,所述第二视频子文件包含所述视频文件中除所述第一视频子文件外的所有视频帧。4.根据权利要求3所述的播放方法,其特征在于,所述下载所述索引文件中预设字段之后的首个索引项对应的视频文件,包括:下载所述索引文件中第N个预设字段之后的首个索引项对应的视频文件;所述将所述第一索引项和所述第二索引项更新至所述索引文件,包括:在所述索引文件中的第一位置添加所述第一索引项,以及在所述索引文件中的第二位置添加所述第二索引项;其中,所述第一位置位于所述索引文件中第N个预设字段之前且第N-1个预设字段之后,所述第二位置位于所述索引文件中第N个预设字段之后且第N个预设字段后的首个索引项之前;N为大于1的正整数。5.根据权利要求1-4中任一项所述的播放方法,其特征在于,所述生成所述第一视频子文件在本地的第一索引项和所述第二视频子文件在本地的第二索引项,包括:生成第一视频子文件的第一字段,并将所述第一字段作为所述第一视频子文件在本地的第一索引项,所述第一字段记录有所述第一视频子文件的视频帧的总时长以及所述第一视频子文件在本地的URL;生成第二视频子文件的第二字段,所述第二字段作为所述第二视频子文件在本地的第二索引项,所述第二字段记录有所述第二视频子文件的视频帧的总时长以及所述第二视频子文件在本地的URL。6.一种流媒体的播放装置,其特征在于,包括:获取模块,用于获取...

【专利技术属性】
技术研发人员:陈小菊
申请(专利权)人:维沃移动通信有限公司
类型:发明
国别省市:广东,44

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

1