CN113329267B - 一种视频播放方法、装置、终端设备及存储介质 - Google Patents

一种视频播放方法、装置、终端设备及存储介质 Download PDF

Info

Publication number
CN113329267B
CN113329267B CN202110583925.3A CN202110583925A CN113329267B CN 113329267 B CN113329267 B CN 113329267B CN 202110583925 A CN202110583925 A CN 202110583925A CN 113329267 B CN113329267 B CN 113329267B
Authority
CN
China
Prior art keywords
video
local
played
player
description file
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202110583925.3A
Other languages
English (en)
Other versions
CN113329267A (zh
Inventor
王健
王鹏
王冠雄
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing QIYI Century Science and Technology Co Ltd
Original Assignee
Beijing QIYI Century Science and Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing QIYI Century Science and Technology Co Ltd filed Critical Beijing QIYI Century Science and Technology Co Ltd
Priority to CN202110583925.3A priority Critical patent/CN113329267B/zh
Publication of CN113329267A publication Critical patent/CN113329267A/zh
Application granted granted Critical
Publication of CN113329267B publication Critical patent/CN113329267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/83Generation or processing of protective or descriptive data associated with content; Content structuring
    • H04N21/845Structuring of content, e.g. decomposing content into time segments
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44008Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving operations for analysing video streams, e.g. detecting features or characteristics in the video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
    • H04N21/44016Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs involving splicing one content stream with another content stream, e.g. for substituting a video clip

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Television Signal Processing For Recording (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例提供了一种视频播放方法、装置、终端设备及存储介质,终端设备解析从服务器获取的目标播放视频的视频切片得到视频帧数据,并按照视频编码标准将其分割成多个GOP数据单元,在接收到播放器发出的索引描述文件请求的情况下,按预设规则将上述多个GOP数据单元合并,得到至少一个本地待播放视频切片,并生成对应的本地索引描述文件,发送给播放器,上述本地索引描述文件中包含预设数量的本地待播放视频切片的索引,之后基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放。终端设备通过将接收到的不同结构的视频切片规范为统一结构的视频切片供播放器进行播放,提高了播放器对HLS视频流的兼容性。

Description

一种视频播放方法、装置、终端设备及存储介质
技术领域
本发明涉及HLS视频播放技术领域,特别是涉及一种视频播放方法、装置、终端设备及存储介质。
背景技术
随着网络的不断发展,对于OTT(Over The Top,通过互联网向用户提供各种应用服务)的应用越来越广泛,OTT端可以是机顶盒等提供在线视频服务的设备,相应的,OTT的系统播放器可以是电视机、电脑、PAD、智能手机等等。传统TV端在播放视频时大多会用到MediaCodec,但MediaCodec存在很多兼容性问题,因此,OTT在TV端应用时,通常会直接使用OTT的系统播放器播放视频。
流媒体HLS(HTTP Live Streaming,基于HTTP的流媒体网络传输协议)直播在OTT端有很多的应用。目前,OTT端的流媒体HLS直播采用的方式多是OTT端的本地服务器直接将从外部服务器下载的HLS的m3u8描述文件和TS(Transport Stream,传输流)切片映射给播放器。
由于目前网络切片没有统一的规范,因此不同的流媒体视频源,可能采用了不同的切片结构,而终端的播放器往往只能对特定结构的切片有较好的播放效果,对其他结构的切片的播放效果不佳。也就是说,目前播放器对HLS视频流的兼容性不够高。
发明内容
本发明实施例的目的在于提供一种视频播放方法、装置、终端设备及存储介质,以提高播放器对HLS视频流的兼容性。
具体技术方案如下:
在本发明实施的第一方面,首先提供了一种视频播放方法,应用于终端设备,所述方法包括:
从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
本发明的一种实施例中,所述在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片的步骤,包括:
接收播放器发送的索引描述文件请求;
基于所述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对所述未合并的GOP数据单元进行合并,得到多个本地待播放视频切片。
本发明的一种实施例中,所述基于所述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对所述未合并的GOP数据单元进行合并,得到多个本地待播放视频切片的步骤,可以包括:
基于所述本地索引描述文件中包含本地待播放视频切片的索引的预设数量,确定所述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量;
基于所述目标生成数量,对所述GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片;
基于所述GOP数据单元在目标播放视频中的顺序,为每个新的本地待播放视频切片添加索引;
所述针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器的步骤,可以包括:
获得所述预设数量个未播放的本地待播放视频切片的索引,生成对应的本地索引描述文件发送至播放器。
本发明的一种实施例中,所述基于所述本地索引描述文件中包含本地待播放视频切片的索引的预设数量,确定所述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量的步骤,可以包括:
将预设数量与当前本地索引描述文件中未播放的本地待播放视频切片的未播放数量之差,作为所述GOP数据单元合并后生成的本地待播放视频切片的目标生成数量。
本发明的一种实施例中,所述基于所述目标生成数量,对所述GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片的步骤,可以包括:
判断所述目标生成数量与未被合并的GOP数据单元数的数量关系;
若所述目标生成数量小于未被合并的GOP数据单元数,则将所述未被合并的GOP数据单元进行合并,得到所述目标生成数量个本地待播放视频切片;
若所述目标生成数量等于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,得到所述目标生成数量个本地待播放视频切片;
若所述目标生成数量大于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,并选择最新发送的本地待播放视频切片补齐所述目标生成数量,得到所述目标生成数量个本地待播放视频切片。
本发明的一种实施例中,所述获得所述预设数量个未播放的本地待播放视频切片的索引,生成对应的本地索引描述文件发送至播放器的步骤,可以包括:
获得当前本地索引描述文件中未播放的本地待播放视频切片的第一索引,以及所述目标生成数量个本地待播放视频切片的第二索引;
将所述第一索引和第二索引写入所述本地索引描述文件中,更新所述本地索引描述文件。
本发明的一种实施例中,所述从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据的步骤,可以包括:
实时获得服务器生成的目标播放视频的原始索引描述文件;
基于每次获得的服务器生成的原始索引描述文件,实时从服务器获取目标播放视频的原始视频切片;
解析所述原始视频切片,得到视频帧数据。
本发明的一种实施例中,所述方法还可以包括:
在接收到服务器发送的第一个原始视频切片的情况下,生成播放器启动指令发送至播放器,以使播放器发出第一个索引描述文件请求;
在接收到播放器发送的第一个索引描述文件请求的情况下,基于当前已经从服务器获得的原始视频切片,生成初始索引描述文件,发送至播放器;
在接收到播放器发送的第一个切片请求的情况下,将初始索引描述文件中对应的原始视频切片发送至播放器进行播放。
本发明的一种实施例中,所述预设数量为预先基于播放器处理能力配置的。
在本发明实施的第二方面,还提供了一种视频播放装置,应用于终端设备,所述装置可以包括:
视频数据获取模块,用于从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
视频数据分割模块,用于按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
数据单元合并模块,用于在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
索引描述文件生成模块,用于基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
视频切片发送模块,用于基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
在本发明实施例的又一方面,还提供了一种终端设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一所述视频播放方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一所述的视频播放方法。
在本发明实施的又一方面,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的视频播放方法。
本发明实施例提供的视频播放方法中,终端设备将从服务器获取的目标播放视频的视频切片解析,得到视频帧数据,并按照视频编码标准将其分割成多个GOP数据单元,在接收到播放器发出的索引描述文件请求的情况下,按预设规则将上述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片,并生成对应的本地索引描述文件,发送给播放器,上述本地索引描述文件中包含预设数量的本地待播放视频切片的索引,之后基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放。终端设备通过将接收到的不同结构的视频切片规范为统一结构的视频切片供播放器进行播放,从而提高了播放器对HLS视频流的兼容性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例中提供的视频播放方法的一种流程图;
图2a为应用本发明实施例的一种视频播放系统的结构示意图;
图2b为应用本发明实施例的另一种视频播放系统的结构示意图;
图2c为图2a和/或图2b所示的视频播放系统的一种交互流程图;
图3为本发明实施例提供的视频播放方法的第二种流程图;
图4为本发明实施例提供的视频播放方法的第三种流程图;
图5为本发明实施例中按预设规则合并GOP数据单元的一种示例图;
图6为图2a和/或图2b所示的视频播放系统的另一种交互流程图;
图7为本发明实施例提供的一种视频播放装置的结构示意图;
图8为本发明实施例提供的一种终端设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
为了提高播放器对HLS的兼容性,本发明实施例提供了一种视频播放方法、装置、终端设备及存储介质。
下面首先介绍本发明实施例提供的视频播放方法。
如图1所示,图1为本发明实施例中的视频播放方法的一种流程图,具体步骤可以包括:
步骤101,从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
步骤102,按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
步骤103,在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
步骤104,基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
步骤105,基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
本发明实施例提供的视频播放方法中,终端设备将从服务器获取的目标播放视频的视频切片解析,得到视频帧数据,并按照视频编码标准将其分割成多个GOP数据单元,在接收到播放器发出的索引描述文件请求的情况下,按预设规则将上述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片,并生成对应的本地索引描述文件,发送给播放器,上述本地索引描述文件中包含预设数量的本地待播放视频切片的索引,之后基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放。终端设备通过将接收到的不同结构的视频切片规范为统一结构的视频切片供播放器进行播放,从而提高了播放器对HLS视频流的兼容性。
本发明实施例中,用户可以通过鼠标点击或者遥控器选择等方法确定目标播放视频,此处不做具体限定。
在一种具体实施例中,上述步骤101~105,可以由安装在终端设备的一个服务器程序Localserver(本地服务器)来实现,上述终端设备可以是OTT端设备。例如:可以由OTT端的Localserver在获取到用户选择的目标播放视频的信息后,基于目标播放视频的信息,向服务器发送调度请求,来请求原始的索引描述文件。上述目标播放视频的信息可以包括目标播放视频的ID等,此处不作具体限定。
在一种具体实施中,索引描述文件可以是m3u8描述文件,相应的,索引描述文件请求即为m3u8请求。m3u8描述文件是指UTF-8编码格式的M3U文件,M3U文件是记录了索引的纯文本文件,播放器可以根据其中的索引找到对应的音视频文件的网络地址,从而对相应的音视频文件进行在线播放。m3u8描述文件主要以文件列表的形式存在,其既支持点播又支持直播。
本发明实施例中,在从服务器获取目标播放视频的视频切片时,可以是终端设备的Localserver定期向服务器获取m3u8请求,即每次间隔一定时间向服务器发送m3u8请求,并基于每次服务器发送的原始m3u8描述文件,从服务器实时获取目标播放视频的原始视频切片。作为另一种具体实施方式,服务器中可以存储有目标播放视频的所有视频切片,相应的,终端设备的Localserver只需要发送一次m3u8请求,就可以获取包含目标播放视频的所有原始视频切片索引的原始m3u8描述文件,并基于上述原始m3u8描述文件,实时从服务器获取目标播放视频的原始视频切片。
终端设备在获取到目标播放视频的原始视频切片后,可以实时解析上述原始视频切片,将上述原始视频切片解析到视频帧层,即获取到视频帧数据。
之后,按照视频编码标准将上述视频帧数据分割成多个GOP数据单元。具体的,上述视频编码标准可以是MPEG(Moving Picture Experts Group,动态图像专家组)编码标准,该标准是应用最为广泛的编码标准,主要包括MPEG-1、MPEG-2、MPEG-4、MPEG-7及MPEG-21等。MPEG编码将视频帧分为I帧、P帧、B帧三种,其中,I帧是内部编码帧,P是向前预测帧,B是双向内插帧,P帧与B帧记录的是其他视频帧相对于I帧的变化。一个GOP(Group ofPictures,画面组)就是一组连续的画面,其第一个图像必须为I帧,以保证GOP不需要参考其他图像,可以独立解码。也就是说,上述各个GOP单元可以被上述播放器单独播放。
由于终端设备接收到的视频切片可能并非全部是以GOP的结构切割的,所以,按照视频编码标准将上述视频帧数据分割成多个GOP单元,可以预先统一切片的结构,提高播放器对HLS视频流的兼容性。
播放器在需要播放切片的情况下,会向Localserver发送m3u8请求,Localserver在接收到上述m3u8请求后,会按预设规则将上述分割出的GOP数据单元进行合并,得到至少一个本地待播放视频切片,并生成对应的本地m3u8描述文件发送给播放器。
播放器会基于上述本地m3u8描述文件,生成对应的切片请求,并将上述切片请求发送给Localserver,Localserver在接收到上述切片请求后,将对应的本地待播放视频切片发送给上述播放器进行播放。
如图2a所示,图2a为应用上述视频播放方法的一种视频播放系统的示意图,上述系统中主要包括了终端设备与服务器,其中,终端设备中可以包括播放器与Localserver,也就是说,终端设备中集成了播放器与Localserver的功能,例如,上述终端设备可以是电视机、手机、PAD、电脑等。当然,对于一个终端设备来说,其可内置多个播放器,每一个播放器都可以对上述GOP单元进行独立播放。
作为另一种具体实施方式,如图2b所示,图2b中示出的视频播放系统包含了播放器、终端设备与服务器,即终端设备与播放器可以是分开的。也就是说,有一个单独的终端设备,该终端设备中包含了Localserver,而播放器设备是与终端设备不同的另一个设备,例如,上述终端设备可以是机顶盒,相应的,上述播放器可以是电视机。
相应的,如图2c所示,图2c为上述视频播放系统的一种交互流程图,具体可以包括以下步骤:
步骤201,Localserver向服务器发送调度请求,以请求原始m3u8描述文件;
步骤202,服务器收到上述调度请求后,向Localserver发送原始m3u8描述文件;
步骤203,Localserver收到上述原始m3u8描述文件后,向服务器发送原始视频切片获取请求;
步骤204,服务器收到上述原始视频切片获取请求后,向Localserver发送原始视频切片;
步骤205,Localserver解析接收到的目标播放视频的原始视频切片,得到视频帧数据;
步骤206,Localserver按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;
步骤207,播放器向Localserver发送m3u8请求;
步骤208,Localserver接收到上述m3u8请求后,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;并
步骤209,针对得到的至少一个本地待播放视频切片,生成对应的本地m3u8描述文件;
步骤210,Localserver向播放器发送上述本地m3u8描述文件;
步骤211,播放器基于收到的上述本地m3u8描述文件,发送切片请求;
步骤212,Localserver收到上述切片请求后,向播放器发送对应的本地待播放视频切片。
上述交互过程已在视频播放方法中进行详细叙述,此处不再赘述。
作为本发明实施例的一种具体实施方式,在接收到上述播放器发送的索引描述文件请求后,终端设备可以基于上述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对各未合并的GOP数据单元进行合并,来得到多个本地待播放视频切片,如图3所示,图3为本发明实施例提供的视频播放方法的第二种流程图,具体步骤可以包括:
步骤301,从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
步骤302,按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;
步骤303,接收播放器发送的索引描述文件请求;
步骤304,基于所述本地索引描述文件中包含本地待播放视频切片的索引的预设数量,确定所述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量;
步骤305,基于所述目标生成数量,对所述GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片;
步骤306,基于所述GOP数据单元在目标播放视频中的顺序,为每个新的本地待播放视频切片添加索引;
步骤307,获得所述预设数量个未播放的本地待播放视频切片的索引,生成对应的本地索引描述文件发送至播放器;
步骤308,基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
终端设备从服务器获取的原始m3u8描述文件中包含的TS视频切片索引的数量并不固定,当上述原始m3u8描述文件中包含的TS切片索引的数量过少时,若直接将上述原始m3u8描述文件透传给播放器,并使播放器基于上述原始m3u8描述文件获取TS视频切片进行播放,可能会出现服务器提交切片不及时导致播放器没有可以播放的视频切片的情况,从而造成播放器频繁上报卡顿。另一方面,若上述原始m3u8描述文件中包含的TS切片索引的数量过多时,由于播放器不能及时播放上述原始m3u8描述文件中包含的切片索引对应的TS切片,但播放器依旧会定期发送m3u8请求,在这个过程中可能出现播放器已请求相应切片但还未进行播放的情况,服务器发送给播放器的新的原始m3u8描述文件中可能就不包含已发送但还未被播放的TS切片,因此会出现播放器内部丢帧的情况。
本发明实施例中,可以预先设置本地m3u8描述文件中包含的视频切片索引的数量,以避免上述播放器频繁上报卡顿或播放器内部丢帧的问题。
具体的,上述本地m3u8描述文件中包含的视频切片的索引的数量可以是基于播放器的处理能力预先设置的。该预设数量可以是3、4、5、6等,具体可以根据播放器处理能力来设置。
作为一种具体实施方式,例如,对于电视机来说,该预设数量可以是3,即生成的本地m3u8描述文件中可以最多包含3个本地待播放视频切片的索引。
确定上述预设数量之后,可以根据上述预设数量确定将上述GOP数据单元合并后需要产生的本地待播放视频切片的数量,再将GOP数据单元合并成目标生成数量个本地待播放视频切片。
具体的,上述将GOP数据单元合并后需要产生的本地待播放视频切片的数量可以通过以下步骤来确定:
将预设数量与当前本地描述文件中未播放的本地待播放视频切片的未播放数量之差,作为上述GOP数据单元合并后生成的本地待播放视频切片的目标生成数量。
基于上述设置生成的本地m3u8描述文件中最多包含3个视频切片的例子,例如,当前本地m3u8描述文件中已合并但未播放的本地待播放视频切片的未播放数量为1,即当前m3u8描述文件中还有1个本地待播放视频切片未被请求。GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量为上述预设数量与未播放数量之差,即为2,也就是说,需要将当前已分割的GOP数据单元合并成2个本地待播放视频切片。
在获取目标生成数量个本地待播放视频切片之后,可以基于上述GOP数据单元在目标播放视频中的顺序,为每个新的本地待播放视频切片添加索引。
在得到目标生成数量个本地待播放视频切片并为其添加索引后,就可以得到预设数量个本地待播放视频切片的索引。
具体的,可以是获得已有的本地m3u8描述文件中,已合并但未被发送至播放器进行播放的本地待播放视频切片的索引,作为第一索引,将上述目标生成数量个本地待播放视频切片的索引作为第二索引,第一索引与第二索引一起作为预设数量个本地待播放视频切片的索引,
基于上述预设数量个本地待播放视频切片的索引生成对应的本地m3u8描述文件,并将上述本地m3u8描述文件发送给播放器,以使播放器基于上述m3u8描述文件发送具体的切片请求。
作为本发明实施例的一种具体实施方式,基于图3所示实施例,如图4所示,图4为本发明实施例提供的视频播放方法的第三种流程图,其中,上述步骤305,基于所述目标生成数量,对所述GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片,具体可以包括以下步骤:
步骤405,判断所述目标生成数量与未被合并的GOP数据单元数的数量关系;
步骤406,若所述目标生成数量小于未被合并的GOP数据单元数,则将所述未被合并的GOP数据单元进行合并,得到所述目标生成数量个本地待播放视频切片;
步骤407,若所述目标生成数量等于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,得到所述目标生成数量个本地待播放视频切片;
步骤408,若所述目标生成数量大于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,并选择最新发送的本地待播放视频切片补齐所述目标生成数量,得到所述目标生成数量个本地待播放视频切片。
上述未被合并的GOP数据单元可以是上述Localserver收到播放器发出的m3u8请求时已经切割,但还未被合并的GOP数据单元。
上述预设数量可以记为maxSegmentNum;上述当前本地索引描述文件中未播放的本地待播放视频切片的未播放数量可以记为leftSegmentNum,已分割但未被合并的GOP单元数可以记为currentGOPNum,则GOP数据单元合并后生成的本地待播放视频切片的目标生成数量为maxSegmentNum-leftSegmentNum。
作为一种具体实施方式,当上述目标生成数量小于未被合并的GOP数据单元数时,即当(maxSegmentNum-leftSegmentNum)<currentGOPNum时,将所述未被合并的GOP数据单元进行合并,得到所述目标生成数量个本地待播放视频切片。相应的,每个合成的本地待播放视频切片包含的GOP数据单元的个数可以为currentGOPNum/(maxSegmentNum-leftSegmentNum),在合并GOP数据单元得到本地待播放视频切片时,应尽量保证每个合成的本地待播放视频切片中包含的GOP数据单元的个数相近。
基于上述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量为2的例子,例如,当前未被合并的GOP数据单元的数量为5,也就是说,此时的目标生成数量小于未被合并的GOP数据单元数,则将上述5个GOP数据单元基于GOP数据单元的顺序进行合并,得到目标数量个本地待播放视频切片。合并时,尽量保证合成每个本地待播放视频切片的GOP数据单元的数量相近,即可以将前三个GOP数据单元合并为一个本地待播放视频切片,将后两个GOP数据单元合并为另一个本地待播放视频切片;也可以将前两个GOP数据单元合并为一个本地待播放视频切片,将后三个GOP数据单元合并为另一个本地待播放视频切片,从而得到两个本地待播放视频切片。
作为另一种具体实施方式,当上述目标生成数量等于未被合并的GOP数据单元数时,即当(maxSegmentNum-leftSegmentNum)=currentGOPNum时,将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,得到所述目标生成数量个本地待播放视频切片。
基于上述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量为2的例子,例如未被合并的GOP数据单元数为2,即此时的目标生成数量等于未被合并的GOP数据单元数。则不用将GOP数据单元进行合并,而是将上述每个未合并的GOP数据单元作为一个本地待播放视频切片,从而得到2个本地待播放视频切片。
作为另一种具体实施方式,当上述目标生成数量大于未被合并的GOP数据单元数时,即当(maxSegmentNum-leftSegmentNum)>currentGOPNum时,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,并选择最新发送的本地待播放视频切片补齐所述目标生成数量,得到所述目标生成数量个本地待播放视频切片,上述补齐目标生成数量的最新发送的待播放视频切片的数量即为maxSegmentNum-leftSegmentNum-currentGOPNum。
基于上述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量为2的例子,例如未被合并的GOP数据单元数为1,即此时的目标生成数量小于未被合并的GOP数据单元数,则不用将GOP数据单元进行合并,而是将上述未被合并的GOP数据单元作为一个本地待播放视频切片。由于此时只有两个未被播放的本地待播放视频切片,并未达到上述本地m3u8描述文件中包含的本地待播放视频切片的索引的预设数量,即还差一个本地待播放视频切片,此时可以将最新发送给播放器的本地待播放视频切片的索引加入到m3u8描述文件中,来满足上述预设数量,同时保持前后本地待播放视频切片索引规则有序。
如图5所示,图5为本发明实施例中按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片的一种示例图;
具体的,终端设备从服务器获取的目标播放视频的原始视频切片被拆分成5个GOP数据单元,编号为0、1、2、3、4,当接收到播放器发送的m3u8请求时,此时的m3u8描述文件中还没有未播放的本地待播放视频切片,本例中上述预设数量与目标生成数量均为3。同时,为了使每个生成的本地待播放视频切片中包含的GOP数据单元数量相近,所以将上述5个GOP数据单元中编号为0、1的GOP数据单元合并为一个本地待播放视频切片,记作Segment01或merge0.ts;将编号为2、3的GOP数据单元合并为一个本地待播放视频切片,记作Segment23或merge1.ts;编号为4的GOP数据单元不用进行合并,可将其作为一个本地待播放视频切片,记作Segment4或merge2.ts。得到上述3个本地待播放视频切片后,为其添加索引,并生成相应的本地m3u8描述文件发送给播放器。
播放器可以基于收到的上述本地m3u8描述文件向Localserver发送具体的切片请求,Localserver将对应的本地待播放视频切片发送至播放器进行播放,上述切片请求可以是基于本地m3u8描述文件中的本地待播放视频切片的顺序,每次请求一个具体的视频切片。
对于本例来说,在播放器再次发送m3u8请求之前,已经分别请求了上述本地待播放视频切片merge0.ts以及merge1.ts,且Localserver已将上述本地待播放视频切片发送给播放器进行播放,即当前本地m3u8描述文件中还有一个未播放切片Segment4,也就是说,Localserver再次收到播放器发送的m3u8请求时,需要合成的本地待播放视频切片的目标生成数量为2。
同时,Localserver已经分割出5个新的GOP数据单元,编号分别为5、6、7、8、9,基于上述步骤406的例子,可将编号为5、6、7的GOP数据单元合并为一个本地待播放视频切片,记作Segment567,将编号为8、9的GOP数据单元合并为一个本地待播放视频切片,记作Segment89。获得上述本地待播放视频切片Segment567、Segment89后,可以为其添加索引,并与上述Segment4的索引一起按照GOP数据单元的顺序更新本地m3u8描述文件,发送至播放器,以使播放器继续请求本地待播放视频切片Segment4、Segment567、Segment89
作为本发明实施例的一种具体实施方式,如图6所示,图6为上述视频播放系统的另一种交互流程图,具体可以包括以下步骤:
步骤601,Localserver向服务器发送调度请求,以请求原始m3u8描述文件;
步骤602,服务器接收到上述调度请求后,向Localserver发送原始m3u8描述文件;
步骤603,Localserver基于收到的上述原始m3u8描述文件,向服务器发送原始视频切片获取请求;
步骤604,服务器收到上述原始视频切片获取请求后,向Localserver发送相应的原始视频切片;
步骤605,Localserver在接收到服务器发送的第一个原始视频切片的情况下,生成播放器启动指令;
步骤606,Localserver向播放器发送上述播放器启动指令,以使播放器发出第一个m3u8请求;
终端设备的Localserver在从服务器获取到视频切片数据后会生成相应的Localserver播放地址,并向播放器发送启动指令。具体的,为了快速开播,终端设备的Localserver在接收到服务器发送的第一个原始视频切片时,就会生成一个本地播放地址,由于上述Localserver是本地服务器,所以本地播放地址即为Localserver地址。同时,Localserver会生成一个启动指令发送给播放器以启动播放器,上述启动指令可以包括上述本地播放地址,作为一种具体实施方式,上述本地播放地址可以是URL(UniformResource Locator,统一资源定位符)地址。
步骤607,播放器收到上述播放器启动指令后,向Localserver发送m3u8请求;
步骤608,Localserver在接收到播放器发送的第一个m3u8请求的情况下,基于当前已从服务器获得的原始视频切片,生成初始m3u8描述文件;
步骤609,Localserver向播放器发送上述初始m3u8描述文件;
上述播放器在接收到Localserver发出的启动指令后,就会发送m3u8请求,终端设备的Localserver接收到上述播放器发送的m3u8请求后,就会基于当前已经从服务器获取的原始视频切片,生成初始m3u8描述文件,发送至播放器。
例如,在接收到播放器发送的m3u8请求时,Localserver已从服务器获取到一个原始视频切片,则生成的初始m3u8描述文件中,只包含上述一个原始视频切片的索引。
步骤610,Localserver解析目标播放视频的视频切片,得到视频帧数据,并按照视频编码标准将上述视频帧数据分割成多个GOP数据单元;
终端设备的Localserver在向播放器发送上述初始m3u8描述文件后,会继续从服务器获取并解析目标播放视频的视频切片,得到视频帧数据,并按照视频编码标准将上述视频帧数据分割成多个GOP数据单元。
步骤611,播放器基于上述Localserver发送的初始m3u8描述文件,发送第一个切片请求;
步骤612,Localserver在接收到播放器发送的第一个切片请求的情况下,将初始m3u8描述文件中对应的原始视频切片发送至播放器进行播放。
播放器会基于Localserver发出的上述初始m3u8描述文件,发送具体的切片请求,Localserver可以基于上述切片请求将对应的原始视频切片发送至播放器进行播放,上述原始视频切片可以是第一个GOP切片。
可见,本发明实施例提供的视频播放方法可以快速启动播放器,节省视频开始播放需要的时间,提高用户体验。
步骤613,播放器继续向Localserver发送m3u8请求;
如上所述,播放器向Localserver发送m3u8请求可以是间隔一定时间定期发送,也可以是没有播放数据时发送,此处不作具体限定。
步骤614,Localserver接收到播放器继续发送的m3u8请求后,按照预设规则将上述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
步骤615,Localserver针对上述得到的至少一个本地待播放视频切片,生成对应的本地m3u8描述文件;
步骤616,Localserver向播放器发送上述本地m3u8描述文件;
步骤617,播放器基于收到的本地m3u8描述文件,向Localserver发送切片请求,以请求具体的切片;
步骤618,Localserver基于收到的切片请求,向播放器发送对应的本地待播放视频切片进行播放。
上述步骤613~618可以与图2c中的步骤207~212相同,此处不再赘述。
基于与上述视频播放方法相同的技术构思,本发明实施例还提供了一种视频播放装置,如图7所示,该装置可以包括:
视频数据获取模块701,用于从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
视频数据分割模块702,用于按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
数据单元合并模块703,用于在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
索引描述文件生成模块704,用于基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
生成的本地索引描述文件中包含的本地待播放切片的预设数量可以是预先基于播放器的处理能力配置的。
视频切片发送模块705,用于基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
本发明实施例提供的视频播放方法中,终端设备将从服务器获取的目标播放视频的视频切片解析,得到视频帧数据,并按照视频编码标准将其分割成多个GOP数据单元,在接收到播放器发出的索引描述文件请求的情况下,按预设规则将上述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片,并生成对应的本地索引描述文件,发送给播放器,上述本地索引描述文件中包含预设数量的本地待播放视频切片的索引,之后基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放。终端设备通过将接收到的不同结构的视频切片规范为统一结构的视频切片供播放器进行播放,从而提高了播放器对HLS视频流的兼容性。
作为本发明实施例的一种具体实施方式,上述数据单元合并模块可以包括:
索引描述文件请求接收子模块,用于接收播放器发送的索引描述文件请求;
数据单元合并子模块,用于基于所述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对所述未合并的GOP数据单元进行合并,得到多个本地待播放视频切片。
作为本发明实施例的一种具体实施方式,上述数据单元合并子模块具体可以用于:
基于本地索引描述文件中包含本地待播放视频切片的索引的预设数量,确定所述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量;
基于所述目标生成数量,对所述GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片;
用于基于所述GOP数据单元在目标播放视频中的顺序,为每个新的本地待播放视频切片添加索引;
相应的,上述索引描述文件生成模块,可以具体用于,
获得所述预设数量个未播放的本地待播放视频切片的索引,生成对应的本地索引描述文件发送至播放器。
作为本发明实施例的一种具体实施方式,上述数据单元合并子模块,可以具体用于:
将预设数量与当前本地索引描述文件中未播放的本地待播放视频切片的未播放数量之差,作为所述GOP数据单元合并后生成的本地待播放视频切片的目标生成数量。
作为本发明实施例的一种具体实施方式,上述数据单元合并子模块,可以具体用于:
判断所述目标生成数量与未被合并的GOP数据单元数的数量关系;
若所述目标生成数量小于未被合并的GOP数据单元数,则将所述未被合并的GOP数据单元进行合并,得到所述目标生成数量个本地待播放视频切片;
若所述目标生成数量等于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,得到所述目标生成数量个本地待播放视频切片;
若所述目标生成数量大于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,并选择最新发送的本地待播放视频切片补齐所述目标生成数量,得到所述目标生成数量个本地待播放视频切片。
作为本发明实施例的一种具体实施方式,上述索引描述文件生成模块,可以具体用于:
获得当前本地索引描述文件中未播放的本地待播放视频切片的第一索引,以及所述目标生成数量个本地待播放视频切片的第二索引;
将所述第一索引和第二索引写入所述本地索引描述文件中,更新所述本地索引描述文件。
作为本发明实施例的一种具体实施方式,上述视频数据获取模块,可以具体用于:
实时获得服务器生成的目标播放视频的原始索引描述文件;
基于每次获得的服务器生成的原始索引描述文件,实时从服务器获取目标播放视频的原始视频切片;
解析所述原始视频切片,得到视频帧数据。
作为本发明实施例的一种具体实施方式,本发明实施例提供的视频播放装置还可以包括:
启动指令生成模块,用于在接收到服务器发送的第一个原始视频切片的情况下,生成播放器启动指令发送至播放器,以使播放器发出第一个索引描述文件请求;
初始索引描述文件生成模块,用于在接收到播放器发送的第一个索引描述文件请求的情况下,基于当前已经从服务器获得的原始视频切片,生成初始索引描述文件,发送至播放器;
原始视频切片发送模块,用于在接收到播放器发送的第一个切片请求的情况下,将初始索引描述文件中对应的原始视频切片发送至播放器进行播放。
上述装置的具体作用已在方法实施例中详细说明,此处不再赘述。
此外,本发明实施例还提供了一种终端设备,如图8所示,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信,
存储器803,用于存放计算机程序;
处理器801,用于执行存储器803上所存放的程序时,实现如下步骤:
从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
本发明实施例提供的视频播放方法中,终端设备将从服务器获取的目标播放视频的视频切片解析,得到视频帧数据,并按照视频编码标准将其分割成多个GOP数据单元,在接收到播放器发出的索引描述文件请求的情况下,按预设规则将上述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片,并生成对应的本地索引描述文件,发送给播放器,上述本地索引描述文件中包含预设数量的本地待播放视频切片的索引,之后基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放。终端设备通过将接收到的不同结构的视频切片规范为统一结构的视频切片供播放器进行播放,从而提高了播放器对HLS视频流的兼容性。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的视频播放方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的视频播放方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质和程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。

Claims (11)

1.一种视频播放方法,其特征在于,应用于终端设备,所述方法包括:
从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;
基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的;
所述在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片的步骤,包括:
接收播放器发送的索引描述文件请求;
基于所述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对未被合并的GOP数据单元进行合并,得到多个本地待播放视频切片。
2.根据权利要求1所述的方法,其特征在于,所述基于所述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对未被合并的GOP数据单元进行合并,得到多个本地待播放视频切片的步骤,包括:
基于所述本地索引描述文件中包含本地待播放视频切片的索引的预设数量,确定所述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量;
基于所述目标生成数量,对所述未被合并的GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片;
基于所述GOP数据单元在目标播放视频中的顺序,为每个新的本地待播放视频切片添加索引;
所述针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器的步骤,包括:
获得所述预设数量个未播放的本地待播放视频切片的索引,生成对应的本地索引描述文件发送至播放器。
3.根据权利要求2所述的方法,其特征在于,
所述基于所述本地索引描述文件中包含本地待播放视频切片的索引的预设数量,确定所述GOP数据单元合并后需要生成的本地待播放视频切片的目标生成数量的步骤,包括:
将预设数量与当前本地索引描述文件中未播放的本地待播放视频切片的未播放数量之差,作为所述GOP数据单元合并后生成的本地待播放视频切片的目标生成数量。
4.根据权利要求2所述的方法,其特征在于,
所述基于所述目标生成数量,对所述未被合并的GOP数据单元进行合并,得到目标生成数量个本地待播放视频切片的步骤,包括:
判断所述目标生成数量与未被合并的GOP数据单元数的数量关系;
若所述目标生成数量小于未被合并的GOP数据单元数,则将所述未被合并的GOP数据单元进行合并,得到所述目标生成数量个本地待播放视频切片;
若所述目标生成数量等于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,得到所述目标生成数量个本地待播放视频切片;
若所述目标生成数量大于未被合并的GOP数据单元数,则将所述未被合并的各个GOP数据单元分别作为新的待播放视频切片,并选择最新发送的本地待播放视频切片补齐所述目标生成数量,得到所述目标生成数量个本地待播放视频切片。
5.根据权利要求3所述的方法,其特征在于,
所述获得所述预设数量个未播放的本地待播放视频切片的索引,生成对应的本地索引描述文件发送至播放器的步骤,包括:
获得当前本地索引描述文件中未播放的本地待播放视频切片的第一索引,以及所述目标生成数量个本地待播放视频切片的第二索引;
将所述第一索引和第二索引写入所述本地索引描述文件中,更新所述本地索引描述文件。
6.根据权利要求1所述的方法,其特征在于,所述从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据的步骤,包括:
实时获得服务器生成的目标播放视频的原始索引描述文件;
基于每次获得的服务器生成的原始索引描述文件,实时从服务器获取目标播放视频的原始视频切片;
解析所述原始视频切片,得到视频帧数据。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
在接收到服务器发送的第一个原始视频切片的情况下,生成播放器启动指令发送至播放器,以使播放器发出第一个索引描述文件请求;
在接收到播放器发送的第一个索引描述文件请求的情况下,基于当前已经从服务器获得的原始视频切片,生成初始索引描述文件,发送至播放器;
在接收到播放器发送的第一个切片请求的情况下,将所述初始索引描述文件中对应的原始视频切片发送至播放器进行播放。
8.根据权利要求1~7中任一项所述的方法,其特征在于,
所述预设数量为预先基于播放器处理能力配置的。
9.一种视频播放装置,其特征在于,应用于终端设备,所述装置包括:
视频数据获取模块,用于从服务器实时获取并解析目标播放视频的视频切片,得到视频帧数据;
视频数据分割模块,用于按照视频编码标准将所述视频帧数据分割成多个GOP数据单元;其中,所述各个GOP数据单元均可被播放器单独播放;
数据单元合并模块,用于在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片;所述在接收到播放器发出的索引描述文件请求的情况下,按预设规则将所述多个GOP数据单元进行合并,得到至少一个本地待播放视频切片的步骤,包括:接收播放器发送的索引描述文件请求;基于所述本地索引描述文件中包含的本地待播放视频切片的索引的预设数量,对未被合并的GOP数据单元进行合并,得到多个本地待播放视频切片;
索引描述文件生成模块,用于基于播放器发出的索引描述文件请求,针对得到的至少一个本地待播放视频切片,生成对应的本地索引描述文件发送至播放器,所述本地索引描述文件中包含预设数量的本地待播放视频切片的索引;
视频切片发送模块,用于基于播放器发出的切片请求,将对应的本地待播放视频切片发送至播放器进行播放;所述切片请求为所述播放器根据接收的本地索引描述文件生成的。
10.一种终端设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8中任一所述的方法步骤。
11.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-8中任一所述的方法步骤。
CN202110583925.3A 2021-05-27 2021-05-27 一种视频播放方法、装置、终端设备及存储介质 Active CN113329267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110583925.3A CN113329267B (zh) 2021-05-27 2021-05-27 一种视频播放方法、装置、终端设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110583925.3A CN113329267B (zh) 2021-05-27 2021-05-27 一种视频播放方法、装置、终端设备及存储介质

Publications (2)

Publication Number Publication Date
CN113329267A CN113329267A (zh) 2021-08-31
CN113329267B true CN113329267B (zh) 2023-03-24

Family

ID=77421636

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110583925.3A Active CN113329267B (zh) 2021-05-27 2021-05-27 一种视频播放方法、装置、终端设备及存储介质

Country Status (1)

Country Link
CN (1) CN113329267B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114071182A (zh) * 2021-11-11 2022-02-18 深圳数研锦瀚智慧科技有限公司 用于林火监控的视频播放处理方法、装置及存储介质
CN114827755A (zh) * 2022-04-15 2022-07-29 咪咕文化科技有限公司 视频播放方法、系统、设备及存储介质
CN115134622B (zh) * 2022-06-29 2023-09-01 北京奇艺世纪科技有限公司 视频数据对齐方法、装置、设备及存储介质
CN115297095B (zh) * 2022-08-08 2024-03-08 上海哔哩哔哩科技有限公司 回源处理方法、装置、计算设备及存储介质
CN115834921A (zh) * 2022-11-17 2023-03-21 北京奇艺世纪科技有限公司 视频处理方法、装置、服务器、存储介质及程序产品
CN116208783B (zh) * 2023-01-30 2024-08-09 浪潮云信息技术股份公司 一种音视频存储、点播方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049931A (zh) * 2015-08-10 2015-11-11 合一网络技术(北京)有限公司 对移动终端中非支持格式的视频进行转换的方法及系统
CN105898380A (zh) * 2015-12-14 2016-08-24 乐视云计算有限公司 快速启播网络视频的方法和装置
CN108540868A (zh) * 2018-05-16 2018-09-14 北京百度网讯科技有限公司 Hls直播的处理方法、装置、服务器、终端及存储介质
CN110636340A (zh) * 2019-09-30 2019-12-31 普联技术有限公司 一种视频文件的上传方法及存储设备
CN111031385A (zh) * 2019-12-20 2020-04-17 北京爱奇艺科技有限公司 视频播放的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109787983A (zh) * 2019-01-24 2019-05-21 北京百度网讯科技有限公司 直播流切片方法、装置和系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049931A (zh) * 2015-08-10 2015-11-11 合一网络技术(北京)有限公司 对移动终端中非支持格式的视频进行转换的方法及系统
CN105898380A (zh) * 2015-12-14 2016-08-24 乐视云计算有限公司 快速启播网络视频的方法和装置
CN108540868A (zh) * 2018-05-16 2018-09-14 北京百度网讯科技有限公司 Hls直播的处理方法、装置、服务器、终端及存储介质
CN110636340A (zh) * 2019-09-30 2019-12-31 普联技术有限公司 一种视频文件的上传方法及存储设备
CN111031385A (zh) * 2019-12-20 2020-04-17 北京爱奇艺科技有限公司 视频播放的方法及装置

Also Published As

Publication number Publication date
CN113329267A (zh) 2021-08-31

Similar Documents

Publication Publication Date Title
CN113329267B (zh) 一种视频播放方法、装置、终端设备及存储介质
US9804668B2 (en) Systems and methods for rapid content switching to provide a linear TV experience using streaming content distribution
US10432982B2 (en) Adaptive bitrate streaming latency reduction
US10291681B2 (en) Directory limit based system and method for storing media segments
US10591984B2 (en) Systems and methods for rapid content switching to provide a linear TV experience using streaming content distribution
EP3028433B1 (en) Averting ad skipping in adaptive bit rate systems
KR102090261B1 (ko) 임의의 시점에서 스트리밍 미디어에 컨텐츠를 삽입하는 방법 및 시스템
US9560398B2 (en) Client, a content creator entity and methods thereof for media streaming
US9609340B2 (en) Just-in-time (JIT) encoding for streaming media content
WO2020211731A1 (zh) 一种视频播放方法及相关设备
US11711587B2 (en) Using manifest files to determine events in content items
US10277927B2 (en) Movie package file format
US11616855B2 (en) Fragmenting media content
EP3493547B1 (en) Video streaming delivery
CN105165015A (zh) 利用http自适应流的快速信道改变的增强播放列表定义和传递
US11647252B2 (en) Identification of elements in a group for dynamic element replacement
US11457280B2 (en) Bundling of video asset variants in a database for video delivery
US20180324480A1 (en) Client and Method for Playing a Sequence of Video Streams, and Corresponding Server and Computer Program Product
US20240114184A1 (en) Methods, systems, and apparatuses for improved transmission of content
WO2023130893A1 (zh) 流媒体传输方法、装置、电子设备及计算机可读存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant