在线播放视频的方法、设备及装置与流程

文档序号:11881181阅读:332来源:国知局
在线播放视频的方法、设备及装置与流程

本发明实施例涉及视频技术领域,尤其涉及一种在线播放视频的方法及设备和应用该在线播放视频的方法的装置。



背景技术:

背景内容介绍:随着网络通信技术的发展,网络的功能也越来越大,不但可以通过网络浏览网页、查询信息,而且还可以通过网络播放视频等。在播放视频时,可以将视频下载到本地进行播放,也可以直接在线播放视频。在线播放视频时,通常会有高清、标清、超清等不同分辨率的片源可供用户选择。

现有的在线播放视频技术中,通常是利用HLS协议来实现在线切换具有不同分辨率的视频。虽然HLS协议中具有带宽自适应机制,能够使当前播放的视频的分辨率与带宽进行自适应。但是,当用户想要手动切换不同分辨率的视频时,该种方法则无法满足用户的需求。

其次,现有技术在切换不同分辨率的视频时,需要关闭当前播放的进程,重新创建一个播放实例才能完成视频的切换。由于重新创建播放实例是一个重量级的操作,需要耗费很长的时间才能完成播放实例的创建,因此,会导致当前视频暂停时间较长的现象发生,大大降低了用户的观影体验。



技术实现要素:

本发明实施例提供一种在线播放视频的方法、设备及装置,用以解决现有技术在切换不同分辨率的视频时,存在暂停时间较长,影像用户观影体验的问题。

本发明实施例提供一种在线播放视频的方法,包括:

当需要将目标视频的第一分辨率版本切换成第二分辨率版本时,获取第二分辨率版本对应的第二播放文件,第二播放文件中包括第二播放列表,播放列表用于描述目标视频中多个视频切片的播放顺序;

查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置;

根据位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片;

在第二播放列表中与第二视频切片对应的标签位置添加不连续标签;

根据不连续标签,播放第二视频切片。

本发明实施例提供一种在线播放视频的设备,包括:

第一获取模块,用于当需要将目标视频的第一分辨率版本切换成第二分辨率版本时,获取第二分辨率版本对应的第二播放文件,第二播放文件中包括第二播放列表,播放列表用于描述目标视频中多个视频切片的播放顺序;

查找模块,用于查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置;

第一下载模块,用于根据位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片;

添加模块,用于在第二播放列表中与第二视频切片对应的标签位置添加不连续标签;

播放模块,用于根据不连续标签,播放第二视频切片。

本发明实施例还提供一种在线播放视频的装置,该装置包括处理器,其中,处理器中的程序执行上述在线播放视频的方法中的任一项。

本发明实施例提供的在线播放视频的方法及设备、装置,通过在需要将目标视频的第一分辨率版本切换成第二分辨率版本的情况下,获取第二分辨率版本对应的第二播放文件,第二播放文件中包括第二播放列表,播放列表用于描述目标视频中多个视频切片的播放顺序;查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置;根据位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片;在第二播放列表中与第二视频切片对应的标签位置添加不连续标签;根据不连续标签,播放第二视频切片,从而有效地克服了现有技术中需要重新建立播放实例的弊端,实现了具有不同分辨率的视频数据之间的无缝切换,大大提高了用户的观影体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明在线播放视频的方法实施例流程图;

图2为本发明在线播放视频的方法具体实施例流程图;

图3为本发明在线播放视频的设备实施例结构示意图;

图4为本发明在线播放视频的设备实施例结构示意图;

图5为本发明在线播放视频的设备实施例结构示意图;

图6为本发明在线播放视频的设备实施例结构示意图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

参照图1,示出了本发明的一种在线播放视频的方法实施例的步骤流程图。在图1中:

步骤101,当需要将目标视频的第一分辨率版本切换成第二分辨率版本时,获取第二分辨率版本对应的第二播放文件。

其中,第二播放文件中包括第二播放列表,播放列表用于描述目标视频中多个视频切片的播放顺序。

具体的,从用户预先设置的片源地址下载适应当前网络环境或用户需求的播放文件。片源地址中包括具有不同分辨率的视频数据所对应的播放文件的下载地址。

步骤102,查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置。

具体的,在本发明的实施例中每下载一个视频切片后,都会按照播放列表中的顺序,将视频切片依次发送至缓存播放队列中。当需要切换第二版本时,查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置。

步骤103,根据该位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片。

具体的,根据第一视频切片在第二播放列表中的位置,按照第二播放列表中多个视频切片的排列顺序,继续下载第二版本的第二视频切片。

步骤104,在第二播放列表中与第二视频切片对应的标签位置添加不连续标签。

具体的,播放列表中的每个视频切片都具有属性设置,其中,属性设置中包括有标签位。在第二视频切片对应的标签位置添加不连续标签DISCONTINUITY。

步骤105,根据不连续标签,播放第二视频切片。

具体的,在播放器播放缓存队列中的视频切片时,检测到第二视频切片的标签位置含有不连续标签DISCONTINUITY,则在当前播放的第一视频切片播放完毕后,切换至第二版本的第二视频切片。

借助于本发明上述实施例的技术方案,当需要将目标视频的第一分辨率版本切换成第二分辨率版本时,本发明通过获取第二分辨率版本对应的第二播放文件;查找位于缓存播放队列末尾位置处的第一视频切片在第二播放文件中的第二播放列表中的位置;根据该位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片;在第二播放列表中与第二视频切片对应的标签位置添加不连续标签;根据不连续标签,播放第二视频切片,从而有效地克服了现有技术中需要重新建立播放实例的弊端,实现了具有不同分辨率的视频数据之间的无缝切换,大大提高了用户的观影体验。

为了更好的理解本发明的上述技术方案,下面结合一具体实施例来对本发明的上述技术方案进行详细阐述。

参照如图2,示出了本发明的在线播放视频的方法具体实施例的步骤流程图,在图2中:

步骤201:用户设置片源地址。

用户通过设置片源地址给播放器,使播放器能够从片源地址中选择适应当前播放环境的视屏数据。在本实施例中,以默认选择具有4K分辨率的视频数据进行举例。用户设置地址为:http://le.com/test.m3u8。播放器从该地址中获取具有不同分辨率的视屏数据的播放文件下载地址,在本实施例中,播放文件为M3U8文件。

其中,片源地址指向的文件格式如表1所示:

表1

如表1所示,用户可预先设置带宽与不同分辨率视频数据之间的对应关系。例如:如果当前的网络环境为带宽是1500000M时,对应4K的视频数据的下载地址。

步骤202,获取与第一分辨率版本对应的第一播放文件。

具体的,播放器中的M3U8Service进程被激发,从http://le.com/test.m3u8地址中下载4K视频数据对应的M3U8文件。

步骤203,解析第一播放文件,获取第一分辨率版本中的多个视频切片的下载地址以及第一播放列表。

具体的,通过M3U8Service进程解析第一M3U8文件,M3U8文件中包括4K视频数据的多个视频切片的下载地址以及用于确定播放顺序的播放列表。通知Livesession进程。

步骤204,根据下载地址,下载位于第一播放列表中第一位置处的视频切片。

根据下载地址,Livesession进程等待M3U8Service发来的通知。在接收到通知后,从M3U8进程中获取位于索引列表中第一位置处的1.ts视频切片的下载地址,并下载该1.ts视频切片。

步骤205,解析视频切片,将解析后的视频切片发送至缓存播放队列等待播放。

Livesession进程对1.ts视频切片进行解析,解析出音频数据和视频数据,并将解析后的音频和视频数据发送至缓存播放队列等待解码器读取并播放。

步骤206,按照第一播放列表中的多个视频切片的排列顺序,下载下一个视频切片,并重复上一解析步骤。

在1.ts解析完成后,按照索引列表中的多个视频切片的排列顺序,下载2.ts视频切片,并重复步骤205,即对2.ts解析后,继续下载3.ts依次对多个视频切片进行下载与解析。

步骤207,若在将第一视频切片发送至缓存播放队列之后网络带宽发生变化,则根据当前网络带宽,获取与当前网络带宽相匹配的第二播放文件。

BandwidthEstimator进程实时监控网络带宽,在本实施例中,如果已经下载完成n.ts视频切片,并将n.ts切片发送至缓存播放队列中,此时,监测到网络带宽从1500000M降至1000000M。BandwidthEstimator进程监测到网络带宽发生了变化,发广播通知M3U8Service进程。

M3U8Service进程接到通知,并检测到网络带宽由1500000M将至1000000M。则此时,需要将当前播放的4K视频数据切换至与1000000M网络带宽相匹配的1080P视频数据。则M3U8Service进程将下载1080P视频数据的M3U8文件。进入步骤209。

步骤208,若在将第一视频切片发送至缓存队列之后接收到视频切换指令,则根据视频切换指令,获取第二播放文件。

在本实施例中,如果已经下载完成n.ts视频切片,并将n.ts切片发送至缓存播放队列中,此时,用户主动指定将4K视频数据切换至1080P视频数据。setParms进程接收视频切换指令,并发送给m3u8Service进程。m3u8Service进程根据视频切换指令,下载1080P视频数据的M3U8文件。进入步骤209。

步骤209,解析第二播放文件,获取第二分辨率版本中的多个视频切片的下载地址以及第二播放列表。

M3U8Service进程解析1080P视频数据的M3U8文件,获取1080P视频数据的多个视频切片的下载地址以及播放列表。

步骤210,查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置。

M3U8Service进程查找当前缓存播放队列中位于队尾位置处的n.ts视频切片在播放列表中的位置。在本实施例中,n.ts位于播放列表中的第n个顺序位。

步骤211,根据位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片。

具体的,M3U8Service进程按照播放列表中的多个视频切片的排列顺序,在第n+1个视频切片对应的标签位置处添加不连续标签DISCONTINUITY。

步骤212,根据不连续标签,播放第二视频切片。

具体的,Livesession进程在按照第二播放列表中的多个视频切片的排列顺序,依次播放缓存播放队列中的多个视频切片的过程中,在播放完n.ts视频切片并即将要播放n+1.ts视频切片时,检测到n+1.ts切片的标签位包含有不连续标签DISCONTINUITY,则Livesession进程通过该标签位获知需要将当前播放的4K视频数据切换为1080P视频数据,同时Livesession进程将相关参数修改为与1080P对应的参数,并开始播放1080P的第二视频切片。

然后,与步骤204-206类似,同样重复下载与解析步骤,从而完成对1080P的视频切片的下载与播放。

借助于本发明上述实施例的技术方案,本发明通过多线程同时工作,从而有效地克服了现有技术中需要重新建立播放实例的弊端,实现了具有不同分辨率的视频数据之间的无缝切换。此外,本发明还能够利用HLS协议在用户手动指定切换不同分辨率的视频数据的情况下,实现在线视频播放的无缝隙切换,大大提高了用户的观影体验。

参照图3,示出了本发明一种在线播放视频的设备的结构框图,具体可以包括如下模块:

第一获取模块31,用于当需要将目标视频的第一分辨率版本切换成第二分辨率版本时,获取第二分辨率版本对应的第二播放文件,第二播放文件中包括第二播放列表,播放列表用于描述目标视频中多个视频切片的播放顺序。

查找模块32,用于查找位于缓存播放队列末尾位置处的第一视频切片在第二播放列表中的位置。

第一下载模块33,用于根据位置以及第二播放列表中的多个视频切片的排列顺序,顺序下载第二版本的第二视频切片。

添加模块34,用于在第二播放列表中与第二视频切片对应的标签位置添加不连续标签。

播放模块35,用于根据不连续标签,播放第二视频切片。

参照图4,在本发明的一个优选的实施例中,在图3的基础上本发明的在线播放视频的设备还可以包括第二获取模块41,用于获取与第一分辨率版本对应的第一播放文件。第一解析模块42,用于解析第一播放文件,获取第一分辨率版本中的多个视频切片的下载地址以及第一播放列表,其中,第一播放列表中的多个视频切片的排列顺序与第二播放列表中的多个视频切片的排列顺序相同。第二下载模块43,用于根据下载地址,下载位于第一播放列表中第一位置处的视频切片。第二解析模块44,用于解析视频切片,将解析后的视频切片发送至缓存播放队列等待播放。第三下载模块45,用于按照第一播放列表中的多个视频切片的排列顺序,下载下一个视频切片,并重复调用第二解析模块44。

参照图5,在本发明的一个优选的实施例中,在图3的基础上第一获取模块31还可以包括第一获取子模块51,用于若在将第一视频切片发送至缓存播放队列之后网络带宽发生变化,则根据当前网络带宽,获取与当前网络带宽相匹配的第二播放文件。第一解析子模块52,用于解析第二播放文件,获取第二分辨率版本中的多个视频切片的下载地址以及第二播放列表。第二获取子模块53,用于若在将第一视频切片发送至缓存队列之后接收到视频切换指令,则根据视频切换指令,获取第二播放文件。第二解析子模块54,用于解析第二播放文件,获取第二分辨率版本中的多个视频切片的下载地址以及第二播放列表。

参照图6,在本发明的一个优选的实施例中,在图3的基础上播放模块35还可以包括第一播放子模块61,用于按照第二播放列表中的多个视频切片的排列顺序,依次播放缓存播放队列中的多个视频切片。检测子模块62,用于在第一视频播放结束后,检测到即将播放的第二视频切片的标签位置含有不连续标签。第二播放子模块63,用于播放第二视频切片。

在本发明的另一个实施例中还提供一种应用上述在线播放视频的方法的装置,该装置包括处理器,本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。

对于设备和装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。

最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1