一种调整直播视频的时间戳的方法和装置与流程

文档序号:16404113发布日期:2018-12-25 20:18阅读:658来源:国知局
一种调整直播视频的时间戳的方法和装置与流程

本发明涉及视频处理技术领域,特别涉及一种调整直播视频的时间戳的方法和装置。

背景技术

伴随着互联网技术的发展以及宽带的不断提速,互联网与人们的生活联系的日益密切,观看直播已成为当下一种主流的娱乐形式。为了提高直播服务质量,直播平台的运营方多基于cdn(contentdeliverynetwork,内容分发网络)集群来提供直播服务。

主播端在录制直播视频时,可以采集音视频数据,对音视频数据进行图像美化、语音去噪等处理,然后将处理后的音视频数据编码、封装,同时为直播视频的每个音/视频帧添加时间戳。之后,主播端可以将直播数据流推送至指定的cdn边缘节点(可称为推流边缘节点)处。该推流边缘节点接收到直播数据流后,可以通过cdn中转节点将直播数据流推送到指定的cdn边缘节点(可称为拉流边缘节点)。这样,当观众想要观看该直播时,观众端可以从与其距离最近的拉流边缘节点处获取相应的直播数据流,然后按照时间戳的顺序对其中的音/视频帧进行解封装、解码和播放。

在实现本发明的过程中,发明人发现现有技术至少存在以下问题:

主播端在录制直播视频时,可能会由于多种原因,导致生成的直播数据流中的音/视频帧的时间戳出现突增、乱序等问题,而部分观众端在获取到这些直播数据流后,在播放直播视频的时候,将会因播放器兼容性等问题,出现直播视频播放卡顿、中断等问题,故而,直播视频的播放稳定性较差。



技术实现要素:

为了解决现有技术的问题,本发明实施例提供了一种调整直播视频的时间戳的方法和装置。所述技术方案如下:

第一方面,提供了一种调整直播视频的时间戳的方法,所述方法包括:

获取目标直播视频的目标音/视频帧,确定所述目标音/视频帧对应的时间戳;

根据所述目标音/视频帧的前一音/视频帧对应的时间戳,判断所述目标音/视频帧对应的时间戳是否异常;

如果异常,则基于所述前一音/视频帧对应的时间戳,对所述目标音/视频帧对应的时间戳进行调整。

可选的,所述如果异常,则基于所述前一音/视频帧对应的时间戳,对所述目标音/视频帧对应的时间戳进行调整,包括:

如果所述目标音/视频帧对应的时间戳大于所述前一音/视频帧对应的时间戳,且二者差值大于预设时差阈值,则将所述目标音/视频帧对应的时间戳调整为所述前一音/视频帧对应的时间戳与所述预设时差阈值之和。

可选的,所述如果异常,则基于所述前一音/视频帧对应的时间戳,对所述目标音/视频帧对应的时间戳进行调整,包括:

如果所述目标音/视频帧对应的时间戳小于所述前一音/视频帧对应的时间戳,则将所述目标音/视频帧对应的时间戳调整为所述前一音/视频帧对应的时间戳。

可选的,所述获取目标直播视频的目标音/视频帧之后,还包括:

确定获取到的所述目标直播视频的首个音/视频帧对应的时间戳,将所述目标音/视频帧对应的时间戳减去所述首个音/视频帧对应的时间戳后得到的时间戳更新为所述目标音/视频帧对应的时间戳。

可选的,所述获取目标直播视频的目标音/视频帧,确定所述目标音/视频帧对应的时间戳,包括:

获取目标直播视频的目标音/视频帧,如果所述目标直播视频存在时间戳调整需求,则确定所述目标音/视频帧对应的时间戳。

可选的,所述方法还包括:

获取所述目标直播视频的播放体验评价,根据所述播放体验评价为所述目标直播视频设置时间戳调整需求。

可选的,所述对所述目标音/视频帧对应的时间戳进行调整之后,还包括:

根据所述目标音频帧对应的时间戳的调整情况,对所述目标视频帧对应的时间戳进行调整;和/或,

根据所述目标视频帧对应的时间戳的调整情况,对所述目标音频帧对应的时间戳进行调整。

第二方面,提供了一种调整直播视频的时间戳的装置,所述装置包括:

确定模块,用于获取目标直播视频的目标音/视频帧,确定所述目标音/视频帧对应的时间戳;

判断模块,用于根据所述目标音/视频帧的前一音/视频帧对应的时间戳,判断所述目标音/视频帧对应的时间戳是否异常;

调整模块,用于如果异常,则基于所述前一音/视频帧对应的时间戳,对所述目标音/视频帧对应的时间戳进行调整。

可选的,所述调整模块,具体用于:

如果所述目标音/视频帧对应的时间戳大于所述前一音/视频帧对应的时间戳,且二者差值大于预设时差阈值,则将所述目标音/视频帧对应的时间戳调整为所述前一音/视频帧对应的时间戳与所述预设时差阈值之和。

可选的,所述调整模块,具体用于:

如果所述目标音/视频帧对应的时间戳小于所述前一音/视频帧对应的时间戳,则将所述目标音/视频帧对应的时间戳调整为所述前一音/视频帧对应的时间戳。

可选的,所述调整模块,还用于:

确定获取到的所述目标直播视频的首个音/视频帧对应的时间戳,将所述目标音/视频帧对应的时间戳减去所述首个音/视频帧对应的时间戳后得到的时间戳更新为所述目标音/视频帧对应的时间戳。

可选的,所述确定模块,具体用于:

获取目标直播视频的目标音/视频帧,如果所述目标直播视频存在时间戳调整需求,则确定所述目标音/视频帧对应的时间戳。

可选的,所述装置还包括:

设置模块,用于获取所述目标直播视频的播放体验评价,根据所述播放体验评价为所述目标直播视频设置时间戳调整需求。

可选的,所述调整模块,还用于:

根据所述目标音频帧对应的时间戳的调整情况,对所述目标视频帧对应的时间戳进行调整;和/或,

根据所述目标视频帧对应的时间戳的调整情况,对所述目标音频帧对应的时间戳进行调整。

第三方面,提供了一种网络设备,所述网络设备包括处理器和存储器,所述存储器中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由所述处理器加载并执行以实现如第一方面所述的调整直播视频的时间戳的方法。

第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令、至少一段程序、代码集或指令集,所述至少一条指令、所述至少一段程序、所述代码集或指令集由处理器加载并执行以实现如第一方面所述的调整直播视频的时间戳的方法。

本发明实施例提供的技术方案带来的有益效果是:

本发明实施例中,获取目标直播视频的目标音/视频帧,确定目标音/视频帧对应的时间戳;根据目标音/视频帧的前一音/视频帧对应的时间戳,判断目标音/视频帧对应的时间戳是否异常;如果异常,则基于前一音/视频帧对应的时间戳,对目标音/视频帧对应的时间戳进行调整。这样,对于直播视频的每个音/视频帧,可以基于前一音/视频帧对应的时间戳,对该音/视频帧对应的时间戳进行调整,并且可以以本次调整后的时间戳为基础,继续调整后续音/视频帧的时间戳,从而可以保证直播视频的整个直播数据流的时间戳连续稳定,提高了直播视频的播放稳定性。

附图说明

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

图1是本发明实施例提供的一种基于cdn集群的直播服务的网络框架图;

图2是本发明实施例提供的一种调整直播视频的时间戳的方法流程图;

图3是本发明实施例提供的一种调整直播视频的时间戳的装置结构示意图;

图4是本发明实施例提供的一种网络设备的结构示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。

本发明实施例提供了一种调整直播视频的时间戳的方法,该方法的执行主体可以是网络设备,其中,参考如图1所示的基于cdn集群的直播服务的网络框架,网络设备可以是该网络框架中的任意设备,可以是用于录制直播视频的主播端,也可以是用于直播视频传输路径中的任意cdn节点(包括推流边缘节点、cdn中转节点和拉流边缘节点),还可以是用于播放直播视频的观众端。网络设备可以具备直播视频处理功能,可以以音/视频帧为单位获取直播视频的直播数据流,并可以对每个音/视频帧分别进行处理。网络设备可以包括处理器、存储器和收发器,处理器可以用于进行下述流程中执行调整直播视频的时间戳的处理,存储器可以用于存储处理过程中需要的数据以及产生的数据,如前一音/视频帧的时间戳、时间戳异常判断标准等,收发器可以用于接收和发送处理过程中的相关数据,如直播视频的音/视频帧等。本实施例中以网络设备为推流边缘节点为例进行说明,其余情况与之类似,必要处将进行详细说明。此处,如果直播数据流的音/视频帧对应的时间戳已被调整过,则该音/视频帧的传输路径中的后续网络设备无需再对相应的时间戳进行重复调整。需要说明的是,本发明申请中的“音/视频帧”可以理解为音频帧和视频帧,在对调整音频帧对应的时间戳时只考虑音频帧,在调整视频帧对应的时间戳时仅考虑视频帧。

下面将结合具体实施方式,对图1所示的处理流程进行详细的说明,内容可以如下:

步骤101,获取目标直播视频的目标音/视频帧,确定目标音/视频帧对应的时间戳。

其中,目标音/视频帧可以为目标直播视频的直播数据流中的任一音/视频帧。

在实施中,主播端可以采集主播用户在直播时需要录制的音视频数据,然后生成直播数据流,并在内容优化、编码和封装一系列处理后,将最终生成的直播数据流推送到cdn集群中指定的推流边缘节点处。以目标直播视频为例,推流边缘节点可以以音/视频帧为单位接收主播端推送来的目标直播视频的音视频数据,这样,在获取到目标直播视频的目标音/视频帧后,可以对目标音/视频帧进行解封装处理,并确定目标音/视频帧对应的时间戳。可以理解,对于获取到的目标直播视频的每个音/视频帧,均需要确定其对应的时间戳,并执行后续调整其时间戳的处理。需要说明的是,如果执行时间戳调整的网络设备为主播端,则主播端可以在封装目标音/视频帧后,且在向推流边缘节点发送该目标音/视频帧前,对目标音/视频帧执行本实施例中步骤201至步骤203的处理。

可选的,可以仅对存在时间戳调整需求的直播视频执行时间戳调整处理,相应的处理可以如下:获取目标直播视频的目标音/视频帧,如果目标直播视频存在时间戳调整需求,则确定目标音/视频帧对应的时间戳。

在实施中,推流边缘节点中可以预先存储有时间戳调整需求列表,该时间戳调整需求列表中可以记录有所有存在时间戳调整需求的直播视频。这样,当推流边缘节点获取到目标直播视频的目标音/视频帧后,可以通过该时间戳调整需求列表判断目标直播视频是否存在时间戳调整需求。如果存在,则可以确定目标音/视频帧对应的时间戳,并进行后续调整时间戳的处理。此处的时间戳调整需求列表可以是技术人员预先设定的,其中可以以直播平台为单位进行记录,如记录需要对哪些直播平台的直播视频进行时间戳调整,也可以以直播视频为单位进行记录,如记录需要对哪些直播视频进行时间戳调整,还可以以时间段为单位进行记录,如记录需要在哪个时间段内对直播视频进行时间戳调整。需要说明的是,如果调整时间戳的处理由其它网络设备执行,技术人员则可以将上述时间戳调整需求列表存储在具体执行时间戳调整处理的网络设备中。

可选的,可以根据用户对于直播视频的播放体验评价来判断是否需要调整直播视频的时间戳调整需求,相应的处理可以如下:获取目标直播视频的播放体验评价,根据播放体验评价为目标直播视频设置时间戳调整需求。

在实施中,直播平台的运营方可以在用户观看直播视频时,以推送的方式邀请用户反馈对于直播视频的播放体验评价,并将汇总后的所有播放体验评价提供给用于调整直播视频的时间戳的网络设备。以网络设备为推流边缘节点为例,推流边缘节点在获取到目标直播视频的播放体验评价后,可以先判断是否已对目标直播视频进行时间戳调整,如果否,则可以利用预设的关键词对所有播放体验评价进行过滤,得到和时间戳调整需求相关的播放体验评价,然后统计这些播放体验评价的数量,如果数量大于预设阈值,则可以为目标直播视频设置时间戳调整需求。此处预设的关键词可以是用于体现时间戳调整需求的关键词,如“直播不兼容”、“视频无法播放”等。

步骤202,根据目标音/视频帧的前一音/视频帧对应的时间戳,判断目标音/视频帧对应的时间戳是否异常。

在实施中,推流边缘节点在确定了目标音/视频帧对应的时间戳之后,可以调取目标音/视频帧的前一音/视频帧(即获取目标音/视频帧之前,最新获取到的音/视频帧)对应的时间戳,然后按照预设的时间戳异常判断标准,基于目标音/视频帧对应的时间戳和前一音/视频帧对应的时间戳,判断目标音/视频帧对应的时间戳是否异常。

步骤203,如果异常,则基于前一音/视频帧对应的时间戳,对目标音/视频帧对应的时间戳进行调整。

在实施中,如果判断出目标音/视频帧对应的时间戳出现异常,推流边缘节点则可以基于前一音/视频帧对应的时间戳,对目标音/视频帧对应的时间戳进行调整。之后,可以对调整后的目标音/视频帧重新进行封装,再继续传输目标音/视频帧。而如果目标音/视频帧对应的时间戳正常,推流边缘节点则可以直接对目标音/视频帧进行再次封装,然后继续传输目标音/视频帧。需要说明的是,在后续传输过程中,目标音/视频帧将会经过多个cdn中转节点,到达拉流边缘节点,然后由拉流边缘节点传输到观众端,如果上述推流边缘节点未对目标音/视频帧进行时间戳的调整,则上述cdn中转节点、拉流边缘节点和观众端均可以进行调整时间戳的处理。

可选的,如果某音/视频帧对应的时间戳与前一音/视频帧对应的时间戳间隔太大,则可以认为该音/视频帧对应的时间戳异常,相应的,针对此种异常,步骤203的处理可以如下:如果目标音/视频帧对应的时间戳大于前一音/视频帧对应的时间戳,且二者差值大于预设时差阈值,则将目标音/视频帧对应的时间戳调整为前一音/视频帧对应的时间戳与预设时差阈值之和。

在实施中,推流边缘节点可以采用差分阈值滤波法,对直播数据流的时间戳进行处理,以防止出现时间戳陡增的情况。具体的,在判断目标音/视频帧对应的时间戳是否异常时,推流边缘节点可以先计算目标音/视频帧对应的时间戳tn与其前一音/视频帧对应的时间戳tn-1的差值△t,然后比较该差值△t是否大于预设时差阈值t*,如果是,则表明目标音/视频帧对应的时间戳异常,这时,推流边缘节点则可以将目标音/视频帧对应的时间戳tn调整为前一音/视频帧对应的时间戳tn-1与预设时差阈值t*之和,即tn=tn-1+t*

可选的,如果某音/视频帧对应的时间戳小于前一音/视频帧对应的时间戳,则可以认为该音/视频帧对应的时间戳异常,相应的,针对此种异常,步骤203的处理可以如下:如果目标音/视频帧对应的时间戳小于前一音/视频帧对应的时间戳,则将目标音/视频帧对应的时间戳调整为前一音/视频帧对应的时间戳。

在实施中,推流边缘节点可以对直播数据流中时间戳不递增的部分进行保持递增处理,以避免由于时间戳乱序而无法播放的问题。具体的,在判断目标音/视频帧对应的时间戳是否异常时,推流边缘节点可以先判断目标音/视频帧对应的时间戳tn与其前一音/视频帧对应的时间戳tn-1之间的大小,如果目标音/视频帧对应的时间戳tn小于前一音/视频帧对应的时间戳tn-1,则表明目标音/视频帧对应的时间戳异常,这时,推流边缘节点可以将目标音/视频帧对应的时间戳tn调整为前一音/视频帧对应的时间戳tn-1,即tn=tn-1,以保证播放器能够快速播放直播视频。

可选的,为了提高针对直播播放器的兼容性,可以对直播数据流的时间戳进行整体偏移调整,以固定时间戳的起始值,相应的处理可以如下:确定获取到的目标直播视频的首个音/视频帧对应的时间戳,将目标音/视频帧对应的时间戳减去首个音/视频帧对应的时间戳后得到的时间戳更新为目标音/视频帧对应的时间戳。

在实施中,推流边缘节点在获取到目标直播视频的首个音/视频帧后,可以记录该首个音/视频帧对应的时间戳,之后,可以基于该时间戳对目标直播视频的直播数据流进行时间戳偏移调整。具体的,以目标音/视频帧为例,推流边缘节点在获取到目标音/视频帧之后,可以将目标音/视频帧对应的时间戳减去已记录的上述首个音/视频帧对应的时间戳,然后将目标音/视频帧对应的时间戳更新为上述相减后得到的时间戳。这样,可以提高目标直播视频对于直播播放器的兼容性,同时可以有效避免直播播放器由于直播数据流的起始时间戳过大而无法播放直播视频的情况。

可选的,为了保证直播视频的音频和视频同步,可以在步骤203之后对直播视频的音/视频帧进一步调整,相应的处理可以如下:根据目标音频帧对应的时间戳的调整情况,对目标视频帧对应的时间戳进行调整;和/或,根据目标视频帧对应的时间戳的调整情况,对目标音频帧对应的时间戳进行调整。

在实施中,推流边缘节点在基于前一音频帧对应的时间戳,对目标音频帧对应的时间戳进行调整后,可以基于本次音频帧的时间戳的调整情况,对目标视频帧对应的时间戳进行调整,如本次调整后,目标直播视频的音频帧的时间戳整体前移了1s,那么可以将视频帧的时间戳也相应的整体前移1s。同理,推流边缘节点在基于前一视频帧对应的时间戳,对目标视频帧对应的时间戳进行调整后,可以基于本次视频帧的时间戳的调整情况,对目标音频帧对应的时间戳进行调整。

本发明实施例中,获取目标直播视频的目标音/视频帧,确定目标音/视频帧对应的时间戳;根据目标音/视频帧的前一音/视频帧对应的时间戳,判断目标音/视频帧对应的时间戳是否异常;如果异常,则基于前一音/视频帧对应的时间戳,对目标音/视频帧对应的时间戳进行调整。这样,对于直播视频的每个音/视频帧,可以基于前一音/视频帧对应的时间戳,对该音/视频帧对应的时间戳进行调整,并且可以以本次调整后的时间戳为基础,继续调整后续音/视频帧的时间戳,从而可以保证直播视频的整个直播数据流的时间戳连续稳定,提高了直播视频的播放稳定性。

基于相同的技术构思,本发明实施例还提供了一种调整直播视频的时间戳的装置,如图3所示,所述装置包括:

确定模块301,用于获取目标直播视频的目标音/视频帧,确定所述目标音/视频帧对应的时间戳;

判断模块302,用于根据所述目标音/视频帧的前一音/视频帧对应的时间戳,判断所述目标音/视频帧对应的时间戳是否异常;

调整模块303,用于如果异常,则基于所述前一音/视频帧对应的时间戳,对所述目标音/视频帧对应的时间戳进行调整。

可选的,所述调整模块303,具体用于:

如果所述目标音/视频帧对应的时间戳大于所述前一音/视频帧对应的时间戳,且二者差值大于预设时差阈值,则将所述目标音/视频帧对应的时间戳调整为所述前一音/视频帧对应的时间戳与所述预设时差阈值之和。

可选的,所述调整模块303,具体用于:

如果所述目标音/视频帧对应的时间戳小于所述前一音/视频帧对应的时间戳,则将所述目标音/视频帧对应的时间戳调整为所述前一音/视频帧对应的时间戳。

可选的,所述调整模块303,还用于:

确定获取到的所述目标直播视频的首个音/视频帧对应的时间戳,将所述目标音/视频帧对应的时间戳减去所述首个音/视频帧对应的时间戳后得到的时间戳更新为所述目标音/视频帧对应的时间戳。

可选的,所述确定模块301,具体用于:

获取目标直播视频的目标音/视频帧,如果所述目标直播视频存在时间戳调整需求,则确定所述目标音/视频帧对应的时间戳。

可选的,所述装置还包括:

设置模块,用于获取所述目标直播视频的播放体验评价,根据所述播放体验评价为所述目标直播视频设置时间戳调整需求。

可选的,所述调整模块303,还用于:

根据所述目标音频帧对应的时间戳的调整情况,对所述目标视频帧对应的时间戳进行调整;和/或,

根据所述目标视频帧对应的时间戳的调整情况,对所述目标音频帧对应的时间戳进行调整。

本发明实施例中,获取目标直播视频的目标音/视频帧,确定目标音/视频帧对应的时间戳;根据目标音/视频帧的前一音/视频帧对应的时间戳,判断目标音/视频帧对应的时间戳是否异常;如果异常,则基于前一音/视频帧对应的时间戳,对目标音/视频帧对应的时间戳进行调整。这样,对于直播视频的每个音/视频帧,可以基于前一音/视频帧对应的时间戳,对该音/视频帧对应的时间戳进行调整,并且可以以本次调整后的时间戳为基础,继续调整后续音/视频帧的时间戳,从而可以保证直播视频的整个直播数据流的时间戳连续稳定,提高了直播视频的播放稳定性。

需要说明的是:上述实施例提供的调整直播视频的时间戳的装置在调整直播视频的时间戳时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的调整直播视频的时间戳的装置与调整直播视频的时间戳的方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。

图4是本发明实施例提供的网络设备的结构示意图。该网络设备400可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器422(例如,一个或一个以上处理器)和存储器432,一个或一个以上存储应用程序442或数据444的存储介质430(例如一个或一个以上海量存储设备)。其中,存储器432和存储介质430可以是短暂存储或持久存储。存储在存储介质430的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对网络设备400中的一系列指令操作。更进一步地,中央处理器422可以设置为与存储介质430通信,在网络设备400上执行存储介质430中的一系列指令操作。

网络设备400还可以包括一个或一个以上电源429,一个或一个以上有线或无线网络接口450,一个或一个以上输入输出接口458,一个或一个以上键盘456,和/或,一个或一个以上操作系统441,例如windowsserver,macosx,unix,linux,freebsd等等。

网络设备400可以包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行所述一个或者一个以上程序包含用于进行上述调整直播视频的时间戳的指令。

本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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