一种视音频与弹幕同步方法及装置与流程

文档序号:11779000阅读:548来源:国知局
一种视音频与弹幕同步方法及装置与流程

本申请涉及计算机技术领域,尤其涉及一种基于视音频与弹幕同步方法及装置。



背景技术:

随着网络技术的不断发展,网络直播已经成为人们日常娱乐生活的重要组成部分。

目前,网络直播平台为了满足不同用户的观看需求,通常将所直播的视频设置成不同的清晰度(如,超清、高清以及普清)或者不同的观看线路(线路1、线路2以及线路3)。

而在观看网络直播的过程中,用户会根据不同的需求来切换所需的清晰度或者切换所需的线路,当服务器接收到用户发起的切换清晰度的操作后,首先停止发送切换前清晰度所对应的视频帧以及声音,假设所发送的最后一个视频帧为第n帧,然后根据用户所选择的切换后清晰度,确定切换后清晰度所对应的视频帧以及声音帧,对视频帧以及声音帧进行同步,并发送同步后的视频帧以及声音帧。

但是,通常而言,切换后的直播视频会有一定的延迟,也就是说,假设切换前的最后一帧是第n帧,那么切换后的直播视频则是从第(n-3)帧开始播放,而对于存在弹幕的网络直播而言,由于弹幕服务器与视音频服务器不是同一个服务器,因此,虽然切换后的直播视频由于存在延迟而不是当前最新的,但是弹幕确实是实时最新的,这样会导致弹幕与直播视频不匹配。



技术实现要素:

本申请实施例提供一种视音频与弹幕同步方法及装置,用以解决现有技术中用户在观看网络直播的过程中,执行切换清晰度操作后所导致的弹幕与直播视频不匹配的问题。

本申请实施例提供的一种视音频与弹幕同步方法,包括:

接收用户执行的指定切换操作;

停止发送执行指定切换操作前所对应的视频与音频;

获取执行指定切换操作后所对应的待同步的视频与音频;

对获取到的待同步的视频与音频进行同步;

获取弹幕,并对所述弹幕与同步后的视频和音频进行同步。

优选地,所述指定切换操作包括:清晰度切换操作或线路切换操作中的一个。

优选地,当停止发送执行指定切换操作前所对应的视频与音频时,所述方法还包括:记录最后一帧所对应的视频时间戳以及音频时间戳。获取执行指定切换操作后所对应的待同步的视频与音频,具体包括:根据最后一帧所对应的视频时间戳,在执行指定切换操作后所对应的视频中确定与所述最后一帧对应的视频帧,将与所述最后一帧对应的视频帧的前一视频帧之后的所有视频帧作为待同步的视频,并获取该待同步的视频,根据最后一帧所对应的音频时间戳,在执行指定切换操作后所对应的音频中确定与所述最后一帧对应的音频帧,将与所述最后一帧对应的音频帧前一音频帧之后的所有音频帧作为待同步的音频,并获取该待同步的音频。

优选地,根据与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧,对获取到的待同步的视频与音频进行同步。

优选地,当停止发送执行指定切换操作前所对应的视频与音频时,所述方法还包括:记录最后一帧所对应的视频时间戳以及音频时间戳;获取执行指定切换操作后所对应的待同步的视频与音频,具体包括:将最后一帧所对应的视频时间戳前n秒内的所有视频帧以及最后一帧所对应的视频时间戳之后的所有视频帧作为待同步的视频,并获取该待同步的视频,将最后一帧所对应的音频时间戳前n秒内的所有音频帧以及最后一帧所对应的音频时间戳之后的所有音频帧作为待同步的音频,并获取该待同步的音频,其中所述n为大于0的任何数。

优选地,根据最后一帧所对应的视频时间戳前n秒内的视频帧以及最后一帧所对应的音频时间戳前n秒内音频帧,对获取到的待同步的视频与音频进行同步。

优选地,当停止发送执行指定切换操作前所对应的视频与音频时,所述方法还包括:记录最后一帧所对应的视频时间戳;获取弹幕具体包括:获取最后一帧所对应的视频时间戳后n秒内的所有视音频帧,获取最后一帧所对应的视频时间戳后n秒内的所有弹幕,其中,所述弹幕携带有弹幕时间戳,所述n为大于0的任何数。

优选地,当获取到的弹幕的数量超过预设阈值时,按照获取到的视频帧和音频帧的播放顺序,依次针对获取到的每个视频帧和音频帧,计算该视频帧和音频帧与所获取的每个弹幕时间戳的差值,确定各差值中最小的差值所对应的弹幕时间戳,将该视频帧和音频帧与确定出的弹幕时间戳所对应的弹幕进行匹配。

优选地,所述方法还包括:当获取到的弹幕的数量未超过预设阈值时,直接从最后一帧对应的视音频帧开始播放同步后的视音频。

本申请实施例提供的一种视音频与弹幕同步装置,包括:

接收模块,用于接收用户执行的指定切换操作;

停止发送模块,用于停止发送执行指定切换操作前所对应的视频与音频;

获取模块,用于获取执行指定切换操作后所对应的待同步的视频与音频;

第一同步模块,用于对获取到的待同步的视频与音频进行同步;

第二同步模块,用于获取弹幕,并对所述弹幕与同步后的视频和音频进行同步。

优选地,所述指定切换操作包括:清晰度切换操作或线路切换操作中的一个。

优选地,所述装置还包括:记录模块,用于当所述停止发送模块停止发送执行指定切换操作前所对应的视频与音频时,记录最后一帧所对应的视频时间戳以及音频时间戳;所述获取模块具体用于,根据最后一帧所对应的视频时间戳,在执行指定切换操作后所对应的视频中确定与所述最后一帧对应的视频帧,将与所述最后一帧对应的视频帧的前一视频帧之后的所有视频帧作为待同步的视频,并获取该待同步的视频;根据最后一帧所对应的音频时间戳,在执行指定切换操作后所对应的音频中确定与所述最后一帧对应的音频帧,将与所述最后一帧对应的音频帧前一音频帧之后的所有音频帧作为待同步的音频,并获取该待同步的音频。

优选地,所述第一同步模块具体用于,根据与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧,对获取到的待同步的视频与音频进行同步。

优选地,所述记录模块还用于,当所述停止发送模块停止发送执行指定切换操作前所对应的视频与音频时,记录最后一帧所对应的视频时间戳以及音频时间戳;所述获取模块具体用于,将最后一帧所对应的视频时间戳前n秒内的所有视频帧以及最后一帧所对应的视频时间戳之后的所有视频帧作为待同步的视频,并获取该待同步的视频,将最后一帧所对应的音频时间戳前n秒内的所有音频帧以及最后一帧所对应的音频时间戳之后的所有音频帧作为待同步的音频,并获取该待同步的音频,其中所述n为大于0的任何数。

优选地,所述第一同步模块具体用于,根据最后一帧所对应的视频时间戳前n秒内的视频帧以及最后一帧所对应的音频时间戳前n秒内音频帧,对获取到的待同步的视频与音频进行同步。

优选地,所述记录模块还用于,当所述停止发送模块停止发送执行指定切换操作前所对应的视频与音频时,记录最后一帧所对应的视频时间戳;所述第二同步模块具体用于,获取最后一帧所对应的视频时间戳后n秒内的所有视音频帧,获取最后一帧所对应的视频时间戳后n秒内的所有弹幕,其中,所述弹幕携带有弹幕时间戳,所述n为大于0的任何数。

优选地,所述第二同步模块具体用于,当获取到的弹幕的数量超过预设阈值时,按照获取到的视频帧和音频帧的播放顺序,依次针对获取到的每个视频帧和音频帧,计算该视频帧和音频帧与所获取的每个弹幕时间戳的差值,确定各差值中最小的差值所对应的弹幕时间戳,将该视频帧和音频帧与确定出的弹幕时间戳所对应的弹幕进行匹配。

优选地,所述第二同步模块还用于,当获取到的弹幕的数量未超过预设阈值时,直接从最后一帧对应的视音频帧开始播放同步后的视音频。

本申请实施例提供一种视音频与弹幕同步方法及装置,该方法包括:接收用户执行的指定切换操作,停止发送执行指定切换操作前所对应的视频与音频,获取执行指定切换操作后所对应的待同步的视频与音频,对获取到的待同步的视频与音频进行同步,获取弹幕,并对所述弹幕与同步后的视频和音频进行同步。通过上述方法,在将同步后的视音频通过客户端展示给观众之前,需要将同步后的视音频与弹幕进行同步,从而使得弹幕、音频与视频三者之间一一对应匹配。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:

图1为本申请实施例提供的视音频与弹幕同步的过程示意图;

图2为本申请实施例提供的视音频与弹幕同步装置的结构示意图;

图3为本申请实施例提供的视音频与弹幕同步系统组成结构框图。

具体实施方式

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

图1为本申请实施例提供的视音频与弹幕同步过程,具体包括以下步骤:

s101:接收用户执行的指定切换操作。

在实际应用中,网络直播平台为了满足不同用户的观看需求,通常将所直播的视频设置成不同的清晰度(如,超清、高清以及普清)或者不同的观看线路(线路1、线路2以及线路3)。

而用户在观看网络直播的过程中,会根据不同的需求来切换所需的清晰度或者切换所需的线路,也就是向服务器发送指定切换操作,服务器在接收到用户发送的指定切换操作后,会执行相应的操作。

在此需要说明的是,所述指定切换操作指的是能够触发视音频与弹幕进行同步的操作,可以是清晰度切换操作,也可以是线路切换操作,当然也可以是其他指定切换操作,在此不再一一赘述。

s102:停止发送执行指定切换操作前所对应的视频与音频。

服务器在接收到用户执行的指定切换操作后,会立刻停止发送执行指定切换操作前所对应的视频与音频,也就是说,立刻停止发送当前正在向用户发送,并通过客户端展示的视频与音频。

s103:获取执行指定切换操作后所对应的待同步的视频与音频。

服务器在停止发送执行指定切换操作前所对应的视频与音频后,会向视音频服务器发送获取执行指定切换操作后所对应的待同步的视频与音频的请求,并从视音频服务器那里获取执行指定切换操作后所对应的待同步的视频与音频。

进一步的,在获取执行指定切换操作后所对应的待同步的视频与音频的过程中,由于需要知道执行指定切换操作后所对应的待同步的视频与音频到底是哪个,因此,在本申请中,在步骤s102中,除了停止发送执行指定切换操作前所对应的视频与音频,还需要记录最后一帧所对应的视频时间戳以及音频时间戳,也就是说,在停止发送执行指定切换操作前所对应的视频与音频的同时,需要记录最后一帧所对应的视频时间戳以及音频时间戳。

在此需要说明的是,执行指定切换操作前的视频中某一帧的时间戳与执行指定切换操作后的视频中某一帧的时间戳是相同的,那么这两帧的画面是相同的,且这两帧也是相互对应的,反之亦然。

进一步的,本申请基于记录最后一帧所对应的视频时间戳以及音频时间戳,提供了两种获取执行指定切换操作后所对应的待同步的视频与音频的方式,具体如下:

第一种方式:根据最后一帧所对应的视频时间戳,在执行指定切换操作后所对应的视频中确定与所述最后一帧对应的视频帧,将与所述最后一帧对应的视频帧的前一视频帧之后的所有视频帧作为待同步的视频,并获取该待同步的视频,根据最后一帧所对应的音频时间戳,在执行指定切换操作后所对应的音频中确定与所述最后一帧对应的音频帧,将与所述最后一帧对应的音频帧前一音频帧之后的所有音频帧作为待同步的音频,并获取该待同步的音频。

第二种方式:将最后一帧所对应的视频时间戳前n秒内的所有视频帧以及最后一帧所对应的视频时间戳之后的所有视频帧作为待同步的视频,并获取该待同步的视频,将最后一帧所对应的音频时间戳前n秒内的所有音频帧以及最后一帧所对应的音频时间戳之后的所有音频帧作为待同步的音频,并获取该待同步的音频,其中所述n为大于0的任何数。

在此需要说明的是,n的具体数值可以根据实际情况来设定,如,可以根据切换清晰度时视音频加载的实际延迟时间来设定,而实际延迟时间跟服务器返回速度,用户的网络速度以及用户的机器响应速度均有关系。

s104:对获取到的待同步的视频与音频进行同步。

服务器在获取到执行指定切换操作后所对应的待同步的视频与音频,需要对待同步的视频与音频进行同步。

进一步的,针对步骤s103中的第一种获取执行指定切换操作后所对应的待同步的视频与音频的方式,本申请在对待同步的视频与音频进行同步的具体方式为:根据与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧,对获取到的待同步的视频与音频进行同步。

针对步骤s103中的第二种获取执行指定切换操作后所对应的待同步的视频与音频的方式,本申请在对待同步的视频与音频进行同步的具体方式为:根据最后一帧所对应的视频时间戳前n秒内的视频帧以及最后一帧所对应的音频时间戳前n秒内音频帧,对获取到的待同步的视频与音频进行同步。

在此需要说明的是,在第一种对待同步的视频与音频进行同步的方式中,将与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧进行匹配,当与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧匹配完成之后,位于最后一帧对应的视频帧的前一帧之后的所有视频帧与位于最后一帧对应的音频帧的前一帧后的所有音频帧也实现了同步匹配,另外,在本申请中,也不仅仅局限于匹配紧挨最后一帧的前一帧,也可以获取最后一帧对应的视频帧的前倒数第二帧的视频帧以及最后一帧对应的音频帧的前倒数第二帧的音频帧,并进行匹配,总之只要是使用最后一帧对应的视频帧前的视频帧以及最后一帧对应的音频帧前的音频帧即可。

在第二种对待同步的视频与音频进行同步的方式中,具体是,匹配最后一帧所对应的视频时间戳前n秒内的视频帧以及最后一帧所对应的音频时间戳前n秒内音频帧,也就是,根据最后一帧所对应的视频时间戳前n秒内的视频帧,在最后一帧所对应的音频时间戳前n秒内音频帧中,找到视频帧相应的音频帧,可以只先在最后一帧所对应的视频时间戳前n秒内的视频中确定某一个视频帧,并根据该视频帧,在最后一帧所对应的音频时间戳前n秒内音频帧中,找到该视频帧相应的音频帧,这样该视频帧前后的每一个视频帧也会与相应音频完成同步匹配,当然,在本申请中,也可以在最后一帧所对应的视频时间戳前n秒内的视频中确定某两个视频帧,并进行匹配,具体找几个视频帧可以根据实际情况来确定。

在执行完成上述同步匹配操作后,执行指定切换操作后所对应的视频与音频就完成了同步匹配。

s105:获取弹幕,并对所述弹幕与同步后的视频和音频进行同步。

进一步的,在对执行指定切换操作后所对应的视频与音频完成同步匹配之后,需要获取弹幕以及同步匹配完成的视音频帧,并对同步匹配完成的视音频以及弹幕进行同步。

进一步,由于需要知道获取哪些弹幕以及视音频,因此,在本申请中,在停止发送执行指定切换操作前所对应的视频与音频的同时,还需要记录最后一帧所对应的视频时间戳。

在此需要说明的是,由于同步后的视音频每一个视音频帧都是相对应的,是相同的,因此,在本申请中,所记录的最后一帧所对应的视频时间戳与视音频帧的时间戳是对应的。

进一步的,本申请在获取弹幕以及同步匹配完成的视音频帧的过程中,具体如下:

获取最后一帧所对应的视频时间戳后n秒内的所有视音频帧,从弹幕服务器中获取最后一帧所对应的视频时间戳后n秒内的所有弹幕,其中,所述弹幕携带有弹幕时间戳,所述n为大于0的任何数。

在此需要说明的是,本申请中的n是同一个数值。

进一步的,在获取到弹幕以及同步匹配完成的视音频帧后,需要对获取到的弹幕以及同步匹配完成的视音频帧进行同步匹配,具体的,当获取到的弹幕的数量超过预设阈值时,按照获取到的视频帧和音频帧的播放顺序,依次针对获取到的每个视频帧和音频帧,计算该视频帧和音频帧与所获取的每个弹幕时间戳的差值,确定各差值中最小的差值所对应的弹幕时间戳,将该视频帧和音频帧与确定出的弹幕时间戳所对应的弹幕进行匹配。

当获取到的弹幕的数量未超过预设阈值时,直接从最后一帧对应的视音频帧开始播放同步后的视音频。

在此需要说明的是,预设的阈值是根据实际情况来设定的。另外,弹幕的数量未超过预设阈值包括两种情况,第一种情况是弹幕的数量为零,也就是,在n秒内并未获取到弹幕,第二种情况是在n秒内有弹幕,但是弹幕的数量没有超过预设的阈值。

在此还需要说明的是,取视频的50ms间隔的视频帧最接近的弹幕,误差在10ms均可,也可以精确到1ms内,具体看弹幕的密度。

通过上述方法,在将同步后的视音频通过客户端展示给观众之前,需要将同步后的视音频与弹幕进行同步,从而使得弹幕、音频与视频三者之间一一对应匹配。

以上执行步骤可由服务器完成,也可由客户端完成。

以上为本申请实施例提供的视音频与弹幕同步方法,基于同样的思路,本申请实施例还提供一种视音频与弹幕同步装置。

如图2所示,本申请实施例提供的一种视音频与弹幕同步装置包括:

接收模块201,用于接收用户执行的指定切换操作;

停止发送模块202,用于停止发送执行指定切换操作前所对应的视频与音频;

获取模块203,用于获取执行指定切换操作后所对应的待同步的视频与音频;

第一同步模块204,用于对获取到的待同步的视频与音频进行同步;

第二同步模块205,用于获取弹幕,并对所述弹幕与同步后的视频和音频进行同步。

所述指定切换操作包括:清晰度切换操作或线路切换操作中的一个。

所述装置还包括:

记录模块206,用于当所述停止发送模块202停止发送执行指定切换操作前所对应的视频与音频时,记录最后一帧所对应的视频时间戳以及音频时间戳;所述获取模块203具体用于,根据最后一帧所对应的视频时间戳,在执行指定切换操作后所对应的视频中确定与所述最后一帧对应的视频帧,将与所述最后一帧对应的视频帧的前一视频帧之后的所有视频帧作为待同步的视频,并获取该待同步的视频;根据最后一帧所对应的音频时间戳,在执行指定切换操作后所对应的音频中确定与所述最后一帧对应的音频帧,将与所述最后一帧对应的音频帧前一音频帧之后的所有音频帧作为待同步的音频,并获取该待同步的音频。

所述第一同步模块204具体用于,根据与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧,对获取到的待同步的视频与音频进行同步。

所述记录模块206还用于,当所述停止发送模块202停止发送执行指定切换操作前所对应的视频与音频时,记录最后一帧所对应的视频时间戳以及音频时间戳;所述获取模块203具体用于,将最后一帧所对应的视频时间戳前n秒内的所有视频帧以及最后一帧所对应的视频时间戳之后的所有视频帧作为待同步的视频,并获取该待同步的视频,将最后一帧所对应的音频时间戳前n秒内的所有音频帧以及最后一帧所对应的音频时间戳之后的所有音频帧作为待同步的音频,并获取该待同步的音频,其中所述n为大于0的任何数。

所述第一同步模块204具体用于,根据最后一帧所对应的视频时间戳前n秒内的视频帧以及最后一帧所对应的音频时间戳前n秒内音频帧,对获取到的待同步的视频与音频进行同步。

所述记录模块206还用于,当所述停止发送模块202停止发送执行指定切换操作前所对应的视频与音频时,记录最后一帧所对应的视频时间戳;所述第二同步模块205具体用于,获取最后一帧所对应的视频时间戳后n秒内的所有视音频帧,获取最后一帧所对应的视频时间戳后n秒内的所有弹幕,其中,所述弹幕携带有弹幕时间戳,所述n为大于0的任何数。

所述第二同步模块205具体用于,当获取到的弹幕的数量超过预设阈值时,按照获取到的视频帧和音频帧的播放顺序,依次针对获取到的每个视频帧和音频帧,计算该视频帧和音频帧与所获取的每个弹幕时间戳的差值,确定各差值中最小的差值所对应的弹幕时间戳,将该视频帧和音频帧与确定出的弹幕时间戳所对应的弹幕进行匹配。

所述第二同步模块205还用于,当获取到的弹幕的数量未超过预设阈值时,直接从最后一帧对应的视音频帧开始播放同步后的视音频。

另外,本申请实施例还提供一种视音频与弹幕同步系统,该系统包括:

处理器、计算机可读存储器、和计算机可读存储介质;

程序,用于接收用户执行的指定切换操作,停止发送执行指定切换操作前所对应的视频与音频,获取执行指定切换操作后所对应的待同步的视频与音频,对获取到的待同步的视频与音频进行同步,获取弹幕,并对所述弹幕与同步后的视频和音频进行同步。

所述程序存储在所述计算机可读存储介质上,用于由所述处理器经由所述计算机可读存储器执行。

所述处理器、计算机可读存储器以及所述计算机可读存储介质可以用图3中的处理器、内部存储器、外部存储器来实现。

其中,图3为视音频与弹幕同步系统组成结构框图,其中示出了视音频与弹幕同步系统的主要部件。图3中,处理器310、内部存储器305、总线桥320以及网络接口315接入系统总线340,总线桥320用于桥接系统总线340和i/o总线345,i/o接口接入i/o总线345,usb接口以及外部存储器与i/o接口连接。图3中,处理器310可以为一个或多个处理器,每个处理器可以具有一个或者多个处理器内核;内部存储器305为易失性存储器,例如寄存器、缓存器、各种类型的随机存取存储器等;在视音频与弹幕同步系统运行的时候,内部存储器305中的数据包括操作系统和应用程序;网络接口315可以为以太网接口、光纤接口等;系统总线340可以用来传送数据信息、地址信息、以及控制信息;总线桥320可以用来进行协议转换,将系统总线协议转换为i/o协议或者将i/o协议转换为系统总线协议以实现数据传输;i/o总线345用来数据信息和控制信息,还可以总线终结电阻或电路来降低信号反射干扰;i/o接口330主要与各种外部设备连接,例如键盘、鼠标、传感器等等,闪存可以通过usb接口接入i/o总线,外部存储器为非易失性存储器,例如硬盘、光盘等。在视音频与弹幕同步系统运行之后,处理器可以将存储于外部存储其中的数据读取到内部存储器中,并对内部存储其中的系统指令进行处理,完成操作系统以及应用程序的功能。该示例视音频与弹幕同步系统可以为位于台式机、笔记本电脑、平板电脑、智能手机等。

优选地,所述指定切换操作包括:清晰度切换操作或线路切换操作中的一个。

优选地,所述程序还用于,当停止发送执行指定切换操作前所对应的视频与音频时,所述方法还包括:记录最后一帧所对应的视频时间戳以及音频时间戳。获取执行指定切换操作后所对应的待同步的视频与音频,具体包括:根据最后一帧所对应的视频时间戳,在执行指定切换操作后所对应的视频中确定与所述最后一帧对应的视频帧,将与所述最后一帧对应的视频帧的前一视频帧之后的所有视频帧作为待同步的视频,并获取该待同步的视频,根据最后一帧所对应的音频时间戳,在执行指定切换操作后所对应的音频中确定与所述最后一帧对应的音频帧,将与所述最后一帧对应的音频帧前一音频帧之后的所有音频帧作为待同步的音频,并获取该待同步的音频。

优选地,所述程序还用于,根据与所述最后一帧对应的视频帧的前一视频帧以及与所述最后一帧对应的音频帧的前一音频帧,对获取到的待同步的视频与音频进行同步。

优选地,所述程序还用于,当停止发送执行指定切换操作前所对应的视频与音频时,所述方法还包括:记录最后一帧所对应的视频时间戳以及音频时间戳;获取执行指定切换操作后所对应的待同步的视频与音频,具体包括:将最后一帧所对应的视频时间戳前n秒内的所有视频帧以及最后一帧所对应的视频时间戳之后的所有视频帧作为待同步的视频,并获取该待同步的视频,将最后一帧所对应的音频时间戳前n秒内的所有音频帧以及最后一帧所对应的音频时间戳之后的所有音频帧作为待同步的音频,并获取该待同步的音频,其中所述n为大于0的任何数。

优选地,所述程序还用于,根据最后一帧所对应的视频时间戳前n秒内的视频帧以及最后一帧所对应的音频时间戳前n秒内音频帧,对获取到的待同步的视频与音频进行同步。

优选地,所述程序还用于,当停止发送执行指定切换操作前所对应的视频与音频时,所述方法还包括:记录最后一帧所对应的视频时间戳;获取弹幕具体包括:获取最后一帧所对应的视频时间戳后n秒内的所有视音频帧,获取最后一帧所对应的视频时间戳后n秒内的所有弹幕,其中,所述弹幕携带有弹幕时间戳,所述n为大于0的任何数。

优选地,所述程序还用于,当获取到的弹幕的数量超过预设阈值时,按照获取到的视频帧和音频帧的播放顺序,依次针对获取到的每个视频帧和音频帧,计算该视频帧和音频帧与所获取的每个弹幕时间戳的差值,确定各差值中最小的差值所对应的弹幕时间戳,将该视频帧和音频帧与确定出的弹幕时间戳所对应的弹幕进行匹配。

优选地,所述程序还用于,所述方法还包括:当获取到的弹幕的数量未超过预设阈值时,直接从最后一帧对应的视音频帧开始播放同步后的视音频。

在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。

内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flashram)。内存是计算机可读介质的示例。

计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitorymedia),如调制的数据信号和载波。

还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。

本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。

以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

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