音视频直播追流方法及装置与流程

文档序号:16590270发布日期:2019-01-14 19:03阅读:313来源:国知局
音视频直播追流方法及装置与流程

本申请涉及直播技术领域,具体而言,涉及一种音视频直播追流方法及装置。



背景技术:

随着信息技术的迅速发展,直播技术与各行各业不断融合,受到了越来越多人的喜好,在一定程度上带动了经济发展。直播具有实时性,然而在目前的直播技术中,存在直播不流畅、实时性低的问题。如何提升直播的实时性有待解决。



技术实现要素:

有鉴于此,本申请实施例提供了一种音视频直播追流方法及装置。

本申请实施例采用的技术方案如下:

第一方面,本申请实施例提供了一种音视频直播追流方法,应用于直播用户端,所述方法包括:

接收待解码视频包,对所述待解码视频包进行解码以获取待播放视频帧和待播放音频帧。

根据所述待解码视频包的数量和所述直播用户端的上层传递的参数计算出第一音频帧播放速度。

获取所述直播用户端中当前播放音频帧的播放速度。

判断所述当前播放音频帧的播放速度是否等于所述第一音频帧播放速度,若所述当前播放音频帧的播放速度不等于所述第一音频帧播放速度,则将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

获取所述直播用户端中的当前播放音频帧的时间参数和当前播放视频帧的时间参数,基于所述当前播放视频帧的时间参数和所述当前播放音频帧的时间参数计算出第一间隔时间。

等待所述第一间隔时间后对所述待播放视频帧进行渲染。

可选地,根据所述待解码视频包的数量和所述直播用户端的上层传递的参数计算出第一音频帧播放速度的步骤,包括:

获取所述直播用户端中上层传递的直播类型参数、速度调节系数和单位时间内实时传输的视频帧数,对所述待解码视频包的数量、所述单位时间内实时传输的视频帧数、所述直播类型参数和所述速度调节系数进行运算,获得音频修正率。

根据所述直播用户端存储的各音频修正率与各音频帧播放速度的映射关系,得到与所获得的音频修正率对应的音频速度作为第一音频帧播放速度。

可选地,对所述待解码视频包的数量、所述单位时间内实时传输的视频帧数、所述直播类型参数和所述速度调节系数进行运算,获得音频修正率的步骤,包括:

采用第一函数对所述待解码视频包的数量、所述直播类型参数、所述单位时间内实时传输的视频帧数和所述速度调节系数进行运算,获得音频修正率。

所述第一函数为:

其中,f为所述音频修正率,n为所述待解码视频包的数量,λ为所述速度调节系数,fps为所述单位时间内实时传输的视频帧数,type为所述直播类型参数。

可选地,将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致的步骤,包括:

若采用重采样方式将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致,则改变对所述待播放音频帧采样的采样频率,以将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

若不采用重采样方式将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致,则采用所述直播用户端自带的系统调速方式将所述当前播放音频帧的播放速度提与所述第一音频帧播放速度一致。

可选地,获取所述直播用户端中的当前播放音频帧的时间参数和当前播放视频帧的时间参数,基于所述当前播放视频帧的时间参数和所述当前播放音频帧的时间参数计算出第一间隔时间的步骤,包括:

获取所述当前播放视频帧的第一时钟和所述直播用户端中当前播放音频帧的第二时钟,基于所述第一时钟和所述第二时钟计算出第一间隔时间。

可选地,基于所述第一时钟和所述第二时钟计算出第一间隔时间的步骤,包括;

采用第二函数对所述单位时间内实时传输的视频帧数、所述第一时钟和所述第二时钟进行运算处理,计算出第一间隔时间。

所述第二函数为:

diff=t1-t2

其中,delay为所述第一间隔时间,fps为所述单位时间内实时传输的视频帧数,t1为所述第一时钟,t2为所述第二时钟,diff为所述第一时钟t1和所述第二时钟t2的差值。

可选地,在根据所述待解码视频包的数量和所述直播用户端的上层传递的参数计算出第一音频帧播放速度之前,所述方法还包括:

判断是否需要对述待播放视频帧进行丢弃处理。

若不需要对述待播放视频帧进行丢弃处理,则根据所述待解码视频包的数量和所述直播用户端的上层参数计算出第一音频帧播放速度。

若需要对述待播放视频帧进行丢弃处理,则进行视频帧丢弃处理。

可选地,进行视频帧丢弃处理的步骤,包括:

判断所述待播放视频帧的帧数是否大于1。

若解码后的视频包中所述待播放视频帧的帧数大于1,则获取所述待播放视频帧的时间戳和所述直播用户端中当前播放音频帧的时间戳,将所述待播放视频帧的时间戳落后于所述当前播放音频帧的时间戳的所述待播放视频帧丢弃。

若解码后的视频包中所述待播放视频帧的帧数不大于1,则结束丢弃所述待播放视频帧。

可选地,等待所述第一间隔时间后对所述待播放视频帧进行渲染之后,所述方法还包括,播放渲染后的所述待播放视频帧。

第二方面,本申请实施例还提供了一种音视频直播追流装置,所述音视频直播追流装置包括接收模块、解码模块、第一处理模块、第二处理模块、第三处理模块和渲染模块。

所述接收模块用于接收待解码视频包。

所述解码模块用于对所述待解码视频包进行解码以获取待播放视频帧和待播放音频帧。

所述第一处理模块用于根据所述待解码视频包的数量和所述直播用户端的上层传递的参数计算出第一音频帧播放速度。

所述第二处理模块用于获取所述直播用户端中当前播放音频帧的播放速度,并判断所述当前播放音频帧的播放速度是否等于所述第一音频帧播放速度,若所述当前播放音频帧的播放速度不等于所述第一音频帧播放速度,则所述第二处理模块将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

所述第三处理模块用于获取所述当前播放音频帧的时间参数和所述直播用户端中当前播放视频帧的时间参数,并基于所述当前播放视频帧的时间参数和所述当前播放音频帧的时间参数计算出第一间隔时间。

所述渲染模块用于等待所述第一间隔时间后对所述待播放视频帧进行渲染。

本申请实施例提供一种音视频直播追流方法及装置,通过对待解码视频包进行解码以获取待播放视频帧和待播放音频帧,根据待解码视频包的数量和直播用户端的上层传递的参数计算出第一音频帧播放速度。在当前播放音频帧的播放速度不等于第一音频帧播放速度时,则将当前播放音频帧的播放速度设置为与第一音频帧播放速度一致。再基于直播用户端中当前播放视频帧的时间参数和当前播放音频帧的时间参数计算出第一间隔时间,等待第一间隔时间后对待播放视频帧进行渲染,以实时改变当前播放音频帧的播放速度,实现直播追流,使得直播中的音视频更为流畅,实时性更高,给直播观看者良好的观影感受。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它相关的附图。

图1为本申请实施例提供的一种音视频直播追流方法的流程示意图。

图2为本申请实施例提供的另一种音视频直播追流方法的流程示意图。

图3为本申请实施例提供的又一种音视频直播追流方法的流程示意图。

图4为本申请实施例提供的一种音视频直播追流装置的功能模块示意图之。

图标:100-音视频直播追流装置;10-接收模块;20-解码模块;31-第一处理模块;32-第二处理模块;33-第三处理模块;40-渲染模块。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。

因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。

应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。

在常见的直播中,由于网络不稳定或者网络延迟高,导致直播观看者无法获取实时的音视频数据包,进而无法观看实时的音视频。此外,网络卡顿时间过长或者卡顿次数过多,在缺少相应的播放调整机制或者重连机制的情况下,直播观看者不能看到实时的音视频,从而给直播观看者带来不好的观影感受。

基于上述技术问题的发现,本申请发明人提出下述技术方案以解决或者改善上述问题,需要注意的是,以上现有技术中的方案所存在的缺陷,均是发明人在经过实践并仔细研究后得出的结果,因此,上述问题的发现过程以及下文中本申请实施例针对上述问题所提出的解决方案,都应该是发明人在本申请过程中对本申请做出的贡献。

本申请发明人在解决上述技术问题的过程中,经过长期研究,提出了通过对待解码视频包进行解码以获取待播放视频帧和待播放音频帧,根据待解码视频包的数量和直播用户端的上层传递的参数计算出第一音频帧播放速度。在当前播放音频帧的播放速度不等于第一音频帧播放速度时,则将当前播放音频帧的播放速度设置为与第一音频帧播放速度一致。再基于直播用户端中当前播放视频帧的时间参数和当前播放音频帧的时间参数计算出第一间隔时间,等待第一间隔时间后对待播放视频帧进行渲染,以实时改变当前播放音频帧的播放速度,实现直播追流,使得直播中的音视频更为流畅,实时性更高,从而给直播观看者良好的观影感受。

可以替换的,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其它可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的电子设备、服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。

在本申请实施例中,所述直播用户端可以是任意终端。例如手机(mobilephone)、平板电脑(pad)、虚拟现实(virtualreality,vr)终端设备、增强现实(augmentedreality,ar)终端设备、工业控制(industrialcontrol)中的无线终端、无人驾驶(selfdriving)中的无线终端、远程医疗(remotemedical)中的无线终端、智能电网(smartgrid)中的无线终端、运输安全(transportationsafety)中的无线终端、智慧城市(smartcity)中的无线终端、智慧家庭(smarthome)中的无线终端等等。本申请的实施例对应用场景不做限定。

请结合参阅图1,为本申请实施例提供的一种音视频直播追流方法的流程示意图,应用于直播用户端。应当说明的是,本申请实施例提供的活体判断方法不以图1及以下所述的具体顺序为限制。所述方法的具体流程如下:

步骤s10,接收待解码视频包,对所述待解码视频包进行解码以获取待播放视频帧和待播放音频帧。

步骤s20,根据所述待解码视频包的数量和所述直播用户端的上层传递的参数计算出第一音频帧播放速度。

作为一种实施方式,所述步骤s20可以通过如下方式实现:

首先,获取所述直播用户端中上层传递的直播类型参数、速度调节系数和单位时间内实时传输的视频帧数,对所述待解码视频包的数量、所述单位时间内实时传输的视频帧数、所述直播类型参数和所述速度调节系数进行运算,获得音频修正率。

然后,根据所述直播用户端存储的各音频修正率与各音频帧播放速度的映射关系,得到与所获得的音频修正率对应的音频速度作为第一音频帧播放速度。

作为一种实施方式,所述对所述待解码视频包的数量、所述单位时间内实时传输的视频帧数、所述直播类型参数和所述速度调节系数进行运算,获得音频修正率的步骤,可以通过如下方式实现:

采用第一函数对所述待解码视频包的数量、所述直播类型参数、所述单位时间内实时传输的视频帧数和所述速度调节系数进行运算,获得音频修正率。

所述第一函数为:

其中,f为所述音频修正率,n为所述待解码视频包的数量,λ为所述速度调节系数,fps为所述单位时间内实时传输的视频帧数,type为所述直播类型参数。应当理解的是,不同的直播类型对应的直播类型参数是不一样的。例如,卡拉ok类的秀场类直播偏向实时性,其直播类型参数值相对小些,游戏类直播偏向流畅性,其值相对大些。

由此,所述第一函数获取的音频修正率与所述单位时间内实时传输的视频帧数直接相关。从而,在根据所述直播用户端存储的各音频修正率与各音频帧播放速度的映射关系,得到与所获得的音频修正率对应的音频速度作为第一音频帧播放速度时,获得的第一音频帧播放速度和所述单位时间内实时传输的视频帧数相关,从而使得第一音频帧播放速度具有实时性。

步骤s30,获取所述直播用户端中当前播放音频帧的播放速度。

步骤s40,判断所述当前播放音频帧的播放速度是否等于所述第一音频帧播放速度。若所述当前播放音频帧的播放速度不等于所述第一音频帧播放速度,则执行步骤s401。

步骤s401,将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

作为一种实施方式,所述步骤s401可以通过如下方式实现:

首先,判断是否采样方式将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

若采用重采样方式将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致,则改变对所述待播放音频帧采样的采样频率,以将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

若不采用重采样方式将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致,则采用所述直播用户端自带的系统调速方式将所述当前播放音频帧的播放速度提与所述第一音频帧播放速度一致。

步骤s50,获取所述直播用户端中的当前播放音频帧的时间参数和当前播放视频帧的时间参数。

进一步地,获取所述直播用户端中的当前播放视频帧的第一时钟和当前播放音频帧的第二时钟。

步骤s60,基于所述当前播放视频帧的时间参数和所述当前播放音频帧的时间参数计算出第一间隔时间。

作为一种实施方式,所述步骤s60可以通过如下方式实现:

采用第二函数对所述单位时间内实时传输的视频帧数、所述第一时钟和所述第二时钟进行运算处理,计算出第一间隔时间。

所述第二函数为:

diff=t1-t2

其中,delay为所述第一间隔时间,fps为所述单位时间内实时传输的视频帧数,t1为所述第一时钟,t2为所述第二时钟,diff为所述第一时钟t1和所述第二时钟t2的差值。应当说明的是,为一参考时间(正数)。当第一时钟t1和所述第二时钟t2的差值小于或等于该参考时间的负值时,可以理解为直播用户端中的视频帧的播放远落后于音频帧的播放,则应当立即对视频帧进行渲染。当第一时钟t1和所述第二时钟t2的差值大于或等于该参考时间的正值,可以理解为直播用户端中的视频帧的播放远快于音频帧的播放,则等待两倍的参考时间再对视频帧进行渲染。当第一时钟t1和所述第二时钟t2的差值介于该参考时间的负值和正值之间时,则等待该参考时间后对视频帧进行渲染。从而,根据音频帧和视频帧的实时播放情况,来调整视频帧的渲染。

步骤s70,等待所述第一间隔时间后对所述待播放视频帧进行渲染。

请结合参阅图2和图3,在步骤s20之前,所述方法还包括以下步骤:

步骤s80,判断是否需要对述待播放视频帧进行丢弃处理。若不需要对述待播放视频帧进行丢弃处理,则执行步骤s20,若需要对述待播放视频帧进行丢弃处理,则执行步骤s801。

步骤s801,视频帧丢弃处理。

作为一种实施方式,所述步骤s801可以通过如下方式实现:

步骤s8011,判断所述待播放视频帧的帧数是否大于1。若解码后的视频包中所述待播放视频帧的帧数大于1,则执行步骤s8012,若解码后的视频包中所述待播放视频帧的帧数不大于1,则结束丢弃所述待播放视频帧。

步骤s8012,获取所述待播放视频帧的时间戳和所述直播用户端中当前播放音频帧的时间戳。

步骤s8013,将所述待播放视频帧的时间戳落后于所述当前播放音频帧的时间戳的所述待播放视频帧丢弃。

请结合参阅图4,本申请实施例还提供了一种音视频直播追流装置100,所述音视频直播追流装置100包括:接收模块10、解码模块20、第一处理模块31、第二处理模块32、第三处理模块33和渲染模块40。

所述接收模块10用于接收待解码视频包。

所述解码模块20用于对所述待解码视频包进行解码以获取待播放视频帧和待播放音频帧。

所述第一处理模块31用于根据所述待解码视频包的数量和所述直播用户端的上层传递的参数计算出第一音频帧播放速度。

所述第二处理模块32用于获取所述直播用户端中当前播放音频帧的播放速度,并判断所述当前播放音频帧的播放速度是否等于所述第一音频帧播放速度,若所述当前播放音频帧的播放速度不等于所述第一音频帧播放速度,则所述第二处理模块32将所述当前播放音频帧的播放速度设置为与所述第一音频帧播放速度一致。

所述第三处理模块33用于获取所述当前播放音频帧的时间参数和所述直播用户端中当前播放视频帧的时间参数,并基于所述当前播放视频帧的时间参数和所述当前播放音频帧的时间参数计算出第一间隔时间。

所述渲染模块40用于等待所述第一间隔时间后对所述待播放视频帧进行渲染。

综上所述,本申请实施例提供的音视频直播追流方法及装置,通过对待解码视频包进行解码以获取待播放视频帧和待播放音频帧,根据待解码视频包的数量和直播用户端的上层传递的参数计算出第一音频帧播放速度。在当前播放音频帧的播放速度不等于第一音频帧播放速度时,则将当前播放音频帧的播放速度设置为与第一音频帧播放速度一致。再基于直播用户端中当前播放视频帧的时间参数和当前播放音频帧的时间参数计算出第一间隔时间,等待第一间隔时间后对待播放视频帧进行渲染,以实时改变当前播放音频帧的播放速度,实现直播追流,使得直播中的音视频流畅,从而给直播观看者以良好的观影感受。

在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

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

对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。

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