多路视频画面的同步方法、装置、设备及存储介质
技术领域
本申请涉及互联网技术领域,特别涉及一种多路视频画面的同步方法、装置、设备及存储介质。
背景技术
随着互联网技术的发展,在各个终端观看在线视频已经成为了人们生活中重要的组成部分,人们对高质量的视频服务的需求也越来越高。
为了给予用户更多的互动体验,提供了多路视频流功能。即,在视频播放界面上,除了显示一路主视频流以外,还同步显示有一路或多路从视频流。为了实现多路视频流对应的视频画面的同步显示,相关技术中往往需要对视频源进行协议改造,或者对多播放器进行深入的改造。
上述改造方法,改造的技术复杂度较大。
发明内容
本申请实施例提供了一种多路视频画面的同步方法、装置、设备及存储介质,通过控制其中一个播放器采用快速播放模式或慢速播放模式,达到多路视频流同步的效果,通过较低的改造成本实现多路视频画面的同步,节省了开发的成本。所述技术方案如下:
根据本申请的一个方面,提供了一种多路视频画面的同步方法,所述方法包括:
控制第一播放器播放第一视频流的第一视频画面;
控制第二播放器播放第二视频流的第二视频画面;
响应于所述第一视频画面和所述第二视频画面的播放进度不同步,控制所述第二播放器采用快速播放模式或慢速播放模式,直至所述第一视频画面和所述第二视频画面的播放进度同步。
另一方面,提供了一种多路视频画面的同步装置,所述装置包括:播放模块和同步模块;
所述播放模块,被配置为控制第一播放器播放第一视频流的第一视频画面;
所述播放模块,被配置为控制第二播放器播放第二视频流的第二视频画面;
所述同步模块,被配置为响应于所述第一视频画面和所述第二视频画面的播放进度不同步,控制所述第二播放器采用快速播放模式或慢速播放模式,直至所述第一视频画面和所述第二视频画面的播放进度同步。
另一方面,提供了一种计算机设备,所述计算机设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中提供的多路视频画面的同步方法。
另一方面,提供了一种计算机可读存储介质,所述可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如上述本申请实施例中提供的多路视频画面的同步方法。
另一方面,提供了一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得计算机执行如上述本申请实施例中提供的多路视频画面的同步方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
在多路视频流对应的视频画面不同步的情况下,通过控制其中一个播放器或一部分播放器采用快速播放模式或慢速播放模式,达到多路视频流同步的效果,通过较简单的改造方式实现多路视频画面的同步,降低了开发的难度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一个示例性实施例提供的计算机系统的示意图;
图2是本申请一个示例性实施例提供的视频播放界面的示意图;
图3是本申请一个示例性实施例提供的多路视频画面的同步方法的流程图;
图4是本申请一个示例性实施例提供的视频播放界面的示意图;
图5是本申请一个示例性实施例提供的多路视频画面的同步方法的流程图;
图6是本申请一个示例性实施例提供的多路视频画面的同步方法的流程图;
图7是本申请一个示例性实施例提供的多路视频画面的同步装置的结构框图;
图8是本申请一个示例性实施例提供的计算机设备的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
首先,对本申请实施例中涉及的名词进行简单介绍:
多路视频流:是指通过多个播放器,显示于同一视频播放界面上的多个独立的视频流,一个视频流对应一个播放器。相互关联的多路视频流中的每一路视频流在内容上有所对应,需要同步进行显示。
在多路视频流中,包括一路主视频流和若干路从视频流。在主视频流的播放期间,用户可以选择一路或多路从视频流与该主视频流进行同步显示。
示例性的,主视频流是一档古装电视剧,在该电视剧的播放过程中,用户可以选择同步观看从视频流,从视频流是该电视剧有关的历史文化知识。如:主视频流中的剧情为历史人物a出场,从视频流则同步对该历史人物a进行科普介绍。
图1示出了本申请一个示例性实施例提供的计算机系统的结构示意图。该计算机系统包括:终端110和服务器130。
终端110中运行有客户端120,客户端120用于进行多路视频画面的同步播放。
其中,终端110可以是手机、平板电脑、电子书阅读器、智能电视、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等。终端110中运行有客户端120,可以进行多路视频画面的同步播放,客户端120可以是视频客户端,浏览器客户端,即时通信客户端,或游戏客户端等。
客户端120包括主播放器121、播放同步控制器123和从播放器122。其中,主播放器121用于播放主视频流,从播放器122用于播放从视频流。在视频播放的过程中,主播放器121(或从播放器122)可以接收到播放、暂停、播放位置调整、缓冲等指令,并将相应的指令转发给播放同步控制器123。播放同步控制器123用于通过汇总来自主播放器121和从播放器122的播放、暂停、播放位置调整、缓冲等指令,来控制主、从播放器的同步。
上述主视频流和从视频流可以是预先存储在终端110内的视频流,也可以是终端110从服务器130处获取的视频流。
终端110可以通过网络140与服务器130相连。网络140可以是有线网络或无线网络,且网络140可以是局域网、城域网以及广域网中的至少一种。服务器130可以实现为一台服务器,也可以实现为一组服务器构成的服务器集群,其可以是物理服务器,也可以实现为云服务器。
需要说明的是,从播放器的数量可以不止是一个,本申请实施例对从播放器的数量不进行限制。
图2示出了本申请一个示例性实施例提供的视频播放界面的示意图。在该视频播放界面上包括:第一视频画面210和第二视频画面220。
其中,第一视频画面210是由主播放器播放的主视频流对应的视频画面,第二视频画面220是由从播放器播放的从视频流对应的视频画面。如图2所示,第一视频画面210的内容是团体歌舞表演,该团体中包括3个人物,而第二视频画面220的内容就是针对其中一个人物的直拍。
首先对从播放器播放从视频流,显示第二视频画面220的方法进行说明:在主视频流正在播放时,用户可以从备选的候选从视频流中选中一个从视频流,将从视频流对应的第二视频画面220和主视频流对应的第一视频画面210在视频播放界面上进行同步播放。
由于用户可以在主视频流的播放期间的任意时候选择播放从视频流,从视频流要确定自己的播放起始位置,从播放起始位置处进行视频播放,从而与主视频流实现同步。如:从视频流的视频起始位置对应的播放内容与主视频流的第10秒位置处的播放内容同步(主视频流比从视频流快10秒钟),在主视频流播放到第30秒位置时,用户此时打开了从视频流进行播放,则此时从视频流快速定位到从视频流的第20秒的位置打开,这样从视频流的视频画面一打开就能和主视频流的视频画面进行同步。
在第一视频画面和第二视频画面同步显示的过程中,播放同步控制器汇总主播放器和从播放器的信息,对主视频流和从视频流进行同步播放、同步暂停、同步拖动等操作。如:播放同步控制器在监听到主播放器的暂停、恢复、拖动等操作,播放同步控制器相应的控制从播放器的暂停、恢复和拖动;播放同步控制器在监听到从播放器的暂停、恢复、拖动等操作,播放同步控制器相应的控制主播放器的暂停、恢复和拖动;同步控制器在监听到主(从)视频流发生缓冲后,则暂停主、从播放器,等所有视频流不再缓冲,则恢复所有播放器继续播放。
当主播放器和从播放器不同步时,即第一视频画面210和第二视频画面220的播放进度差超过预定的阈值时,则根据以下两种情况进行同步。
如果主播放器和从播放的位置差别比较大时,比如超过视频编码的一个画面组(Group of Pictures,GOP)的时长时,此时则要采用拖动从视频流,即拖动第二视频画面220的播放进度的方式,使得第一视频画面210和第二视频画面220的播放进度同步。上述拖动,往往采用精准拖动的方式。
如果主、从播放的位置差别比较小时,比如小于视频编码的一个GOP时,此时可以控制采用从播放器使用倍速0.5,0.75或者1.25,1.5等速度的方式对从视频流进行播放,使从视频流慢下来或者快起来,使其尽快和主视频流保持同步,避免用户由于从视频流跳画面,体验感不好的问题。
图3示出了本申请一个示例性实施例提供的多路视频画面的同步方法的流程图,该方法可以由图1所示出的终端或服务器分别执行,也可以由终端和服务器共同执行,本实施例以该方法由终端执行为例进行说明,该方法包括:
步骤310,控制第一播放器播放第一视频流的第一视频画面;
视频流是以流式传输方式传输的视频数据,它能够被作为一个稳定的和连续的流通过播放器实现视频画面的显示。
第一视频流是正在终端的视频播放界面上进行播放的视频数据。第一视频流可以为从服务器处获取的某视频客户端内的视频,也可以为用户预先保存于终端内的视频等等,本申请对此不进行限制。
终端内置有第一播放器,在用户选择打开第一视频流以后,终端将第一视频流的视频地址设置给第一播放器,通过第一播放器对第一视频流进行播放。
步骤320,控制第二播放器播放第二视频流的第二视频画面;
终端除了内置有第一播放器以外,还内置有第二播放器,第二播放器用于播放第二视频流。需要说明的是,第二播放器的数量可以是一个或多个,即:用户可以通过终端控制多个第二播放器播放多个不同的第二视频流,视频播放界面上同步显示第一视频画面和若干个第二视频画面。
其中,第二视频流是与第一视频流在视频内容上存在关联的视频流。如:第一视频流是某一综艺节目,第二视频流是综艺节目中某一嘉宾的直拍视频;第一视频流是某一电视剧,第二视频流是电视剧的剧情介绍视频;第一视频流是某一电影,第二视频流是某一用户对该电影的点评(reaction)视频。同样的,第二视频流可以为从服务器处获取的某视频客户端内的视频,也可以为用户预先保存于终端内的视频等等,本申请对此不进行限制。可以理解的是,第二视频流的时间长度与第一视频流的时间长度可以是相同的,也可以是不同的。
可选地,第一视频画面与第二视频画面可以位于同一显示层,也可以位于不同的显示层,如:第二视频画面悬浮显示于第一视频画面上。本申请对第一视频画面和第二视频画面在视频播放界面上的具体显示形式不进行限定。
可选地,终端控制第二播放器播放第二视频流的第二视频画面的过程包括:在视频播放界面上显示有多路视频流播放开关。多路视频流播放开关是指用于控制与第一视频流相关的若干个第二视频流是否播放的开关,例如,在视频客户端内,视频播放界面在显示第一视频画面时,还会显示一个“多路视频流播放”的控件,通过该控件可以在视频播放界面上触发显示有若干个第二视频流的候选播放选项,用户获取与候选播放选项相关的信息后,可以选择打开其中的一个或多个第二视频流,终端将被选择的第二视频流的视频地址设置给第二播放器,通过第二播放器对第二视频流进行播放。
示例性的,结合参考图4中的(a),视频播放界面上显示有第一视频画面410,画面内容为舞蹈表演,包括3位舞蹈演员:舞蹈演员41、舞蹈演员42和舞蹈演员43。视频播放界面上还显示有多路视频流播放控件44,用户点击多路视频流播放控件44后,在视频播放界面上显示有3个不同的第二视频流的候选播放选项:舞蹈演员41的直拍视频、舞蹈演员42的直拍视频和舞蹈演员43的直拍视频。
用户点击选择舞蹈演员41的直拍视频对应的候选播放选项后,终端将该第二视频流的视频地址设置给第二播放器,与第一视频流进行同步播放。结合参考图4中的(b),视频播放界面划分成两个显示区域:第一视频画面410和第二视频画面420。第一视频画面410是第一视频流对应的画面,第二视频画面420是第二视频流对应的画面,且两个视频画面对应的内容是同步的。
需要说明的是,上述仅以先实施步骤310,后实施步骤320做出示例性的说明。在另一种实现形式中,可以同时实施步骤310和步骤320,即在视频播放界面上同时播放第一视频画面和第二视频画面。在另一种实现形式中,先实施步骤320,再实施步骤310,即先第二播放器播放第二视频流的第二视频画面,再以第一播放器播放第一视频流的第一视频画面。
步骤330,响应于第一视频画面和第二视频画面的播放进度不同步,控制第二播放器采用快速播放模式或慢速播放模式,直至第一视频画面和第二视频画面的播放进度同步。
“倍速播放”是视频客户端本身所具备的功能,用户可使用该功能加快或减慢视频的播放速率,范围一般在0.5倍至2.0倍。
快速播放模式指的是:以高于1.0的倍速对视频流进行播放,如:1.25倍速、1.5倍速和2.0倍速。在第一视频画面的播放进度快于第二视频画面的播放进度的情况下,终端控制第二播放器采用快速播放模式,直至第一视频画面和第二视频画面的播放进度同步。
慢速播放模式指的是:以低于1.0的倍速对视频流进行播放,如:0.5倍速和0.75倍速。在第一视频画面的播放进度慢于第二视频画面的播放进度的情况下,终端控制第二播放器采用慢速播放模式,直至第一视频画面和第二视频画面的播放进度同步。
需要说明的是,上述以第一视频流是主视频流,第二视频流是与主视频流相关的从视频流进行了示例性的说明。在另一种实现方式中,第一视频流是从视频流,第二视频流是主视频流,即,在第一视频画面和第二视频画面的播放进度不同步的情况下,也可以通过主播放器对主视频流进行播放进度的调整,使得第一视频画面和第二视频画面的播放进度实现同步。
综上所述,本实施例提供的方法,在多路视频流对应的视频画面不同步的情况下,通过控制其中一个播放器或一部分播放器采用快速播放模式或慢速播放模式,达到多路视频流同步的效果,通过较简单的改造方式实现多路视频画面的同步,降低了开发的难度。
在基于图3的可选实施例中,图5示出了本申请一个示例性实施例提供的多路视频画面的同步方法的流程图,该方法可以由图1所示出的终端或服务器分别执行,也可以由终端和服务器共同执行,本实施例以该方法由终端执行为例进行说明。在本实施例中,步骤310和步骤320与图3示出的实施例描述一致,步骤330可以包括如下步骤:
步骤331,响应于第一视频画面和第二视频画面的播放进度不同步,确定第一视频画面和第二视频画面的播放进度差;
可选地,终端内设置有播放同步控制器,对第一视频画面和第二视频画面的播放进度进行实时监测,或者以一定的频率对第一视频画面和第二视频画面的播放进度进行监测。在播放同步控制器监测到第一视频画面和第二视频画面的播放进度不同步的情况下,播放同步控制器会获取第一视频画面的播放进度和第二视频画面的播放进度,从而确定两者的播放进度差。
示例性的,第二视频画面的播放进度为第30秒。在第一视频画面和第二视频画面的播放进度同步的情况下,第二视频画面的播放进度应该为第31秒,则播放进度差为1秒。
步骤332,响应于播放进度差小于阈值,控制第二播放器采用快速播放模式或慢速播放模式,直至第一视频画面和第二视频画面的播放进度同步。
可选地,阈值为一个GOP的时长。
其中,一个GOP是一组连续的画面。具体的,GOP指两个帧内编码帧(IntraPicture),简称I帧之间的间隔。通过获取视频流的帧率(Frame rate),可以将GOP换算成时长。比如:GOP为150帧数,视频流的帧率是25fps,那这个GOP的时长=150/25=6s。
可选地,在播放进度差的绝对值小于阈值,且播放进度差为正值的情况下,控制第二播放器采用快速播放模式;在播放进度差的绝对值小于阈值,且播放进度差为负值的情况下,控制第二播放器采用慢速播放模式。终端内的播放同步控制器在获取到播放进度差后,将播放进度差与阈值进行比对,从而确定采取的同步调整方式。由于播放进度差小于阈值,说明两个视频画面之间的播放进度差不大,可以采用如下两种同步调整方式中的任意一种来实现同步:
在一种实现方式中,根据播放进度差确定调整倍速,控制第二播放器以调整倍速进行快速播放模式或慢速播放模式。
播放进度差对应的时长越长,采取的调整倍速与正常倍速1.0之间的差异越大。
示例性的,第二播放器需要采取快速播放模式以实现同步。以阈值(6s)的一半(即3秒)为界限,确定采取的调整倍速。若播放进度差为5秒,大于3秒,采取的调整倍速为2.0倍速;若播放进度差为2秒,小于3秒,采取的调整倍速为1.5倍速。
示例性的,第二播放器需要采取慢速播放模式以实现同步。以阈值(6s)的一半(即3秒)为界限,确定采取的调整倍速。若播放进度差为5秒,大于3秒,采取的调整倍速为0.5倍速;若播放进度差为2秒,小于3秒,采取的调整倍速为0.75倍速。
在另一种实现方式中,控制第二播放器以预设倍速进行快速播放模式或慢速播放模式。
其中,快速播放模式对应有一个预设倍速,慢速播放模式对应有一个预设倍速。
终端确定需要采用的播放模式以后,以预设倍速对第二视频画面的播放进度进行调整。示例性的,在快速播放模式下,以1.5倍速对对第二视频画面的播放进度进行调整;在慢速播放模式下,以0.75倍速对对第二视频画面的播放进度进行调整。
在一个可选的实施例中,响应于播放进度差大于阈值,控制第二播放器跳转第二视频画面的播放进度,直至第一视频画面和第二视频画面的播放进度同步。
可选地,在播放进度差的绝对值大于阈值,且播放进度差为正值的情况下,控制第二播放器向前跳转第二视频画面的播放进度;在播放进度差的绝对值大于阈值,且播放进度差为负值的情况下,控制第二播放器向后跳转第二视频画面的播放进度。
可选地,上述跳转可以为精确跳转。
示例性的,为了保持同步,需要跳转到位置a。在普通跳转中,由于解码器解码视频必须要有关键帧的信息才能解码,通常会跳转至位置a附近的关键帧处进行播放,如:一段视频只有在10秒和15秒上才有关键帧,为了实现同步,需要跳转到14秒,但是只能跳到10秒或者15秒,跳转不够准确。
精确跳转指的是通过丢弃关键帧至定位的位置a处的画面,使得画面从跳转的位置a处进行播放,实现了较准确的跳转。
由于播放进度差大于阈值,说明两个视频画面之间的播放进度差很大,如果采用倍速播放的形式对播放进度进行调整,需要的调整时长较长,会影响用户的使用感,则终端内的播放同步控制器控制第二播放器直接跳转第二视频画面的播放进度,使得第一视频画面和第二视频画面的播放进度实现同步。
综上所述,本实施例提供的方法,在多路视频流对应的视频画面不同步的情况下,通过控制其中一个播放器或一部分播放器采用快速播放模式或慢速播放模式,达到多路视频流同步的效果,通过较简单的改造方式实现多路视频画面的同步,降低了开发的难度。
本实施例提供的方法,将播放进度差与阈值进行比对,在播放进度差不大的情况下,通过采用快进播放模式或快退播放模式实现同步,避免用户由于画面快速跳动引起不适,在播放进度差异较大的情况下,直接拖动第二视频画面的播放进度,快速的实现了同步。
在基于图3的可选实施例中,图6示出了本申请一个示例性实施例提供的多路视频画面的同步方法的流程图,该方法可以由图1所示出的终端或服务器分别执行,也可以由终端和服务器共同执行,本实施例以该方法由终端执行为例进行说明。在本实施例中,步骤310和步骤330与图3示出的实施例描述一致,步骤320可以包括如下步骤:
步骤321,响应于第二视频流播放指令,确定第二视频流的播放起始位置;
播放起始位置是第二视频流在打开时定位到的播放位置。第二视频流的播放起始位置处的视频内容与第一视频流当前的视频内容是同步的。
触发第二视频流播放指令的方式可以是用户触发视频播放界面上的多路视频流播放控件,可以是用户的手势或动作操作,可以是用户的语音指令。本申请对用户触发视频播放界面上的多路视频流播放控件的具体操作不加以限制,例如,点击、双击、长按、滑动、按压、敲击。
当第一视频流播放时,用户可以触发第二视频流播放指令,选择一个或多个第二视频流开始播放。由于用户可能在任意时刻打开第二视频流,为了保持同步,第二视频流不能在该视频流的开头位置打开,而应该在与第一视频流的当前播放位置对应的播放起始位置打开。
步骤322,根据播放起始位置,控制第二播放器播放第二视频流的第二视频画面。
终端在确定第二视频流的播放起始位置后,将第二视频流的视频地址设置给第二播放器,通过第二播放器将第二视频流从播放起始位置处打开。
可选地,终端响应于第二视频流播放指令,获取第一视频流的播放进度;基于第一视频流的播放进度,确定第二视频流的播放起始位置。
为了与第一视频流实现同步,终端需要获取第一视频流的播放进度,基于第一视频流的播放进度,确定第二视频流的播放起始位置。
示例性的,第一视频流播放到第30秒位置时,用户此时打开了第二视频流进行播放,而第二视频流的开头位置是与第一视频流的第10秒位置同步的。终端在获取到第一视频流的播放进度为播放到第30秒位置后,则此时应该将第二视频流的第20秒位置作为播放起始位置,从第20秒位置打开第二视频流,使得第二视频流一打开就能和第一视频流进行同步。
可选地,在具体实施时,由于打开第二视频流往往需要一定的时间,在确定第二视频流的播放起始位置时,结合打开的时间差(delta)综合进行确定。
在一个可选的实施例中,响应于第一播放器接收到播放控制指令,控制第一播放器和第二播放器同步对播放控制指令进行响应;或,响应于第二播放器接收到播放控制指令,控制第一播放器和第二播放器同步对播放控制指令进行响应。
上述播放控制指令包括但不限于如下指令中的至少一种:暂停指令、恢复播放指令、进度拖动指令、清晰度调整指令和倍速播放指令。
示例性的,终端内的播放同步控制器监听到第一播放器(或第二播放器)接收到暂停、恢复播放、进度拖动、清晰度调整、倍速播放等指令,则相应的控制其他播放器也对上述指令做出响应,使得第一播放器和第二播放器实现同步暂停、恢复播放、进度拖动、清晰度调整、倍速播放。
示例性的,终端内的播放同步控制器监听到第一播放器(或第二播放器)发生缓冲,则同时暂停第一播放器和第二播放器,等所有的视频流都不再缓冲后,恢复第一播放器和第二播放器的播放。
综上所述,本实施例提供的方法,在多路视频流对应的视频画面不同步的情况下,通过控制其中一个播放器或一部分播放器采用快速播放模式或慢速播放模式,达到多路视频流同步的效果,通过较简单的改造方式实现多路视频画面的同步,降低了开发的难度。
本实施例提供的方法,在打开第二视频流时,通过获取第一视频流的播放进度,调整第二视频流的播放起始位置,使得第二视频流在打开时就能实现与第一视频流的同步。
本实施例提供的方法,在第一视频流和第二视频流同步播放的过程中,汇总来自第一播放器和第二播放器的播放控制指令,使得第一播放器和第二播放器可以同步对播放控制指令进行响应。
需要说明的是,上述实施例中的第一视频流是主视频流,第二视频流是从视频流;或,第一视频流是从视频流,第一视频流是主视频流。
需要说明的是,上述3个实施例可以分别单独实施,也可以组合实施,本申请对此不进行限制。
下面,以第一视频流是主视频流,第二视频流是从视频流对上述方法进行示例性的说明:
主视频流是某一综艺节目,从视频流是综艺节目中某一嘉宾的直拍视频。该综艺节目(主视频流)的时长为一个小时。由于该嘉宾是在该综艺节目开始后第10分钟才开始上场,在该综艺节目开始后第20分钟就退场,该直拍视频(从视频流)的时长为10分钟。
在综艺节目的开始至第10分钟的时间段内的任意时刻,用户即可选择从视频流作为即将播放的第二视频流。在第10分钟,从视频流对应的第二视频画面出现在视频播放界面上,与第一视频画面开始同步显示。
或者,在综艺节目第10分钟至第20分钟的时间段内的任意时刻,用户可以选择从视频流作为需要播放的第二视频流。终端确定从视频流的起始播放位置,并在该时刻,从视频流对应的第二视频画面出现在视频播放界面上,与第一视频画面开始同步显示。
在第一视频画面和第二视频画面同步显示的过程中,播放同步控制器汇总主播放器和从播放器的信息,对主视频流和从视频流进行同步播放、同步暂停、同步拖动等操作。
若第一视频画面和第二视频画面不同步,则对从视频流进行快速播放或慢速播放,直至第一视频画面和第二视频画面的播放进度同步。
下面,以第一视频流是从视频流,第二视频流是主视频流对上述方法进行示例性的说明:
主视频流是某一舞蹈表演视频,从视频流是某一用户对该舞蹈表演的点评(reaction)视频。该舞蹈表演视频(主视频流)的时长为十分钟,该点评视频(从视频流)的时长也为十分钟。
在用户选择播放主视频流的时候,也可以同时选择从视频流与主视频流同步播放,从视频流对应的第一视频画面与主视频流对应的第二视频画面同步显示出现在视频播放界面上。
在第一视频画面和第二视频画面同步显示的过程中,播放同步控制器汇总主播放器和从播放器的信息,对主视频流和从视频流进行同步播放、同步暂停、同步拖动等操作。
若第一视频画面和第二视频画面不同步,由于用户对从视频流的点评视频更加关注,则对主视频流进行快速播放或慢速播放,直至第一视频画面和第二视频画面的播放进度同步。
图7示出了本申请一个示例性实施例提供的多路视频画面的同步装置的示意图。该装置包括:播放模块701和同步模块702;
播放模块701,用于控制第一播放器播放第一视频流的第一视频画面;以及用于控制第二播放器播放第二视频流的第二视频画面;
同步模块702,用于响应于第一视频画面和第二视频画面的播放进度不同步,控制第二播放器采用快速播放模式或慢速播放模式,直至第一视频画面和第二视频画面的播放进度同步。
在一个可选的实施例中,同步模块702,具体用于响应于第一视频画面和第二视频画面的播放进度不同步,确定第一视频画面和第二视频画面的播放进度差;以及,具体用于响应于播放进度差小于阈值,控制第二播放器采用快速播放模式或慢速播放模式,直至第一视频画面和第二视频画面的播放进度同步。
在一个可选的实施例中,同步模块702,具体用于根据播放进度差确定调整倍速,控制第二播放器以调整倍速进行快速播放模式或慢速播放模式;或,同步模块702,具体用于控制第二播放器以预设倍速进行快速播放模式或慢速播放模式。
在一个可选的实施例中,同步模块702,具体用于响应于播放进度差的绝对值小于阈值,播放进度差为正值,控制第二播放器采用快速播放模式;以及,具体用于响应于播放进度差的绝对值小于阈值,播放进度差为负值,控制第二播放器采用慢速播放模式。
在一个可选的实施例中,同步模块702,具体用于响应于播放进度差大于阈值,控制第二播放器跳转第二视频画面的播放进度,直至第一视频画面和第二视频画面的播放进度同步。
在一个可选的实施例中,播放模块701,具体用于响应于第二视频流播放指令,确定第二视频流的播放起始位置;以及,具体用于根据播放起始位置,控制第二播放器播放第二视频流的第二视频画面。
在一个可选的实施例中,播放模块701,具体用于响应于第二视频流播放指令,获取第一视频流的播放进度;以及,具体用于基于第一视频流的播放进度,确定第二视频流的播放起始位置。
在一个可选的实施例中,同步模块702,具体用于响应于第一播放器接收到播放控制指令,控制第一播放器和第二播放器同步对播放控制指令进行响应;或,同步模块702,具体用于响应于第二播放器接收到播放控制指令,控制第一播放器和第二播放器同步对播放控制指令进行响应。
在一个可选的实施例中,播放控制指令包括如下至少一种:暂停指令、恢复播放指令、进度拖动指令、清晰度调整指令和倍速播放指令。
在一个可选的实施例中,第一视频流是主视频流,第二视频流是从视频流;或,第一视频流是从视频流,第一视频流是主视频流。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
综上所述,本实施例提供的装置,在多路视频流对应的视频画面不同步的情况下,通过控制其中一个播放器或一部分播放器采用快速播放模式或慢速播放模式,达到多路视频流同步的效果,通过较简单的改造方式实现多路视频画面的同步,降低了开发的难度。
本申请还提供了一种计算机设备,该计算机设备包括处理器和存储器,存储器中存储有至少一条指令,至少一条指令由处理器加载并执行以实现上述各个方法实施例提供的多路视频流的同步方法。需要说明的是,该计算机设备可以是如下图8所提供的计算机设备。
图8示出了本申请一个示例性实施例提供的计算机设备800的结构框图。该计算机设备800可以是图1所示的终端或服务器。本实施例以该计算机设备为终端为例来说明。
通常,计算机设备800包括有:处理器801和存储器802。
处理器801可以包括一个或多个处理核心,比如8核心处理器、8核心处理器等。处理器801可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器801也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器801可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器801还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器802可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器802还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器802中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器801所执行以实现本申请中方法实施例提供的多路视频流的同步方法。
在一些实施例中,计算机设备800还可选包括有:外围设备接口803和至少一个外围设备。处理器801、存储器802和外围设备接口803之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口803相连。具体地,外围设备包括:显示屏804。
外围设备接口803可被用于将I/O(Input/Output,输入/输出)相关的至少一个外围设备连接到处理器801和存储器802。在一些实施例中,处理器801、存储器802和外围设备接口803被集成在同一芯片或电路板上;在一些其他实施例中,处理器801、存储器802和外围设备接口803中的任意一个或两个可以在单独的芯片或电路板上实现,本实施例对此不加以限定。
显示屏804用于显示UI(User Interface,用户界面)。该UI可以包括图形、文本、图标、视频及其它们的任意组合。当显示屏804是触摸显示屏时,显示屏804还具有采集在显示屏804的表面或表面上方的触摸信号的能力。该触摸信号可以作为控制信号输入至处理器801进行处理。此时,显示屏804还可以用于提供虚拟按钮和/或虚拟键盘,也称软按钮和/或软键盘。在一些实施例中,显示屏804可以为一个,设置计算机设备800的前面板;在另一些实施例中,显示屏804可以为至少两个,分别设置在计算机设备800的不同表面或呈折叠设计;在再一些实施例中,显示屏804可以是柔性显示屏,设置在计算机设备800的弯曲表面上或折叠面上。甚至,显示屏804还可以设置成非矩形的不规则图形,也即异形屏。显示屏804可以采用LCD(Liquid Crystal Display,液晶显示屏)、OLED(Organic Light-EmittingDiode,有机发光二极管)等材质制备。
本领域技术人员可以理解,图8中示出的结构并不构成对计算机设备800的限定,可以包括比图示更多或更少的组件,或者组合某些组件,或者采用不同的组件布置。
本申请实施例还提供一种计算机可读存储介质,该可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述多路视频流的同步方法。
本申请还提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述各个方法实施例提供的多路视频流的同步方法。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,该计算机可读存储介质可以是上述实施例中的存储器中所包含的计算机可读存储介质;也可以是单独存在,未装配入终端中的计算机可读存储介质。该计算机可读存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,至少一条指令、至少一段程序、代码集或指令集由处理器加载并执行以实现上述多路视频流的同步方法。
可选地,该计算机可读存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、固态硬盘(SSD,Solid State Drives)或光盘等。其中,随机存取记忆体可以包括电阻式随机存取记忆体(ReRAM,Resistance RandomAccess Memory)和动态随机存取存储器(DRAM,Dynamic Random Access Memory)。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,上述提到的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。