CN115834975A - 一种视频传输方法、装置、设备及介质 - Google Patents
一种视频传输方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115834975A CN115834975A CN202211439485.5A CN202211439485A CN115834975A CN 115834975 A CN115834975 A CN 115834975A CN 202211439485 A CN202211439485 A CN 202211439485A CN 115834975 A CN115834975 A CN 115834975A
- Authority
- CN
- China
- Prior art keywords
- video
- transmission
- network
- video coding
- network quality
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 230000005540 biological transmission Effects 0.000 title claims abstract description 226
- 238000000034 method Methods 0.000 title claims abstract description 83
- 238000003860 storage Methods 0.000 claims description 22
- 238000004422 calculation algorithm Methods 0.000 claims description 20
- 238000004891 communication Methods 0.000 claims description 20
- 238000005259 measurement Methods 0.000 claims description 17
- 238000012545 processing Methods 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 8
- 230000015654 memory Effects 0.000 description 30
- 238000007906 compression Methods 0.000 description 19
- 230000006835 compression Effects 0.000 description 19
- 230000006870 function Effects 0.000 description 16
- 230000008569 process Effects 0.000 description 14
- 239000000523 sample Substances 0.000 description 12
- 238000010586 diagram Methods 0.000 description 11
- 238000001514 detection method Methods 0.000 description 5
- 230000007423 decrease Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000002123 temporal effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013144 data compression Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006837 decompression Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Abstract
本申请涉及视频传输领域,尤其涉及一种视频传输方法、装置、设备及介质。上述方法包括:获取上一传输周期内,通过网络传输第一视频编码时的网络质量;基于网络质量计算发送窗口的尺寸,发送窗口用于确定一个传输周期内每次发送的视频编码的比特数量;在下一传输周期内,基于发送窗口的尺寸传输第二视频编码;其中,第一视频编码为采用第一视频编码参数对视频数据进行编码得到的视频编码,第二视频编码为采用第二视频编码参数对视频数据进行编码得到的视频编码;第一视频编码参数与第二视频编码参数相同或不同。本方法可以合理的使用不同状态下的网络进行视频传输,并最大程度的发挥网络的潜能。
Description
技术领域
本申请涉及视频传输领域,尤其涉及一种视频传输方法、装置、设备及介质。
背景技术
随着互联网和通信技术的发展,视频传输在各个行业得到了广泛的应用,在不同设备上进行视频传输也越来越普遍。然而因为在进行视频传输时,因为种种原因造成的网络拥塞,均会导致视频卡顿、花屏等现象,这种现象严重影响了用户使用体验。
现有技术中,面对视频传输中所产生的拥塞,其处理方式大多着手于视频的码率上;即当网络环境产生拥塞时,通过调整视频的码率调节视频的分辨率,让视频的编码更符合当下的网络环境。然而这种调节方式仅可以被动的去适应拥塞状态下的网络,没有合理的利用拥塞状态下的网络,从而导致对拥塞状态下网络的利用率比较低。
发明内容
本申请提供一种视频传输方法、装置、设备及介质,可以解决现有技术中对拥塞状态下网络利用率较低的问题,能够合理的使用拥塞状态下的网络进行视频传输,最大程度的发挥网络的潜能。
为达到上述目的,本申请采用如下技术方案:
本申请第一方面提供一种视频传输方法,包括:
获取上一传输周期内,通过网络传输第一视频编码时的网络质量;
基于网络质量计算发送窗口的尺寸,所述发送窗口用于确定下一个传输周期内每次发送的视频编码的比特数量;
在下一传输周期内,基于发送窗口的尺寸传输第二视频编码;
其中,第一视频编码为采用第一视频编码参数对视频数据进行编码得到的视频编码,第二视频编码为采用第二视频编码参数对视频数据进行编码得到的视频编码;第一视频编码参数与第二视频编码参数相同或不同。
结合上述第一方面,获取上一传输周期内,通过网络传输第一视频编码时的网络质量,包括:
测量网络的网络质量,得到网络的网络质量测量结果;
获取上一传输周期内第一视频编码的传输性能参数;
基于第一视频编码的传输性能参数修正网络质量测量结果,将修正后的网络质量测量结果作为上一传输周期内通过网络传输第一视频编码时的网络质量。
结合上述第一方面,第一视频编码包括:I帧图像数据、P帧图像数据和B帧图像数据;网络质量测量结果包括:带宽值和端到端时延;
第一视频编码的传输性能参数包括第一传输性能参数以及第二传输性能参数,第一传输性能参数为通过网络传输I帧图像数据的平均峰值速率;第二传输性能参数为通过网络传输P帧和/或B帧图像数据的平均端到端时延;
基于第一视频编码的传输性能参数修正网络质量测量结果,包括:根据第一传输性能参数对带宽值进行修正,以及,根据第二传输性能参数对端到端时延进行修正。
结合上述第一方面,测量网络的网络质量,包括:
使用瓶颈带宽和往返时间BBR算法测量网络的网络质量。
结合上述第一方面,根据第一传输性能参数对带宽值进行修正,包括:
若带宽值小于第一传输性能参数,则基于K值与第一传输性能参数对带宽值进行修正,K为大于0小于0.2的常数。
结合上述第一方面,根据第二传输性能参数对端到端时延进行修正,包括:
若端到端时延大于第二传输性能参数,则基于C值与第二传输性能参数对端到端时延进行修正,C为大于0小于0.2的常数。
结合上述第一方面,方法还包括:
基于上一传输周期的网络质量,确定下一传输周期的第二视频编码参数。
结合上述第一方面,第二视频编码参数包括下述一项或多项:当前周期内是否在编码时启用B帧模式、I帧间距;基于上一传输周期的网络质量,确定下一传输周期的第二视频编码参数,包括:
基于端到端时延确定是否在编码时启用B帧模式,和/或,根据带宽值与第一传输性能参数得到I帧间距;第一传输性能参数为上一传输周期内通过网络传输I帧图像数据的平均峰值速率。
第二方面,本申请提供一种视频传输装置,装置包括:
采集模块,用于获取上一个传输周期内,通过网络传输第一视频编码时的网络质量;
处理模块,用于基于网络质量计算发送窗口的尺寸;
发送模块,用于在下一传输周期内,使用发送窗口的尺寸传输第二视频编码:
其中,第一视频编码为采用第一视频编码参数对视频数据进行编码得到的,第二视频编码为采用第二视频编码参数对视频数据进行编码得到的;第一视频编码参数与第二视频编码参数相同或不同。
第三方面,本申请提供了一种视频采集与传输装置,包括:至少一个视频采集模块和上述第二方面以及第二方面任一中可能的实现方式中所描述的视频传输装置。
第四方面,本申请提供了一种视频传输设备,该设备包括:处理器和通信接口;通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的视频传输方法。
第五方面,本申请提供了一种视频传输系统,包括:至少一个视频采集设备、视频播放设备与第四方面所描述的一种视频传输设备
第六方面,本申请提供了一种计算机可读存储介质,计算机可读存储介质中存储有指令,当指令在终端上运行时,使得终端执行如第一方面和第一方面的任一种可能的实现方式中描述的一种视频传输方法。
第七方面,本申请实施例提供一种包含指令的计算机程序产品,当计算机程序产品在一种视频传输装置上运行时,使得一种视频传输装置执行如第一方面和第一方面的任一种可能的实现方式中所描述的一种视频传输方法。
第八方面,本申请实施例提供一种芯片,芯片包括处理器和通信接口,通信接口和处理器耦合,处理器用于运行计算机程序或指令,以实现如第一方面和第一方面的任一种可能的实现方式中所描述的一种视频传输方法。
具体的,本申请实施例中提供的芯片还包括存储器,用于存储计算机程序或指令。
在本公开中,上述视频传输设备的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本公开类似,属于本公开权利要求及其等同技术的范围之内。
本公开提供的技术方案至少带来以下有益效果:本申请实施例基于网络质量对发送窗口的大小进行调整,对视频编码的传输过程进行调整,使得下一个传输周期内发送的视频编码的比特数量与网络质量更加贴合,可以合理的使用不同状态下的网络进行视频传输,并最大程度的发挥网络的潜能。
附图说明
图1为本申请实施例提供的一种视频传输场景示意图;
图2为本申请实施例提供的一种视频传输方法的流程图;
图3为本申请实施例提供的BBR算法的状态机示意图;
图4为本申请实施例提供的另一种视频传输方法的流程图;
图5为本申请实施例提供的一种视频传输装置的结构示意图;
图6为本申请实施例提供的另一种视频传输装置的结构示意图;
图7为本申请实施例提供的一种芯片示意图;
图8为本申请实施例提供的一种网络视频直播系统的示意图。
具体实施方式
下面结合附图对本申请实施例提供的一种视频传输方法、装置、设备及介质进行详细地描述。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请的说明书以及附图中的术语“第一”和“第二”等是用于区别不同的对象,或者用于区别对同一对象的不同处理,而不是用于描述对象的特定顺序。
此外,本申请的描述中所提到的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括其他没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
图1为可适用于本申请一实施例的视频传输系统的示意图,该视频传输系统可以包括一个或多个发送端100(图中仅示出一个)和接收端101(图中仅示出一个);发送端100与接收端101通过广域网或局域网进行连接;可以理解的是,发送端100与接收端101也可以通过,诸如以太网、RAN、无线局域网(wireless local area networks,WLAN)等进行数据的传递。
一种示例性的发送端100结构如图中所示,包括:采集设备1001、编码设备1002和发送设备1003;一种示例性的接收端101结构如图中所示,包括:接收设备1011、解码设备1012和播放设备1013;
可以理解的时,图1中的各组成(例如发送端100和接收端101等)可以由一个设备实现,也可以由多个设备共同实现,还可以是一个设备内的一个功能模块,本申请实施例对此不作具体限定。可以理解的是,上述功能既可以是硬件设备中的网络元件,也可以是在专用硬件上运行的软件功能,或者是平台(例如,云平台)上实例化的虚拟化功能。
需要说明的是,发送端100中对于采集设备1001、编码设备1002和发生设备的划分,以及接收端101中对于接收设备1011、解码设备1012和播放设备1013的划分是根据其功能进行的;例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个设备中,上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
在实际应用中,上述发送端100的采集设备1001可以与编码设备1002集成在一个设备中,编码设备1002也可以与发送设备1003集成在一个设备中,采集设备1001、编码设备1002与发送设备1003三者也可以集成在一个设备中;同样的上述接收端101的接收设备1011可以与解码设备1012集成在一个设备中,解码设备1012也可以与播放设备1013集成在一个设备中,接收设备1011、解码设备1012与播放设备1013三者也可以集成在一个设备中。基于此,上述对发送端100与接收端101的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。同样,可以理解的是为满足不同的使用需求,在一个发送端100中可以有多个采集设备1001、多个编码设备1002与多个发送设备1003,以及在一个接收端101中同样也可以有多个播放设备1013、多个解码设备1012、多个接收设备1011。上述播放设备1013可以是,液晶显示器(liquid crystal display,LCD),发光二级管(lightemitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等,上述采集设备1001可以是,云探头、摄像头、采集卡、视频采集器、摄像机、CCD(Charge Coupled Device)传感器、CMOS(Complementary Metal-Oxide-Semiconductor)传感器等。
需要说明的是,图1仅为本申请可以使用的场景的一种示意图,并不构成对本申请提供的技术方案的适用场景的限定。
以下,对本申请实施例中所涉及的一些相关术语和技术进行解释说明。
1)、网络拥塞
网络拥塞是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况。当网络发生拥塞时,一般会出现数据丢失,时延增加,吞吐量下降,严重时甚至会导致“拥塞崩溃”(congestion collapse,cc)。通常情况下,当网络中负载过度增加致使网络性能下降时,就会发生网络拥塞。
下面列举一些网络拥塞发生的情况和原因:
例如,在事先没有任何协商和请求许可机制的资源共享网络中,几个IP分组同时到达路由器,并期望经同一个输出端口转发的可能性是存在的,显然,不是所有分组可以同时接受处理,必须有一个服务顺序,中间节点上的缓存为等候服务的分组提供一定保护。然而,如果此状况具有一定的持续性,当缓存空间被耗尽时,路由器只有丢弃分组。在这种持续过载的状态下,网络性能会急剧下降。
例如,在每个输出端口有一定的存储空间,若一个输出端口被几个输入数据流共同使用,输入流的数据包就会在该存储空间内排队等待输出。当端口转发数据的速率低于数据包的到达速率时,会造成存储空间被占满的情形,后到达的数据包将被丢弃。突发数据流的此种现象更多。虽然从某种程度上来讲,存储空间的增加能够缓解输出端口的压力。但是存储空间无限制的增加,会导致数据包完成转发时,它们早已超时,源端认为这些数据包在传输过程中被丢弃而要求重发,不仅降低网络效率,而且使得网络拥塞情况更加严重。另外在实际应用中,存储容量不可能无限制的增加,不符合实际意义。
通过实践证明低速链路难以应对高速数据流的输入,从而发生网络拥塞。依据香农理论,信源的发送速率必须小于或等于信道容量。因此,当源端带宽远大于链路带宽形成带宽瓶颈时,导致数据包在网络节点排队等待,造成网络拥塞。路由器中的CPU主要执行缓存区排队、更新路由表、进行路由选择等功能,如果其工作效率不能满足高速链路的需求,就会造成网络拥塞。
一种视频传输时网络拥塞的多发场景为,在多路视频传输的场景,即一个发送端100具有多个采集设备1001,多个采集设备1001通过一个发送设备1003发送视频数据;多路视频因为自身编码的随机性会导致I帧碰撞,即在某个时间段多个采集设备采集到的视频数据,经过编码后编码出大量的I帧,同时因为I帧的压缩比最低,相比于没有产生I帧碰撞时,发送设备1003发送的数据量急剧增加;从而向网络链路中发送了过多的数据,造成网络拥塞。
2)、视频编码
视频编码就是指通过压缩技术,将原始视频格式的文件转换成另一种视频格式文件的方式。视频流传输中最为重要的编解码标准有国际电联(InternationalTelecommunication Union,ITU)制定的标准:H.261、H.263、H.264、H.265(HEVC),和国际标准化组织(International Organization for Standardization,ISO)的运动图像专家组(Moving Picture Expert Group,MPEG)的MPEG系列标准:MPEG-2、MPEG-4、MPEG-4AVC、以及中国提出的音视频编码标准(Audio Video coding Standard,AVS)标准;其中以H.264标准应用最为广泛,H.264是ITU与ISO两个组织联合组建的联合视频组(Joint Video Team,JVT)共同组建并发布的,并且他是MPEG-4标准的第10部分。因此,不论是,MPEG-4AVC、MPEG-4Part10,还是ISO/IEC14496-10,都是指H.264。
以H.264等协议为代表的主流视频编码协议,通过对视频图像进行压缩编码达到降低视频数据大小、方便存储和传输的目的。视频图像进行压缩编码后,视频图像帧的类型非为三类:I帧、P帧和B帧。
I帧:帧内编码帧(intra picture,I),又称全帧压缩编码帧,同时也称关键帧或帧内帧,仅由帧内预测的宏块组成。I帧通常是每个GOP(MPEG所使用的一种视频压缩技术)的第一个帧,经过适度地压缩,作为随机访问的参考点,可以当成静态图像。
P帧:前向预测编码帧(predictive-frame,P),通常将图像序列中前面已经编码帧的时间冗余信息充分去除来压缩传输数据量的编码图像,也称为预测帧。
B帧:双向预测内插编码帧(bi-directional interpolated prediction frame,B),既考虑源图像序列前面的已编码帧,又顾及源图像序列后面的已编码帧之间的时间冗余信息压缩传输数据量的编码图像,也称为双向预测帧。
基于以上对I帧、P帧和B帧的定义,以下从解码的角度来理解I帧、P帧和B帧:
I帧:自身可以通过视频解压算法解码成一张单独的完整视频画面,其不需要其他帧的辅助就可以解码,所以I帧仅去掉的是视频帧在空间维度上的冗余信息。
P帧:需要参考前面的I帧或者P帧来解码成一张完整的视频画面。P帧也称为预测帧,除对帧内空域进行预测以外,它还可以通过时域预测来进行压缩
B帧:需要参考前一个I帧或者P帧及其后面的一个P帧来解码成一张完整的视频画面,所以P帧与B帧去掉的是视频帧在时间维度上的冗余信息。
I帧的解码无需其他帧辅助。P帧需要I帧或其之前的P帧辅助才能正确解码。B帧需要B帧前后的I帧或P帧辅助才能正确解码。
通常情况下,相较原始图像,I帧、P帧和B帧可实现7倍、20倍、50倍左右的压缩比。因为压缩比不同,视频数据在网络上传输是会形成巨大波动。比如传输单路720P(1280×720)视频图像,通常需要2Mbit/s-4Mbit/s的平均带宽。然而,传输I帧图像时瞬时带宽可能达到28Mbit/s的峰值速率。P/B帧图像,表示P帧图像或B帧图像。
一种视频传输时网络拥塞的多发场景为,多路视频并发的场景;即一个发送端100具有多个采集设备1001,多个采集设备1001通过一个发送设备1003发送视频数据;在多路视频并发场景时,多路视频因为自身编码的随机性,会存在来自多路视频的多个I帧在同一时刻传输(称之为I帧碰撞)就会导致网络拥塞;I帧拥塞会造成视频卡顿、花屏等现象,严重时甚至会存在视频丢失、视频画面长时间静止等,这种现象严重的影响了用户的使用体验。
3)、BBR算法
瓶颈带宽往返传播时间(Bottleneck Bandwidth and Round-trip propagationtime,BBR)算法也可以称为TCP BBR算法;BBR是一种基于带宽和延迟反馈的拥塞控制算法。是由Google设计,并于2016年发布的拥塞算法,以往大部分拥塞算法是基于丢包来作为降低传输速率的信号,而BBR基于模型主动探测,目前已经演化到第二版,是一个典型的封闭反馈系统,发送多少报文和用什么速度发送这些报文都是在每次反馈中不断调节。
BBR算法是一种主动式机制,可以理解为BBR算法不再基于丢包判断并且也不再使用线性增乘性减策略来维护拥塞窗口,而是分别采样估计极大带宽和极小时延,并用二者乘积作为发送窗口,并且BBR算法引入了Pacing Rate限制数据发送速率,配合拥塞窗口(congestion window,CWnd)使用来降低冲击。
其中BBR算法包括下述四个阶段:
Start up慢启动阶段、Drain排空阶段、Probe_BW带宽探测阶段和Probe_RTT时延探测阶段。
Start up慢启动阶段
BBR的慢启动阶段是进行探测式加速,BBR的慢启动使用2/ln2的增益加速,过程中即使发生丢包也不会引起速率的降低,而是依据返回的确认数据包来判断带宽增长,直到带宽不再增长时就停止慢启动而进入下一个阶段,需要注意的是在寻找最大带宽的过程中产生了多余的二倍带宽时延积(Bandwidth Delay Product,BDP)的数据量。
Drain排空阶段
排空阶段是为了把慢启动结束时多余的2BDP的数据量清空,此阶段发送速率开始下降,也就是单位时间发送的数据包数量在下降,直到未确认的数据包数量小于BDP时认为已经排空,也可以认为是往返时延(Round-Trip Time,RTT)不再下降为止,排空阶段结束。
Probe_BW带宽探测阶段
经过慢启动和排空之后,目前发送方进入稳定状态进行数据的发送,由于网络带宽的变化要比RTT更为频繁,因此Probe_BW阶段也是BBR的主要阶段,在探测期中增加发包速率如果数据包的确认字符(Acknowledge character,ACK)并没有受影响那么就继续增加,探测到带宽降低时也进行发包速率下降。
Probe_RTT时延探测阶段
前面三个过程在运行时都可能进入Probe_RTT时延探测阶段,当某个设定时间内都没有更新最小时延状态下开始降低数据包发送量,试图探测到最小的往返时延MinRTT,探测完成之后再根据最新数据来确定进入慢启动还是Probe_BW阶段。
实施例1
随着互联网和通信技术的发展,视频传输在各个行业得到了广泛的应用,因此越来越多的视频需要进行长距离的传输;在视频进行传输时,现有的视频传输方案主要分为基于传输控制协议(Transmission ControlProtocol,TCP)的视频传输和基于用户数据报协议(User Datagram Protocol,UDP)的视频传输两类;而由于TCP协议采用端到端的通信方式,按序传输视频数据,虽然保证视频传输的可靠性,但存在较大的视频传输时延,在存在网络丢包的情况下会使传输带宽急剧下降。目前大多数的视频传输均是使用运营商提供的有限带宽下的网络进行的。然而视频传输时,由于运营商提供的网络存在波动,以及传输多路视频时产生的I帧碰撞,或用户的其他使用行为占用很多带宽时,均会导致网络拥塞的产生。
现有技术在面对视频传输时的拥塞,其关注点大多在视频的码率方式上,即当网络环境产生拥塞时,通过调整视频的码率,使得视频的编码方式更加贴合当前的网络环境,让视频的编码更符合当下的网络环境,这种调节方式过于僵硬;仅可以通过降低码率、调节视频的分辨率,去适应拥塞状态下的网络,并不能使拥塞状态下的网络发挥最大的潜能,也没有合理的利用拥塞状态下的网络。同时,现有技术中通过码率去调节视频质量,通过降低视频的分辨率去降低所传输的数据大小,手段单一;这种方式仅从降低视频质量的角度去调节传输的数据大小,并没有考虑到视频编码协议的底层逻辑,没有发挥编码协议的最大程度的利用率。
综上,现有技术中视频传输方案,其手段单一,没有合理的发挥拥塞状态下的网络潜能,对拥塞状态下的网络利用率比较低;也没有发挥编码协议的最大潜能。
为解决上述技术问题,本申请实施例提供一种视频传输方法。本申请通过获取上一传输周期内,通过网络传输第一视频编码时的网络质量并基于网络质量计算发送窗口的尺寸,可以合理的评估当前网络所能传输视频数据的最大性能;当网络拥塞发生时,通过改变发送窗口的尺寸可以最大程度的利用拥塞网络的性能,找到拥塞网络的性能最大值,并将其用来传输视频数据,可以最大程度的发挥拥塞网络的潜能。
如图2所示,本申请实施例提供一种视频传输方法,该方法包括:
S100.获取上一传输周期内,通过网络传输第一视频编码时的网络质量;
S200.基于网络质量计算发送窗口的尺寸;
S300.在下一传输周期内,基于发送窗口的尺寸传输第二视频编码;
其中,第一视频编码为采用第一视频编码参数对视频数据进行编码得到的视频编码,第二视频编码为采用第二视频编码参数对视频数据进行编码得到的视频编码;第一视频编码参数与第二视频编码参数相同或不同。
例如,当前时刻为Tk时刻,则上一个传输周期为Tk-1时刻至Tk时刻,下一个周期为Tk时刻至TK+1时刻;在实际应用中,一个周期可以为1s、0.5s或2s可以根据实际使用情况进行合理配置。可以理解的是,一种传输时的特殊场景为,Tk=0,即不存在上一个传输周期,在实际应用中,这种特殊场景可以根据预先配置好的发送窗口尺寸传输两个或者三个周期后,使用上述的一种视频传输方法。
可以理解的是,发送窗口用于确定一个传输周期内每次发送的视频编码的比特数量;在一个传输周期内,发送端会进行多次数据发送,发送多次数据,通过发送窗口可以控制发送端每次发送数据量的多少。例如,在如图1所示的场景下。编码设备1002生成了10MB的视频编码数据,一个传输周期为1s,发送设备1003可以在一个传输周期内,间隔0.1s使用大小为1MB的发送窗口发送上述10MB的视频编码数据;也可以间隔0.1s使用大小为0.5MB的发送窗口发送上述10MB的视频编码数据中的5MB数据,剩余的5MB数据可以存入缓存器件中,在下个周期发送。
本申请实施例通过网络质量对发送窗口的大小进行调整,对视频编码的传输过程进行调整,使得下一个传输周期内发送的视频编码的比特bit与网络质量更加贴合;可以避免因为自身发送了过多的数据从而破坏网络环境,也可以避免在网络拥塞的时候不合理的发送过多的数据,加重了网络的拥塞程度。
本申请从视频编码数据发送的维度对视频传输进行调整,相比于现有技术中通过调节视频质量从而对视频编码数据进行调整,本申请实施例的调整方法更加细微,可以更加合理的利用网络资源。同时还可以避免因为发送了过多的视频编码而导致的网络拥塞,以及在网络拥塞的状态下发送合适大小的视频编码数据,不去加重网络的拥塞程度。
作为一种可能的实施方式,S1.获取上一传输周期内,通过网络传输第一视频编码时的网络质量,包括:
S1001.测量网络的网络质量,得到网络的网络质量测量结果;
S1002.获取上一传输周期内第一视频编码的传输性能参数;
S1003.基于第一视频编码的传输性能参数修正网络质量测量结果,将修正后的网络质量测量结果作为上一传输周期内通过网络传输第一视频编码时的网络质量。
本申请实施例通过对网络质量的测量,并将网络质量基于视频编码传输的性能进行修正,可以合理的找出当前网络环境所能传输视频编码的最大性能。
作为一种可能的实施方式,第一视频编码包括:I帧图像数据、P帧图像数据和B帧图像数据;网络质量测量结果包括:带宽值和端到端时延;
第一视频编码的传输性能参数包括第一传输性能参数以及第二传输性能参数,第一传输性能参数为通过网络传输I帧图像数据的平均峰值速率;第二传输性能参数为通过网络传输P帧和/或B帧图像数据的平均端到端时延;
可以理解的是,在S1003.基于第一视频编码的传输性能参数修正网络质量测量结果,包括:根据第一传输性能参数对带宽值进行修正,以及,根据第二传输性能参数对端到端时延进行修正。
本申请实施例通过网络的带宽值以及端到端时延对当前网络状态下所能传输的数据量进行合理的估计;并通过第一性能值与第二性能值分别对带宽值与端到端时延进行修正,进一步合理的评估当前网络所能传输视频数据的最大性能;当发生网络拥塞时,通过修正后的带宽值与端到端时延改变发送窗口的尺寸,并基于发送窗口的尺寸发送视频数据;可以最大程度的利用拥塞网络的性能,找到拥塞网络的性能最大值,并用来传输视频数据,可以最大程度的发挥拥塞网络的潜能。
同时对于视频编码数据来说,因为I帧图像的压缩比最低,I帧图像会比P帧和/或B帧图像数据大很多,因此在传输I帧数据时对网络带宽的使用更多;因此本申请实施例去采集传输I帧数据的平均峰值速率,去考量在传输视频编码数据时对网络带宽使用情况。同样,因为I帧数据比较大,传输I帧数据的时延也会大于传输P帧和/或B帧图像的时延,因此本申请实施例去采集传输P帧和/或B帧图像数据的平均端到端时延,去考量在传输视频编码时的端到端时延,即网络传输视频编码时端到端时延这一指标的状态。
本方法主要通过改变视频数据的发送大小,去匹配拥塞状态下的网络;而现有技术中大多是通过改变视频数据产生的大小去适应拥塞状态下的网络。相比于现有技术本方法更加聚焦于视频数据的发送过程,相比于现有技术中粗糙的调整视频大小,本方法的调节更加细微,更加精确。
作为本申请实施例的一种可能的实施方式,测量网络的网络质量,包括:
使用BBR算法测量网络的网络质量。
具体的,由于网路环境的实际情况,最大带宽和最小时延不能同时得到,因此需要分别探测最大带宽和最小往返时延(又称端到端时延)的过程。如图3所示,图3示出的是BBR算法的状态机示意图,状态机分为Start up、Drain、Probe_BW、Probe_RTT,共4个阶段。Start up阶段为慢启动阶段,以2/ln2的增益系数持续更新发包速率,带宽连续三次没有增长就可以判定达到最大带宽而进入Drain状态。进入Drain状态时队列可能存在拥堵,因此需要把Start up状态中产生的队列排空,排空的速率是ln2/2;如果处于传输中的数据量inflight<BDP说明此时网络由BBR造成的拥塞已经全部排空,如果inflght>BDP说明此时网络还有拥塞,不能进入下一个状态,其中inflight表示该网络中存在的数据量。拥塞排空之后会进入探测带宽阶段,探测最大带宽的方法是在10个RTT的时间内中观测到的最大带宽,以此数据作为最大带宽。如果10s没有得到最小RTT,超时之后需要继续探测最小RTT。在探测最小RTT需要尽量避免网络拥堵,降低拥塞窗口,发送比较少的报文。具体的使用BBR算法的四个状态获取当前网络链路的带宽值与端到端时延为现有技术,在此不再赘述。
使用BBR算法可以合理的得到当前网络链路的最大带宽与最小时延,基于得到的最大带宽与最小时延指导视频数据发送所使用的窗口尺寸,可以最大程度的利用当前网络环境下的网络资源;同时,其得到的带宽与最小时延,是在不导致网络环境产生拥塞下的最大带宽与最小时延;并且基于此去指导视频数据的发送,可以快速的抢占当前网络链路中空闲的网络资源,并且还不会导致网络拥塞的发生;同时,基于得到的最大带宽与最小时延指导视频数据发送所使用的窗口尺寸,可以减小数据在网络中“排队”的时间,即不让发送的数据造成网络的拥堵,或加剧网络拥堵的程度。
并且,当网络拥塞发生时,可以快速的通过最大带宽与最小时延评估当前发生拥塞的网络状态,并基于此指导视频数据的发送,既可以避免发送过多的视频数据,从而加重网络的拥堵程度,也可以以拥堵状态下网络的最大性能发送视频数据,从而发挥拥堵状态下的网络的最大性能。可以降低因为网络拥堵所导致的花屏、卡顿等影响观看者观看体验的影响时间,使网络链路尽快的走出拥堵状态。
作为一种可能的实施方式,根据第一传输性能参数对带宽值进行修正,包括:若带宽值小于第一传输性能参数,则基于K值与第一传输性能参数对带宽值进行修正,K为大于0小于0.2的常数。根据第二传输性能参数对端到端延时进行修正,包括:若端到端延时大于第二传输性能参数,则基于C值与第二传输性能参数对端到端延时进行修正,C为大于0小于0.2的常数。
具体的,使用BBR算法正交测量得到的当前网络链路的带宽值和端到端时延分别为bw和rtt。在BBR正交测量同一时间周期内,(假设当前时刻Tk,则选取时间段[Tk,Tk-1]),该段时间内发送I帧图像的平均峰值速率为v和发送P帧或B帧图像的平均端到端时延为t。修正后的带宽值为BW,修正后的端到端时延为RTT;
则
其中,K为第一预设值,0≤K≤0.2,典型值K=0.1。
其中,C为第二预设值,0≤C≤0.2.典型值C=0.1。
可以理解的是,本申请实施例中的第一预设值与第二预设值是可以根据实际应用情况进行合理调整的,在实际应用中,第一预设值与第二预设值可以根据使用者的硬件情况以及使用者其他应用对网络的占用情况对第一预设值与第二预设值进行调整。
本申请实施例使用发送I帧图像的平均峰值速率与发送P/B帧图像的平均端到端时延对BBR算法采集到的带宽值与时延进行修正,可以使得到的带宽值与时延更加适合视频传输的环境。在网络环境状态良好时,即V≤bw时,不对带宽值进行修正,使得视频数据可以以最大的带宽进行传输。
在网络环境变差时,即因为bw的下降导致V>bw时,使用I帧发送速率对带宽进行修正,因为I帧相比于其他帧(P帧/B帧)在传输时,需要的带宽更大;同时,I帧的传输相比于其他帧也更重要,因为其他帧的解码都需要I帧的辅助,都是在I帧的基础上进行的;因此更加需要保证I帧传输的传输质量,因此通过I帧的发送速率对带宽值进行修正,并基于修正后的带宽值指导视频数据的发送,可以在不加剧网络拥堵的情况下更加合理的利用当前拥堵情况下的网络,挖掘当前状态下网络的最大潜能。而在多路视频并发场景下,发生I帧碰撞,即因为V的增加导致V>bw时,为了避免本设备发出超量的视频数据,而破坏当前网络环境,导致网络拥塞,使得自身长时间的处于拥塞状态下的网络环境中;本申请通过修正带宽值,从而修改视频数据发送窗口的大小,使得其发送的数据在不破坏网络环境的情况下,最大程度的利用网络潜能;同时还留有阈值,防止处于同一网络环境下的其他设备造成的网络拥堵对自身设备发送数据的影响。在多路视频并发场景下,可以减小甚至消除因为I帧碰撞所导致的画面卡顿或者花屏现象。
作为一种可能的实施方式,本申请实施例中,发送窗口的尺寸为cwnd。
cwnd通过下述公式计算:
cwnd=2*BDP;
其中,BDP=RTT*BW。
本申请实施例通过修正后的带宽值与修正后的端到端时延对发送窗口的尺寸进行调整,从而对发送的视频数据量进行调节;当网络状态良好时,可以在不造成拥堵的情况下,以最大的带宽传输视频数据;当网络拥塞时,可以在不加剧拥塞情况的前提下,以当前网络环境所能使用的最大带宽传输视频数据;同时基于上述发送窗口的尺寸进行视频数据发送,还可以合理的使用当前的网络状况;相比于通过调节码率去调节视频发送数据,使用发送窗口去调整视频数据,这种调整方式更加精细,更加精确,通过码率去调节视频发送的数据量(例如从1080p调整至720p),其一次调整的视频数据量过于庞大,不能精确的针对当前网络状况对通过网络发送的数据量进行调节。同时,通过码率的调节,是在视频压缩编码的环节对需要发送的视频数据进行调节,即从视频数据生产的过程中对视频数据进行调节的;而本实施例中的方案,通过调整发送窗口的尺寸进行调节,是通过视频数据发送过程中对发送的数据量进行调节,即在视频发送的过程中对视频数据进行调节,这种调节方式更加灵活,并且可以更加的贴合当前网络链路的网络状况,可以最大程度的利用当前网络链路的最大的传输能力。
实施例2
如图4所示,在上述实施例1的基础上,作为一种可能的实施方式,上述方法还包括:
S400.基于上一传输周期的网络质量,确定下一传输周期的第二视频编码参数。
第二视频编码参数包括下述一项或多项:当前周期内是否在编码时启用B帧模式、I帧间距;网络质量包括:带宽值和端到端延时,S400.基于上一传输周期的网络质量,确定下一传输周期的第二视频编码参数,包括:
基于端到端延时确定是否在编码时启用B帧模式,和/或,根据带宽值与第一传输性能参数得到I帧间距;第一传输性能参数为上一传输周期内通过网络传输I帧图像数据的平均峰值速率。
具体的,可以通过下述公式计算I帧间距KInt
KInt=1/{25*[1+round(D*BW/v)]}
其中,KInt∈[0.04,0.005],单位为秒。
其中,D为常量,典型值取0.2;运算符“round()”代表四舍五入。
其中,I帧间距为视频编码时的一个编码参数,其表征着视频在空间域上的压缩程度,通过调节I帧间距,可以调节视频编码后的大小,不同于通过码率的调节方式;使用I帧间距调节视频编码,其调整程度更加精细;并且其根据编码的底层逻辑对视频质量进行调节,相比于直接调节视频的码率,其对视频质量的影响更小,更细微,更不易察觉,可以使得接收视频数据的用户,观看视频数据时拥有更好的用户体验。
具体的,当RTT小于100ms时,启用B帧模式,否则禁用B帧模式。同时无论RTT是否小于100ms,均禁止B帧做参考帧。
B帧模式,即一段视频编码后的视频帧包括:I帧、P帧与B帧;B帧因为其压缩比最高,因此在对其进行解码时,需要消耗的计算资源也比较大,对于一些解码能力比较差的接收端,若长时间接收到含有B帧的视频数据,会造成这些接收端的解码能力下降,从而造成视频的卡顿;因此本申请实施例通过调整是否开启B帧模式,同时禁止B帧作为参考帧,进而对视频质量进行调节;这种从编码协议底层对视频质量进行调节,这种调节方式更加细腻,并不会一次性的改变很多调整方式更加细腻,对视频质量的调节更加细腻。
本申请实施例可以根据上述方法示例对视频传输装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本申请实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
如图5所示,为本申请实施例提供的一种视频传输装置的结构示意图,该装置包括:处理模块201与通信模块202。
处理模块201用于,获取当前网络的带宽值和端到端时延;
计算预设时间段内的第一性能值以及第二性能值;
根据第一性能值对带宽值进行修正,以及,根据第二性能值对端到端时延进行修正;
基于修正后的带宽值与修正后的端到端时延,计算发送窗口的尺寸
通信模块202用于,基于发送窗口尺寸发送视频数据。
其中,第一性能值为发送I帧图像的平均峰值速率;第二性能值为发送P/B帧图像的平均端到端时延。
可以理解的是,上述装置还可以包括编码模块:
所述处理模块201用于,基于修正后的带宽值得到I帧间距;
所述编码模块203用于,基于I帧间距对视频数据进行编码;
所述处理模块201用于,基于修正后的端到端时延决定所述编码模块是否启用B帧模式。
在通过硬件实现时,本申请实施例中的通信模块202可以集成在通信接口上,处理模块201可以集成在处理器上。具体实现方式如图6所示。
图6示出了上述实施例中所涉及的视频传输装置的又一种可能的结构示意图。如图所示,该视频传输装置包括:处理器302和通信接口303。处理器302用于对视频传输装置的动作进行控制管理,例如,执行上述处理模块201执行的步骤,和/或用于执行本文所描述的技术的其它过程。通信接口303用于支持视频传输装置与其他网络实体的通信;例如,执行上述通信模块202执行的步骤。视频传输装置还可以包括存储器301和总线304,存储器301用于存储视频传输装置的程序代码和数据。
视频图像传感器,如光学摄像头,把物理世界图像数字化后递送给视频图像压缩编码器。视频图像压缩编码器通过特定的视频图像压缩编码方法,如H.264协议对原始的视频数据进行数据压缩,降低视频数据对网络带宽的要求。网络质量判决与传输器把压缩编码后的视频图像通过网络递送给视频播放终端进行播放。
其中,存储器301可以是视频传输装置中的存储器等,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
上述处理器302可以是实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。该处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
总线304可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线304可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
图7是本申请实施例提供的芯片170的结构示意图。芯片170包括一个或两个以上(包括两个)处理器1710和通信接口1730。
可选的,该芯片170还包括存储器1740,存储器1740可以包括只读存储器和随机存取存储器,并向处理器1710提供操作指令和数据。存储器1740的一部分还可以包括非易失性随机存取存储器(non-volatile random access memory,NVRAM)。
在一些实施方式中,存储器1740存储了如下的元素,执行模块或者数据结构,或者他们的子集,或者他们的扩展集。
在本申请实施例中,通过调用存储器1740存储的操作指令(该操作指令可存储在操作系统中),执行相应的操作。
其中,上述处理器1710可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,单元和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,单元和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
存储器1740可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
总线1720可以是扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。总线1720可以分为地址总线、数据总线、控制总线等。为便于表示,图7中仅用一条线表示,但并不表示仅有一根总线或一种类型的总线。
图8为本申请实施例提供的一种网络视频直播系统的示意图;包括:视频图像传感器、视频图像压缩编码器和网络质量判决与传输器、视频播放终端。
视频图像传感器701,可以为:光学摄像头等,把物理世界图像数字化后递送给视频图像压缩编码器。
视频图像压缩编码器702通过特定的视频图像压缩编码方法,如H.264协议对原始的视频数据进行数据压缩,降低视频数据对网络带宽的要求。网络质量判决与传输器把压缩编码后的视频图像通过网络递送给视频播放终端进行播放。
网络质量判决与传输器703在传送视频数据的同时,通过上述视频传输方法不断的监测网络质量,并基于网络质量调整发送给视频播放终端的数据量;网络质量判决与传输器703还可以把网络质量反馈给视频图像压缩编码器,指导视频图像压缩编码器调整压缩编码的相关参数,使其产生适合当前网络传输的视频数据。
视频播放终端704通过有线网或无线网接收网络质量判决与传输器传输的视频数据,并基于内置的解码器,对编码后的视频数据进行解码;并将解码后的数据通过显示器,进行显示。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运行时,使得该计算机执行上述方法实施例中的视频传输方法。
本申请实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当该指令在计算机上运行时,使得该计算机执行上述方法实施例所示的方法流程中的视频传输方法。
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(Random Access Memory,RAM)、只读存储器(Read-Only Memory,ROM)、可擦式可编程只读存储器(Erasable Programmable Read Only Memory,EPROM)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(Compact Disc Read-Only Memory,CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合、或者本领域熟知的任何其它形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(Application Specific Integrated Circuit,ASIC)中。在本申请实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
本发明的实施例提供一种包含指令的计算机程序产品,当指令在计算机上运行时,使得计算机执行如图2、图4中所述的视频传输方法。
由于本发明的实施例中的视频传输装置、计算机可读存储介质、计算机程序产品可以应用于上述方法,因此,其所能获得的技术效果也可参考上述方法实施例,本发明实施例在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
以上,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。
Claims (13)
1.一种视频传输方法,其特征在于,包括:
获取上一传输周期内,通过网络传输第一视频编码时的网络质量;
基于所述网络质量计算发送窗口的尺寸,所述发送窗口用于确定下一个传输周期内每次发送的视频编码的比特数量;
在下一传输周期内,基于所述发送窗口的尺寸传输第二视频编码;
其中,所述第一视频编码为采用第一视频编码参数对视频数据进行编码得到的视频编码,所述第二视频编码为采用第二视频编码参数对所述视频数据进行编码得到的视频编码;所述第一视频编码参数与第二视频编码参数相同或不同。
2.根据权利要求1所述的方法,其特征在于,所述获取上一传输周期内,通过网络传输第一视频编码时的网络质量,包括:
测量所述网络的网络质量,得到所述网络的网络质量测量结果;
获取所述上一传输周期内所述第一视频编码的传输性能参数;
基于所述第一视频编码的传输性能参数修正所述网络质量测量结果,将修正后的网络质量测量结果作为所述上一传输周期内通过网络传输第一视频编码时的网络质量。
3.根据权利要求2所述的方法,其特征在于,
所述第一视频编码包括:I帧图像数据、P帧图像数据和B帧图像数据;所述网络质量测量结果包括:带宽值和端到端时延;
所述第一视频编码的传输性能参数包括第一传输性能参数以及第二传输性能参数,所述第一传输性能参数为通过所述网络传输所述I帧图像数据的平均峰值速率;所述第二传输性能参数为通过所述网络传输P帧和/或B帧图像数据的平均端到端时延;
所述基于所述第一视频编码的传输性能参数修正所述网络质量测量结果,包括:根据所述第一传输性能参数对所述带宽值进行修正,以及,根据所述第二传输性能参数对所述端到端时延进行修正。
4.根据权利要求2所述的方法,其特征在于,所述测量所述网络的网络质量,包括:
使用瓶颈带宽和往返时间BBR算法测量所述网络的网络质量。
5.根据权利要求3所述的方法,其特征在于,所述根据所述第一传输性能参数对所述带宽值进行修正,包括:
若所述带宽值小于所述第一传输性能参数,则基于K值与所述第一传输性能参数对所述带宽值进行修正,K为大于0小于0.2的常数。
6.根据权利要求3所述的方法,其特征在于,所述根据所述第二传输性能参数对所述端到端时延进行修正,包括:
若所述端到端时延大于所述第二传输性能参数,则基于C值与所述第二传输性能参数对所述端到端时延进行修正,C为大于0小于0.2的常数。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
基于所述上一传输周期的所述网络质量,确定所述下一传输周期的所述第二视频编码参数。
8.根据权利要求7所述的方法,其特征在于,所述第二视频编码参数包括下述一项或多项:当前周期内是否在编码时启用B帧模式、I帧间距;所述网络质量包括:带宽值和端到端时延;所述第一视频编码包括:I帧图像数据、P帧图像数据和B帧图像数据
所述基于所述上一传输周期的所述网络质量,确定所述下一传输周期的所述第二视频编码参数,包括:
基于所述端到端时延确定是否在编码时启用B帧模式,和/或,根据所述带宽值与第一传输性能参数得到I帧间距;
所述第一传输性能参数为所述上一传输周期内通过所述网络传输所述I帧图像数据的平均峰值速率。
9.一种视频传输装置,其特征在于,所述装置包括:
采集模块,用于获取上一个传输周期内,通过网络传输第一视频编码时的网络质量;
处理模块,用于基于所述网络质量计算发送窗口的尺寸;
发送模块,用于在下一传输周期内,使用所述发送窗口的尺寸传输第二视频编码:
其中,所述第一视频编码为采用第一视频编码参数对视频数据进行编码得到的,所述第二视频编码为采用第二视频编码参数对视频数据进行编码得到的;所述第一视频编码参数与第二视频编码参数相同或不同。
10.一种视频采集与传输装置,其特征在于,包括至少一个视频采集模块和权利要求9所述的一种视频传输装置。
11.一种视频传输设备,其特征在于,包括:处理器和通信接口;所述通信接口和所述处理器耦合,所述处理器用于运行计算机程序或指令,以实现如权利要求1-8任一项中所述的视频传输方法。
12.一种视频传输系统,其特征在于,包括:至少一个视频采集设备与权利要求11所述的一种视频传输设备。
13.一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,其特征在于,当计算机执行该指令时,该计算机执行上述权利要求1-8任一项中所述的视频传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211439485.5A CN115834975A (zh) | 2022-11-17 | 2022-11-17 | 一种视频传输方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211439485.5A CN115834975A (zh) | 2022-11-17 | 2022-11-17 | 一种视频传输方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115834975A true CN115834975A (zh) | 2023-03-21 |
Family
ID=85528722
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211439485.5A Pending CN115834975A (zh) | 2022-11-17 | 2022-11-17 | 一种视频传输方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115834975A (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004260668A (ja) * | 2003-02-27 | 2004-09-16 | Nippon Telegr & Teleph Corp <Ntt> | 動画像伝送システム、動画像送信装置、動画像中継装置、動画像受信装置、プログラム、および記録媒体 |
WO2008014707A1 (fr) * | 2006-07-27 | 2008-02-07 | Tencent Technology (Shenzhen) Company Limited | Procédé, système et écran de réglage de qualité vidéo |
US20130124751A1 (en) * | 2006-01-31 | 2013-05-16 | Hideo Ando | Information reproducing system using information storage medium |
US9014264B1 (en) * | 2011-11-10 | 2015-04-21 | Google Inc. | Dynamic media transmission rate control using congestion window size |
US20160295254A1 (en) * | 2015-03-31 | 2016-10-06 | Broadcom Corporation | Compressed video buffering |
CN106559715A (zh) * | 2016-11-23 | 2017-04-05 | 中国联合网络通信集团有限公司 | 移动网络视频传输优化方法及装置 |
US20200322272A1 (en) * | 2019-04-08 | 2020-10-08 | Electronics And Telecommunications Research Institute | Communication method and apparatus for optimizing tcp congestion window |
WO2021030294A1 (en) * | 2019-08-15 | 2021-02-18 | Hulu, LLC | Prediction-based dropped frame handling logic in video playback |
CA3136556A1 (en) * | 2020-06-10 | 2021-12-10 | Tencent America LLC | Techniques for bitstream extraction for subpicture in coded video stream |
-
2022
- 2022-11-17 CN CN202211439485.5A patent/CN115834975A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2004260668A (ja) * | 2003-02-27 | 2004-09-16 | Nippon Telegr & Teleph Corp <Ntt> | 動画像伝送システム、動画像送信装置、動画像中継装置、動画像受信装置、プログラム、および記録媒体 |
US20130124751A1 (en) * | 2006-01-31 | 2013-05-16 | Hideo Ando | Information reproducing system using information storage medium |
WO2008014707A1 (fr) * | 2006-07-27 | 2008-02-07 | Tencent Technology (Shenzhen) Company Limited | Procédé, système et écran de réglage de qualité vidéo |
US9014264B1 (en) * | 2011-11-10 | 2015-04-21 | Google Inc. | Dynamic media transmission rate control using congestion window size |
US20160295254A1 (en) * | 2015-03-31 | 2016-10-06 | Broadcom Corporation | Compressed video buffering |
CN106559715A (zh) * | 2016-11-23 | 2017-04-05 | 中国联合网络通信集团有限公司 | 移动网络视频传输优化方法及装置 |
US20200322272A1 (en) * | 2019-04-08 | 2020-10-08 | Electronics And Telecommunications Research Institute | Communication method and apparatus for optimizing tcp congestion window |
WO2021030294A1 (en) * | 2019-08-15 | 2021-02-18 | Hulu, LLC | Prediction-based dropped frame handling logic in video playback |
CA3136556A1 (en) * | 2020-06-10 | 2021-12-10 | Tencent America LLC | Techniques for bitstream extraction for subpicture in coded video stream |
Non-Patent Citations (1)
Title |
---|
周正武, 董育宁: "IP网络实时视频流的传输控制算法AVTC的研究", 计算机研究与发展, no. 05, 16 May 2004 (2004-05-16) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP1130839B1 (en) | Method and apparatus for retransmitting video data frames with priority levels | |
CN101568027B (zh) | 转发视频数据的方法、装置和系统 | |
KR100657314B1 (ko) | 멀티미디어 스트리밍 송신 장치 및 방법 | |
US9253063B2 (en) | Bi-directional video compression for real-time video streams during transport in a packet switched network | |
US20110249127A1 (en) | Estimating Video Quality Corruption in Lossy Networks | |
CN109155707B (zh) | 在多播网络中请求数据重传 | |
BRPI0808629A2 (pt) | Redução de efeitos de perda de pacotes em transmissões de vídeo. | |
KR20140027393A (ko) | 낮은 레이턴시 레이트 제어 시스템 및 방법 | |
Wu et al. | Streaming high-definition real-time video to mobile devices with partially reliable transfer | |
US20110310957A1 (en) | Encoding of a video frame for transmission to a plurality of clients | |
CN109862400B (zh) | 一种流媒体传输方法、装置及其系统 | |
US20030152080A1 (en) | System and method for fault tolerant multimedia communication | |
US10536708B2 (en) | Efficient frame loss recovery and reconstruction in dyadic hierarchy based coding | |
KR20230002784A (ko) | 오디오 및/또는 비디오 콘텐츠 전송을 위한 방법 및 서버 | |
JP2005033556A (ja) | データ送信装置、データ送信方法、データ受信装置、データ受信方法 | |
CN115834975A (zh) | 一种视频传输方法、装置、设备及介质 | |
JP2023043851A (ja) | ビデオストリームの送信を制御するための方法およびデバイス | |
CN111953613B (zh) | 数据传输控制方法及装置 | |
JP6083964B2 (ja) | 送信装置、送信方法、及びプログラム | |
CN115802074B (zh) | 一种多路视频传输方法、装置、设备及介质 | |
CN113472680A (zh) | 丢包处理方法、装置、通信装置及系统 | |
US20230034162A1 (en) | Transmission apparatus and transmission method | |
CN116980713A (zh) | 一种带宽检测方法、装置、电子设备及存储介质 | |
El Derini et al. | MPEG-4 video transfer with SCTP-friendly rate control | |
WO2022220863A1 (en) | Mpeg characteristics aware packet dropping and packet wash |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |