网络自适应视频流的传输方法和装置与流程

文档序号:20917245发布日期:2020-05-29 13:41阅读:146来源:国知局
网络自适应视频流的传输方法和装置与流程

本发明涉及计算机领域,具体而言,涉及一种网络自适应视频流的传输方法和装置。



背景技术:

现有主流视频编码算法(h.264/h.265/h.266/av1/vp9)等,默认视频编码时gop序列(i/p/b帧)都会对序列中其它类型帧提供参考,帧之间相互参考提高了编码压缩效率,一幅帧仅需保存自身与被参考帧的不同之处即可,但相互之间参考模式会导致错误延续传播,即x帧出错,参考它的y帧也会出错,那么参考y帧的z帧也会出错,以此类推,视频传输播放过程中如果有帧丢弃就会导致有参考丢弃帧的编码帧解码会失败,从而出现黑屏、块缺失、跳帧等异常情况。

在视频cdn(contentdeliverynetwork,内容分发网络)分发过程中,对于差网络用户会有一些网络自适应方案如hls(httplivestreaming)/dash(dynamicadaptivestreamingoverhttp)多码率自适应方案,但这些自适应方案都是基于网络传输层面降低视频编码码率解决方案,即在网络传输出现拥塞的情况下,都会强制降低视频编码码率,但现有技术中在降低视频编码码率的同时也降低了用户视频观看画质和交互体验。

针对相关技术中的上述问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供一种网络自适应视频流的传输方法和装置,以至少解决相关技术中在网络传输出现拥塞的情况下所采用的自适应方案在降低视频编码码率的同时降低了用户视频观看画质和交互体验的技术问题。

根据本发明实施例的一个方面,提供了一种网络自适应视频流的传输的方法,包括:对待传输的目标视频流进行编码,得到目标帧序列;将所述目标帧序列中的部分帧确定为指定帧,其中,所述指定帧的参考帧为所述目标帧序列中位于所述指定帧前面的帧以及后面的帧,所述指定帧不作为所述目标帧序列中其他帧的参考帧;将所述目标帧序列通过目标网络传输给目标设备,其中,在所述目标网络出现拥塞的情况下,丢弃所述目标帧序列中的所述指定帧中的部分或全部帧。

根据本发明实施例的另一方面,还提供了一种网络自适应视频流的传输的装置,包括:编码模块,用于对待传输的目标视频流进行编码,得到目标帧序列;确定模块,用于将所述目标帧序列中的部分帧确定为指定帧,其中,所述指定帧的参考帧为所述目标帧序列中位于所述指定帧前面的帧以及后面的帧,所述指定帧不作为所述目标帧序列中其他帧的参考帧;传输模块,用于将所述目标帧序列通过目标网络传输给目标设备,其中,在所述目标网络出现拥塞的情况下,丢弃所述目标帧序列中的所述指定帧中的部分或全部帧。

根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述方法。

根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的方法。

在本发明实施例中,将目标帧序列中的部分帧确定为指定帧,在目标网络出现拥塞的情况下,丢弃所述目标帧序列中的所述指定帧中的部分或全部帧,由于该指定帧的参考帧为所述目标帧序列中位于所述指定帧前面的帧以及后面的帧,以及指定帧不作为所述目标帧序列中其他帧的参考帧,因此,在丢弃目标帧序列中的所述指定帧中的部分或全部帧后,也不影响目标帧序列中其它帧解码,视频流的传输也可以正常的,从而解决了相关技术中在网络传输出现拥塞的情况下所采用的自适应方案在降低视频编码码率的同时降低了用户视频观看画质和交互体验的技术问题。

附图说明

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

图1是根据本发明实施例的一种网络自适应视频流的传输方法的应用环境的示意图;

图2是根据本发明实施例的一种可选的网络自适应视频流的传输的流程示意图;

图3是根据本发明实施例的一种编码框架的结构示意图;

图4是根据本发明实施例的一种cu/pu/tu的划分示意图;

图5是根据本发明实施例的一种可选的gop帧序列的示意图;

图6是根据本发明实施例的一种网络自适应视频流的传输装置的结构示意图;

图7是根据本发明实施例的一种可选的电子装置的结构示意图。

具体实施方式

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

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

此外,还需要对本申请中出现的术语进行相应的说明;

idr帧:在视频编码算法(h.264/h.265/h.266/av1等),图像以序列为单位进行组织。一个序列的第一个图像叫做idr图像(立即刷新图像),idr图像都是i帧图像。

i帧:idr会导致dpb(decodedpicturebuffer参考帧列表)清空,而i不会。idr图像一定是i图像,但i图像不一定是idr图像。一个序列中可以有很多的i图像,i图像之后的图像可以引用i图像之间的图像做运动参考。一个序列中可以有很多的i图像,i图像之后的图象可以引用i图像之间的图像做运动参考。

p帧:前向预测编码帧;其中,p帧表示的是这一帧跟之前的一个关键帧(或p帧)的差别,解码时需要用之前缓存的画面叠加上本帧定义的差别,生成最终画面。

b帧:双向预测内插编码帧;其中,b帧是双向差别帧,也就是b帧记录的是本帧与前后帧的差别,b帧可以作其它b帧的参考帧,也可以不作为其它b帧参考帧。

宏块:编码的基本单位,一个编码图像首先要划分成多个块才能进行处理,显然宏块应该是整数个块组成。

片(slice):一帧视频图像可编码成一个或者多个片,每片包含整数个宏块,即每片至少一个宏块,最多时包含整个图像的宏块。片的目的是为了限制误码的扩散和传输,使编码片相互间保持独立。

gop(groupofpictures):两个i帧之间的间隔。

flv(flashvideo):flv流媒体格式是随着flashmx的推出发展而来的视频格式。由于它形成的文件极小、加载速度极快,使得网络观看视频文件成为可能,它的出现有效地解决了视频文件导入flash后,使导出的swf文件体积庞大,不能在网络上很好的使用等问题。

hls(httplivestreaming):apple的动态码率自适应技术。主要用于pc和apple终端的音视频服务。包括一个m3u8的索引文件,ts媒体分片文件和key加密串文件。

dash(dynamicadaptivestreamingoverhttp),它是基于http的动态自适应流,类似hls协议,它通过一种自适应的比特率流技术,使高质量的流媒体可以通过http协议进行传输。

cdn(contentdeliverynetwork,内容分发网络):其基本思路是尽可能避开互联网上有可能影响数据传输速度和稳定性的瓶颈和环节,使内容传输的更快、更稳定。通过在网络各处放置节点服务器所构成的在现有的互联网基础之上的一层智能虚拟网络,cdn系统能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决internet网络拥挤的状况,提高用户访问网站的响应速度。

根据本发明实施例的一个方面,提供了一种网络自适应视频流的传输方法。可选地,上述虚网络自适应视频流的传输方法可以但不限于应用于如图1所示的应用场景中。如图1所示,终端102内通过网络104获取服务器106传输的数据。服务器106对待传输的目标视频流进行编码,得到目标帧序列,并将目标帧序列中的部分帧确定为指定帧,其中,指定帧的参考帧为目标帧序列中位于指定帧前面的帧以及后面的帧,指定帧不作为目标帧序列中其他帧的参考帧;进而通过网络将目标帧序列传输给终端102,其中,在目标网络出现拥塞的情况下,丢弃目标帧序列中的指定帧中的部分或全部帧。

可选地,在本实施例中,上述终端可以包括但不限于以下至少之一:手机、平板电脑等。上述网络可以包括但不限于:有线网络,无线网络,其中,该有线网络包括:局域网、城域网和广域网,该无线网络包括:蓝牙、wifi及其他实现无线通信的网络。上述服务器可以包括但不限于以下至少之一:pc机及其他用于计算服务的设备。上述只是一种示例,本实施例对此不做任何限定。

可选地,在本实施例中,作为一种可选的实施方式,如图2所示,上述网络自使用视频流的传输方法可以包括:

s202,对待传输的目标视频流进行编码,得到目标帧序列;

s204,将目标帧序列中的部分帧确定为指定帧,其中,指定帧的参考帧为目标帧序列中位于指定帧前面的帧以及后面的帧,指定帧不作为目标帧序列中其他帧的参考帧;

s206,将目标帧序列通过目标网络传输给目标设备,其中,在目标网络出现拥塞的情况下,丢弃目标帧序列中的指定帧中的部分或全部帧。

可选地,在本实施例中,目标视频流可以是用户通过目标设备观看影视作品的视频流,也可以是通过目标设备玩游戏的游戏视频流等。此外,本申请中的目标帧序列可以是gop帧序列,当然也可以是其他帧序列。

以目标帧序列为gop帧序列为例,本实施例中的gop帧序列包括以下几种情况:

1),固定gop及序列,比如固定gop是120帧,即每隔120帧就生成一个i帧,gop帧序列固定如:ibbpbbp…bbi。

2),gop大小固定序列不固定,比如固定gop是120帧,即每隔120帧就生成一个i帧,gop帧序列根据画面复杂度和相关p/b帧生成权重决定帧是p帧还是b帧。

3),开放型gop(gop大小和序列都不固定),根据画面纹理、运动复杂度以及i/p/b帧生成策略和权重配置自动生成。

因此,在目标帧序列为gop帧序列的情况下,本实施例中涉及到的指定帧可以是gop中的b帧或p帧,或者是b帧和p帧的组合。

对此,可以通过如图3所示的编码框架对图像进行编码得到上述不同类型的gop帧序列,基于图3,一帧图像送入到编码器,先按照64x64块大小分割成一个个编码树单元(codingtreeuint,ctu),经过深度划分得到编码单元(codinguint,cu),每个cu包含预测单元(predictunit,pu)和变换单元(transformunit,tu)。对每个pu进行预测,得到预测值,预测值与输入数据相减,得到残差,然后进行dct变换和量化,得到残差系数,然后送入熵编码模块输出码流,同时,残差系数经反量化、反变换之后,得到重构图像的残差值,再和预测值相加,从而得到了重构图像,重构图像经环内滤波之后,进入参考帧队列,作为下一帧的参考图像,从而依次向后编码。预测时,从最大编码单元(lcu,largestcodeunit)开始,每层按照四叉树,逐层向下划分,做递归计算。首先,由上向下划分。从depth=0,64x64块先分割为4个32x32的子cus。然后其中一个32x32的子cu,再继续分割为4个16x16的子cus,以此类推,直到depth=3,cu大小为8x8。然后,由下往上进行修剪。对4个8x8的cus的rdcost求和(记为cost1),与对应上一级16x16的cu的rdcost(记为cost2)比较,若cost1小于cost2则保留8x8的cu分割,否则继续往上修剪,逐层比较。最后,找出最优的cu深度划分情况。pu预测分为帧内预测和帧级预测,先相同预测类型内,不同pu间进行比较,找到最优的分割模式,再帧内帧间模式比较,找到当前cu下的最优预测模式;同时对cu进行基于四叉树结构的自适应变换(residualquad-treetransform,rqt),找出最优的tu模式。最后将一帧图像分成一个个cu,及cu对应下的pu与tu。如图4所示,pu共有8种分割模式,tu只有划分或不划分2种分割模式。

进一步地,基于上述图3的编码框架,可以先预测相同类型内,不同pu间进行比较,找到最优的分割模式,再帧内帧间模式比较,找到当前cu下的最优预测模式;同时对cu进行基于四叉树结构的自适应变换(residualquad-treetransform,rqt),找出最优的tu模式。最后将一帧图像分成一个个cu,及cu对应下的pu与tu。一帧图像对每个pu进行预测,得到预测值,预测值与输入数据相减,得到残差,然后进行dct变换和量化,得到残差系数,然后送入熵编码模块输出码流,一帧图像根据编码参数设置和码率控制策略决定该帧是i、p、b帧,i/p/b帧不同帧类型有不同的参考帧队列。

结合上述gop帧序列的几种情况,以及编码码率控制算法决定图片帧是i/p/b帧类型,进而再结合图3中的编码框架选择最优的分割模式,再帧内帧间模式比较,找到当前cu下的最优预测模式。根据pu分析预测的帧内和帧间模式以及帧类型配置,根据编码参数配置和画面场景复杂度,选择一定比例b帧可以参考它前面的帧也可以参考它后的帧(播放顺序),但是它不能作为参考帧供其它帧参考预测模式分析,不加入其它帧编码模式预测的参考帧序列,如图5所示。

由于相关技术中在网络传输出现拥塞的情况下所采用的自适应方案在降低视频编码码率的同时降低了用户视频观看画质和交互体验,通过本实施例的方法,将目标帧序列中的部分帧确定为指定帧,在目标网络出现拥塞的情况下,丢弃所述目标帧序列中的所述指定帧中的部分或全部帧,由于该指定帧的参考帧为所述目标帧序列中位于所述指定帧前面的帧以及后面的帧,以及指定帧不作为所述目标帧序列中其他帧的参考帧,因此,在丢弃目标帧序列中的所述指定帧中的部分或全部帧后,也不影响目标帧序列中其它帧解码,视频流的传输也可以正常的,从而解决了相关技术中在网络传输出现拥塞的情况下所采用的自适应方案在降低视频编码码率的同时降低了用户视频观看画质和交互体验的技术问题。

可选地,在本实施例中,对于上述步骤s206中涉及到的丢弃目标帧序列中的指定帧中的部分或全部帧的方式,进一步可以通过如下方式来实现:

步骤s206-11,丢弃目标帧序列中指定帧中的第一组帧,其中,目标帧序列在丢弃第一组帧之后的帧率仍大于最小预定帧率。

需要说明的是,该指定帧中的第一组帧可以是实现设置的预定数量的指定帧,也可以是随机的一个或多个指定帧。以目标帧序列为gop帧序列为例,则一个gop帧序列可以是:ibbpbbp…bbbbpbbbbi,其中,b就是本实施例中涉及到的指定帧,是从gop帧序列中的b帧和/或p帧中确定出来的。因此,该指定帧(b帧)中的第一组帧可以是排序靠前的多个b帧组成的(例如前10个b帧),或者是随机从b帧中选择的多个帧。当然,上述方式仅仅是举例说明,还可以是其他方式来确定指定中的第一组帧。

进一步地,在丢弃所述目标帧序列中所述指定帧中的第一组帧之后,所述目标网络还处于拥塞的情况下,继续丢弃所述目标帧序列中所述指定帧中的一组或多组帧;其中,所述目标帧序列在丢弃所述指定帧的一组或多组帧之后的帧率仍大于最小预定帧率。

也就是说,在丢弃指定帧中的第一组帧之后,该目标网络依然处于拥塞状态,还需要继续丢弃指定帧。例如,还是以目标帧序列为gop帧序列为例,在当前多个gop帧序列中丢弃了指定帧中的第一组帧,如排序靠前的多个b帧组成的(例如前10个b帧),或者是随机从b帧中选择的多个帧;当前目标网络依然是拥塞状态,则在接下来传输的gop帧序列中在之前的基础上再丢弃一组或多组帧,该过程是一个循环的过程,如果依然检测到目标网络处于拥塞状态,则在之前的基础上再丢弃一组或多组指定帧。但是,不管怎么丢弃指定帧,依然的保证传输的帧率大于最小预定帧率,该最小预定帧率优选为大于或等15帧率,在保证帧率至少大于或等于15帧率,能够保证视频流不卡顿,基本上是连续的,当然该最小预定帧率也可以是其他取值,根据实际情况进行相应的设置。

可选地,在本实施例中,对于步骤s206中涉及到的将目标帧序列通过目标网络传输给目标设备的方式,包括如下方式:

方式(1)通过第一传输通道将指定帧传输给目标设备,并通过第二传输通道将目标帧序列中除指定帧之外的其他帧传输给目标设备,其中,第一传输通道与第二传输通道不同。

方式(2)在目标网络出现拥塞的情况下,接收目标设备发送的指示消息,其中,指示消息用于指示丢弃目标帧序列中的指定帧中的部分或全部帧;将目标帧序列中未丢弃的帧通过目标网络传输给目标设备。

通过上述方式(1)和方式(2)可知,在本实施例中对于指定帧的丢弃,还可以通过设置传输通道来实现,即将指定帧单独的放在一个通道中,这样在出现网络传输拥塞的情况下,目标设备直接不接收该通道的指定帧即可。

可选地,基于上述方式(1)和方式(2),本实施例中的丢弃目标帧序列中的指定帧中的部分或全部帧,包括:停止通过第一传输通道将指定帧传输给目标设备;或者,目标设备停止通过第一传输通道接收指定帧。也就是说,用户在下载视频或观看视频时如果判断自己网络不佳的情况下,该第一通道数据可以不下载,以此节省用户下载视频数据带宽消耗,减少网络拥塞和卡顿。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

根据本发明实施例的另一个方面,还提供了一种用于实施上述网络自适应视频流的传输方法的网络自适应视频流的传输装置,如图6所示,该装置包括:

(1)编码模块62,用于对待传输的目标视频流进行编码,得到目标帧序列;

(2)确定模块64,用于将目标帧序列中的部分帧确定为指定帧,其中,指定帧的参考帧为目标帧序列中位于指定帧前面的帧以及后面的帧,指定帧不作为目标帧序列中其他帧的参考帧;

(3)传输模块66,用于将目标帧序列通过目标网络传输给目标设备,其中,在目标网络出现拥塞的情况下,丢弃目标帧序列中的指定帧中的部分或全部帧。

可选地,在本实施例中,目标视频流可以是用户通过目标设备观看影视作品的视频流,也可以是通过目标设备玩游戏的游戏视频流等。此外,本申请中的目标帧序列可以是gop帧序列,当然也可以是其他帧序列。

以目标帧序列为gop帧序列为例,本实施例中的gop帧序列包括以下几种情况:

1),固定gop及序列,比如固定gop是120帧,即每隔120帧就生成一个i帧,gop帧序列固定如:ibbpbbp…bbi。

2),gop大小固定序列不固定,比如固定gop是120帧,即每隔120帧就生成一个i帧,gop帧序列根据画面复杂度和相关p/b帧生成权重决定帧是p帧还是b帧。

3),开放型gop(gop大小和序列都不固定),根据画面纹理、运动复杂度以及i/p/b帧生成策略和权重配置自动生成。

因此,在目标帧序列为gop帧序列的情况下,本实施例中涉及到的指定帧可以是gop中的b帧或p帧,或者是b帧和p帧的组合。

对此,可以通过如图3所示的编码框架对图像进行编码得到上述不同类型的gop帧序列,基于图3,一帧图像送入到编码器,先按照64x64块大小分割成一个个编码树单元(codingtreeuint,ctu),经过深度划分得到编码单元(codinguint,cu),每个cu包含预测单元(predictunit,pu)和变换单元(transformunit,tu)。对每个pu进行预测,得到预测值,预测值与输入数据相减,得到残差,然后进行dct变换和量化,得到残差系数,然后送入熵编码模块输出码流,同时,残差系数经反量化、反变换之后,得到重构图像的残差值,再和预测值相加,从而得到了重构图像,重构图像经环内滤波之后,进入参考帧队列,作为下一帧的参考图像,从而依次向后编码。预测时,从最大编码单元(lcu,largestcodeunit)开始,每层按照四叉树,逐层向下划分,做递归计算。首先,由上向下划分。从depth=0,64x64块先分割为4个32x32的子cus。然后其中一个32x32的子cu,再继续分割为4个16x16的子cus,以此类推,直到depth=3,cu大小为8x8。然后,由下往上进行修剪。对4个8x8的cus的rdcost求和(记为cost1),与对应上一级16x16的cu的rdcost(记为cost2)比较,若cost1小于cost2则保留8x8的cu分割,否则继续往上修剪,逐层比较。最后,找出最优的cu深度划分情况。pu预测分为帧内预测和帧级预测,先相同预测类型内,不同pu间进行比较,找到最优的分割模式,再帧内帧间模式比较,找到当前cu下的最优预测模式;同时对cu进行基于四叉树结构的自适应变换(residualquad-treetransform,rqt),找出最优的tu模式。最后将一帧图像分成一个个cu,及cu对应下的pu与tu。如图4所示,pu共有8种分割模式,tu只有划分或不划分2种分割模式。

进一步地,基于上述图3的编码框架,可以先预测相同类型内,不同pu间进行比较,找到最优的分割模式,再帧内帧间模式比较,找到当前cu下的最优预测模式;同时对cu进行基于四叉树结构的自适应变换(residualquad-treetransform,rqt),找出最优的tu模式。最后将一帧图像分成一个个cu,及cu对应下的pu与tu。一帧图像对每个pu进行预测,得到预测值,预测值与输入数据相减,得到残差,然后进行dct变换和量化,得到残差系数,然后送入熵编码模块输出码流,一帧图像根据编码参数设置和码率控制策略决定该帧是i、p、b帧,i/p/b帧不同帧类型有不同的参考帧队列。

结合上述gop帧序列的几种情况,以及编码码率控制算法决定图片帧是i/p/b帧类型,进而再结合图3中的编码框架选择最优的分割模式,再帧内帧间模式比较,找到当前cu下的最优预测模式。根据pu分析预测的帧内和帧间模式以及帧类型配置,根据编码参数配置和画面场景复杂度,选择一定比例b帧可以参考它前面的帧也可以参考它后的帧(播放顺序),但是它不能作为参考帧供其它帧参考预测模式分析,不加入其它帧编码模式预测的参考帧序列,如图5所示。

由于相关技术中在网络传输出现拥塞的情况下所采用的自适应方案在降低视频编码码率的同时降低了用户视频观看画质和交互体验,通过本实施例的方法,将目标帧序列中的部分b帧确定为指定帧,在目标网络出现拥塞的情况下,丢弃目标帧序列中的指定帧中的部分或全部帧,由于该指定帧的参考帧为目标帧序列中位于指定帧前面的帧以及后面的帧,以及指定帧不作为目标帧序列中其他帧的参考帧,因此,在丢弃目标帧序列中的指定帧中的部分或全部帧后,也不影响目标帧序列中其它帧解码,视频流的传输也可以正常的,从而解决了相关技术中在网络传输出现拥塞的情况下所采用的自适应方案在降低视频编码码率的同时降低了用户视频观看画质和交互体验的技术问题。

可选地,在本实施例中的传输模块66,还用于丢弃目标帧序列中指定帧中的第一组帧,其中,目标帧序列在丢弃第一组帧之后的帧率仍大于最小预定帧率。

需要说明的是,该指定帧中的第一组帧可以是实现设置的预定数量的指定帧,也可以是随机的一个或多个指定帧。以目标帧序列为gop帧序列为例,一个gop帧序列可以是:ibbpbbp…bbbbpbbbbi,其中,b就是本实施例中涉及到的指定帧,是从gop帧序列中的b帧和/或p帧中确定出来的。因此,该指定帧(b帧)中的第一组帧可以是排序靠前的多个b帧组成的(例如前10个b帧),或者是随机从b帧中选择的多个帧。当然,上述方式仅仅是举例说明,还可以是其他方式来确定指定中的第一组帧。

进一步地,本实施例中的传输模块66,还用于在丢弃目标帧序列中指定帧中的第一组帧之后,目标网络还处于拥塞的情况下,继续丢弃目标帧序列中指定帧中的一组或多组帧;其中,目标帧序列在丢弃指定帧的一组或多组帧之后的帧率仍大于最小预定帧率。

也就是说,在丢弃指定帧中的第一组帧之后,该目标网络依然处于拥塞状态,还需要继续丢弃指定帧。例如,以目标帧序列为gop帧序列为例,在当前多个gop帧序列中丢弃了指定帧中的第一组帧,如排序靠前的多个b帧组成的(例如前10个b帧),或者是随机从b帧中选择的多个帧;当前目标网络依然是拥塞状态,则在接下来传输的gop帧序列中在之前的基础上再丢弃一组或多组帧,该过程是一个循环的过程,如果依然检测到目标网络处于拥塞状态,则在之前的基础上再丢弃一组或多组指定帧。但是,不管怎么丢弃指定帧,依然的保证传输的帧率大于最小预定帧率,该最小预定帧率优选为大于或等15帧率,在保证帧率至少大于或等于15帧率,能够保证视频流不卡顿,基本上是连续的,当然该最小预定帧率也可以是其他取值,根据实际情况进行相应的设置。

可选地,本实施例中的传输模块66包括:第一传输单元,用于通过第一传输通道将指定帧传输给目标设备,并通过第二传输通道将目标帧序列中除指定帧之外的其他帧传输给目标设备,其中,第一传输通道与第二传输通道不同。

可选地,在本实施例中的传输模块66进一步可以包括:接收单元,用于接收目标设备发送的指示消息;第二传输单元,用于响应于指示消息通过第一传输通道将指定帧传输给目标设备,并通过第二传输通道将目标帧序列中除指定帧之外的其他帧传输给目标设备,其中,第一传输通道与第二传输通道不同。

通过上述第一传输单元和第二传输单元可知,在本实施例中对于指定帧的丢弃,还可以通过设置传输通道来实现,即将指定帧单独的放在一个通道中,这样在出现网络传输拥塞的情况下,目标设备直接不接收该通道的指定帧即可。

根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,对待传输的目标视频流进行编码,得到目标帧序列;

s2,将目标帧序列中的部分帧确定为指定帧,其中,指定帧的参考帧为目标帧序列中位于指定帧前面的帧以及后面的帧,指定帧不作为目标帧序列中其他帧的参考帧;

s3,将目标帧序列通过目标网络传输给目标设备,其中,在目标网络出现拥塞的情况下,丢弃目标帧序列中的指定帧中的部分或全部帧。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,丢弃目标帧序列中指定帧中的第一组帧,其中,目标帧序列在丢弃第一组帧之后的帧率仍大于最小预定帧率。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,在丢弃目标帧序列中指定帧中的第一组帧之后,目标网络还处于拥塞的情况下,继续丢弃目标帧序列中指定帧中的一组或多组帧;其中,目标帧序列在丢弃指定帧的一组或多组帧之后的帧率仍大于最小预定帧率。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,通过第一传输通道将指定帧传输给目标设备,并通过第二传输通道将目标帧序列中除指定帧之外的其他帧传输给目标设备,其中,第一传输通道与第二传输通道不同。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,接收目标设备发送的指示消息;

s2,响应于指示消息通过第一传输通道将指定帧传输给目标设备,并通过第二传输通道将目标帧序列中除指定帧之外的其他帧传输给目标设备,其中,第一传输通道与第二传输通道不同。

可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:

s1,停止通过第一传输通道将指定帧传输给目标设备;或者,目标设备停止通过第一传输通道接收指定帧。

可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,rom)、随机存取器(randomaccessmemory,ram)、磁盘或光盘等。

根据本发明实施例的又一个方面,还提供了一种用于实施上述网络自适应视频流的传输方法的电子装置,如图7所示,该电子装置包括:处理器702、存储器704、显示器706、用户接口708、传输装置710等。该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。

可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:

s1,对待传输的目标视频流进行编码,得到目标帧序列;

s2,将目标帧序列中的部分帧确定为指定帧,其中,指定帧的参考帧为目标帧序列中位于指定帧前面的帧以及后面的帧,指定帧不作为目标帧序列中其他帧的参考帧;

s3,将目标帧序列通过目标网络传输给目标设备,其中,在目标网络出现拥塞的情况下,丢弃目标帧序列中的指定帧中的部分或全部帧。

可选地,本领域普通技术人员可以理解,图7所示的结构仅为示意,电子装置也可以是智能手机(如android手机、ios手机等)、平板电脑、掌上电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图7其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图7中所示更多或者更少的组件(如网络接口等),或者具有与图7所示不同的配置。

其中,存储器704可用于存储软件程序以及模块,如本发明实施例中的网络自适应视频流的传输方法和装置对应的程序指令/模块,处理器702通过运行存储在存储器704内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述网络自适应视频流的传输方法。存储器704可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器704可进一步包括相对于处理器702远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

上述的传输装置710用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置710包括一个网络适配器(networkinterfacecontroller,nic),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置710为射频(radiofrequency,rf)模块,其用于通过无线方式与互联网进行通讯。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

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