CN117749776A - 流媒体数据包的传输方法及装置 - Google Patents
流媒体数据包的传输方法及装置 Download PDFInfo
- Publication number
- CN117749776A CN117749776A CN202311576493.9A CN202311576493A CN117749776A CN 117749776 A CN117749776 A CN 117749776A CN 202311576493 A CN202311576493 A CN 202311576493A CN 117749776 A CN117749776 A CN 117749776A
- Authority
- CN
- China
- Prior art keywords
- receiving side
- media data
- streaming media
- side user
- resolution
- 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
- 238000000034 method Methods 0.000 title claims abstract description 54
- 230000005540 biological transmission Effects 0.000 claims abstract description 32
- 238000004590 computer program Methods 0.000 claims description 11
- 238000005516 engineering process Methods 0.000 claims description 5
- 238000004891 communication Methods 0.000 abstract description 14
- 238000004364 calculation method Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 8
- 230000000694 effects Effects 0.000 description 7
- 238000011156 evaluation Methods 0.000 description 6
- 230000001934 delay Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 238000012937 correction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000011144 upstream manufacturing Methods 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 230000008014 freezing Effects 0.000 description 1
- 238000007710 freezing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 229920006395 saturated elastomer Polymers 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种流媒体数据包的传输方法及装置,涉及通信技术领域,方法包括:接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。本发明在传输流媒体数据包时,考虑了接收侧用户接收数据包的能力(例如剩余带宽等),可以根据不同接收侧用户的当前得分,为其分配对应分辨率的目标流媒体数据包,可以有效提高接收侧用户的体验。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种流媒体数据包的传输方法及装置。
背景技术
选择性转发单元(Selective Forwarding Units,SFU)已经成为基于网页实时通信(Web Real-Time Communication,WebRTC)的会议的主流架构。它们的作用是将一个用户的数据转发给房间中的其他用户,从而显著减少每个用户必须发送的数据量。近年来由于SFU扩展相对简单,获得了相当大的普及。由于它们不需要对媒体进行编码或解码,因此转发数据通常只需要很少的中央处理器(Central Processing Unit,CPU)开销。
目前,虽然利用SFU直接转发接收到的流,可以使得架构和程序变得简单,但在实际网络条件下还是存在一些问题:并非每个人都拥有足够快的互联网连接来接收其他人发布的流,这会导致接收侧的用户体验差。
发明内容
本发明提供一种流媒体数据包的传输方法及装置,用以解决现有技术中接收侧的用户体验差的问题。
本发明提供一种流媒体数据包的传输方法,包括:
接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
根据本发明提供的一种流媒体数据包的传输方法,在所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户之前,所述方法还包括:
基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分;
其中,所述通话质量影响指标包括延迟指标、丢包指标和抖动指标中的至少一项。
根据本发明提供的一种流媒体数据包的传输方法,所述基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分,包括:
基于所述丢包指标,计算各所述接收侧用户对应的丢包得分;
基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟;
基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分。
根据本发明提供的一种流媒体数据包的传输方法,所述基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分,包括:
计算所述丢包得分和所述有效延迟的和,作为损失得分;
计算所述总分与所述损失的分的差,作为所述当前得分。
根据本发明提供的一种流媒体数据包的传输方法,所述丢包指标包括实际丢包数、应接收包总数和包丢失权重,所述包丢失权重与所述流媒体数据包的包类型相关;
所述基于所述丢包指标,计算各所述接收侧用户对应的丢包得分,包括:
将所述实际丢包数与所述应接收包总数的商,乘以所述包丢失权重,得到各所述接收侧用户对应的丢包得分。
根据本发明提供的一种流媒体数据包的传输方法,所述基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟,包括:
在使用往返时延RTT的情况下,对于每一个接收侧用户,获取在第一时间段内的最大时延t1和最大抖动值t2;
采用公式(1)计算初始有效延迟值effectiveDelay1:
effectiveDelay1= t1/2 + t2*2/1000 (1);
在所述effectiveDelay1大于第一阈值的情况下,采用公式(2)计算所述有效延迟effectiveDelay:
effectiveDelay=(effectiveDelay1-120)/10;
在所述effectiveDelay1小于或等于所述第一阈值的情况下,采用公式(3)计算所述有效延迟effectiveDelay:
effectiveDelay=effectiveDelay1/40。
根据本发明提供的一种流媒体数据包的传输方法,所述至少两个流媒体数据包包括:第一分辨率的高分辨率数据包、第二分辨率的中分辨率数据包和第三分辨率的低分辨率数据包,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率;
所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
在所述接收侧用户的当前得分大于第二阈值的情况下,将所述高分辨率数据包发送至所述接收侧用户;
在所述接收侧用户的当前得分小于或等于第三阈值、且大于第四阈值的情况下,将所述中分辨率数据包发送至所述接收侧用户;其中,所述第三阈值大于所述第四阈值;
在所述接收侧用户的当前得分小于或等于第五阈值的情况下,将所述低分辨率数据包发送至所述接收侧用户。
根据本发明提供的一种流媒体数据包的传输方法,所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
基于各所述接收侧用户的当前得分,通过Simulcast技术将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户。
本发明还提供一种流媒体数据包的传输装置,包括:
接收模块,用于接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
发送模块,用于基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述流媒体数据包的传输方法。
本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述流媒体数据包的传输方法。
本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述流媒体数据包的传输方法。
本发明提供的流媒体数据包的传输方法及装置,先接收来自发布侧用户的至少两个流媒体数据包,这些流媒体数据包的分辨率是不同的,进而可以基于各接收侧用户的当前得分,对各接收侧用户发送对应的目标流媒体数据包,即可以根据当前得分来评价不同接收侧用户接收流媒体数据包的能力,进而对其分配可以适应于其能力的目标流媒体数据包,相较于相关技术直接转发来自发布侧用户的数据至接收侧用户,不考虑接收侧用户接收数据包的能力(例如剩余带宽等)就直接进行转发,导致接收侧用户出现体验差的情况,本发明可以根据不同接收侧用户的当前得分,为其分配对应分辨率的目标流媒体数据包,以避免出现例如慢速用户的下行带宽不足以获取其他用户正在发送的高质量数据包,所以在接收端会遭受高质量数据包的丢失,导致画面质量不连贯或出现黑屏/空白帧的情况,可以有效提高接收侧用户的体验。
附图说明
为了更清楚地说明本发明或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的流媒体数据包的传输方法的流程示意图;
图2是本发明提供的流媒体数据包的传输装置的结构示意图;
图3是本发明提供的电子设备的结构示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明中的附图,对本发明中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面结合附图描述本发明的流媒体数据包的传输方法及装置。
图1是本发明提供的流媒体数据包的传输方法的流程示意图,如图1所示,流媒体数据包的传输方法包括步骤101和步骤102;其中:
步骤101、接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同。
步骤102、基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
相关技术中,利用SFU直接转发接收到的流,可以使得架构和程序变得简单,但在实际网络条件下还是存在一些问题:并非每个人都拥有足够快的互联网连接来接收其他人发布的流,这会导致接收侧的用户体验差,从“慢速”用户加入会议的那一刻起,这个问题就变得非常明显。
具体地,“慢速”用户可能将收到断断续续的流,这里的流可以理解为是流媒体数据包,例如音频、视频数据包等,由于慢速用户的下行带宽不足以获取其他用户正在发送的高质量流数据包,所以他们在接收端会遭受高质量流数据包的丢失,导致画面质量不连贯或出现黑屏、空白帧等。
另外,随着下游带宽达到饱和,拥塞也会影响用户上传自己视频的能力。
更糟糕的是,“慢速”用户的WebRTC客户端将不断向其他发布参与者发送画面丢失指示(Pre-Load Indicator/Indicating,PLI)消息,例如通过SFU发送上述消息,因为它无法接收足够的数据包来渲染帧。当其他WebRTC客户端看到PLI数据包时,会通过生成新的关键帧来响应,这些关键帧需要发送给每个人,这会增加整个会话的带宽需求,而增加的带宽需求可能触发级联效应,当它超过其他参与者的带宽限制时,将会影响其他参与者正常发送和接收流媒体数据包。
综上,在一个大量人员的会议中,房间中有人连接欠佳的可能性会增加,每个会议最终都会遇到“慢速”用户的问题,导致用户体验差。
针对上述问题,本发明实施例提出了以下技术构思:向接收侧用户发送独立的数据流,以适应每个用户的可用带宽。
具体地,本发明实施例可以应用于SFU,SFU先接收来自发布侧用户的至少两个流媒体数据包,这些流媒体数据包的分辨率是不同的,例如由发布侧用户生成并发送不同分辨率的流媒体数据包至SFU侧,比如发送以下分辨率的流媒体数据包:
1)原始、高分辨率:1280×720@2.5Mbps;
2)中分辨率:640×360@400Kbps;
3)低分辨率:320×180@125Kbps。
SFU在接收到不同分辨率的流媒体数据包后,可以基于各接收侧用户的当前得分,对各接收侧用户发送对应的目标流媒体数据包,即可以根据当前得分来评价不同接收侧用户接收流媒体数据包的能力,进而对其分配可以适应于其能力的目标流媒体数据包。
可选地,所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户的实现方式可以包括:
基于各所述接收侧用户的当前得分,通过Simulcast(广播、多播)技术将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户。
具体地,Simulcast允许WebRTC客户端发布同一源轨道的多个版本,其具有不同的编码(即空间层),发布侧用户可以发布高分辨率、中分辨率和低分辨率版本的同一流媒体数据包,例如发布高分辨率、中分辨率和低分辨率版本的同一视频,则这些视频可以以不同的比特率进行编码,进而将Simulcast与SFU一起使用,其中SFU可以接收并跟踪所有三层,并对每个接收侧用户选择转发哪一层的数据。
从接收侧用户的角度来看,Simulcast是不可见的,WebRTC轨道设计时就支持动态调整分辨率,对于接收侧用户来说,这使得SFU可以在其带宽改变时适应性切换到不同的层,同时保持连续的视频流无中断,有效提高了接收侧用户的体验。
在本发明实施例提到的流媒体数据包的传输方法中,先接收来自发布侧用户的至少两个流媒体数据包,这些流媒体数据包的分辨率是不同的,进而可以基于各接收侧用户的当前得分,对各接收侧用户发送对应的目标流媒体数据包,即可以根据当前得分来评价不同接收侧用户接收流媒体数据包的能力,进而对其分配可以适应于其能力的目标流媒体数据包,相较于相关技术直接转发来自发布侧用户的数据至接收侧用户,不考虑接收侧用户接收数据包的能力(例如剩余带宽等)就直接进行转发,导致接收侧用户出现体验差的情况,本发明可以根据不同接收侧用户的当前得分,为其分配对应分辨率的目标流媒体数据包,以避免出现例如慢速用户的下行带宽不足以获取其他用户正在发送的高质量数据包,所以在接收端会遭受高质量数据包的丢失,导致画面质量不连贯或出现黑屏/空白帧的情况,可以有效提高接收侧用户的体验。
可选地,在所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户之前,可以基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分;
其中,所述通话质量影响指标可以包括延迟指标、丢包指标和抖动指标中的至少一项。
具体地,SFU可以基于各接收侧用户对应的通话质量影响指标,确定其对应的当前得分,通话质量影响指标例如有延迟指标、和抖动指标等。
下面对延迟指标、丢包指标和抖动指标进行简单说明。
1)丢包指标;
丢包指标例如包括丢包百分比(实际丢包数与应接收包总数的商),如果发出了100个数据包,但只收到了97个数据包,即3个没有接收成功,那么认为有3%的数据包丢失,3%即为丢包百分比。
2)延迟指标;
延迟指标例如包括平均延迟,平均延迟是数据包从计算机到达目标服务器,然后再返回所需的平均时间。
计算方式举例如下:平均延迟是所有延迟的总和除以正在测量的样本数,如果发出100个样本并收到97个样本,则对所有延迟求和并除以97得到平均值,作为平均延迟。
3)抖动指标;
抖动指标用来衡量不同样本之间延迟变化程度的指标。低抖动数表示连接稳定、良好,高抖动数表示网络上存在连接,抖动数字过高会对语音质量产生负面影响,导致延迟、需要重新发送并对语音传输造成严重破坏。
为了测量抖动值,可以取样本之间的差异,然后除以样本数量(减去1)。
假设有5个具有以下延迟的样本:136、184、115、148、125(按此顺序),可以计算出平均延迟为142,具体通过以下公式计算得到:(136+184+115+148+125)/5)。
而抖动值是通过取样本之间的差异来计算的,具体136到184,可以计算出差值diff=184-136=48;184到115,可以计算出差值diff=184-115=69;115到148,可以计算出差值diff=148-115=33;148到125,可以计算出差值diff=148-125=23。计算总差值为48+69+33+23=173,因此抖动值为173/4,得到43.25。
可选地,在所述基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分之前,可以先统计在第二时间段内收发的流媒体数据包,得到计算指标,再基于上述计算出的计算指标,确定各接收侧用户对应的通话质量影响指标。
其中,计算指标可以包括流开始发送时间、期望包大小、丢失包数量、乱序包数量、发送包字节数、最大往返时延、最大抖动和获取各计算指标的时间中的至少一项。
可选地,所述基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分的实现方式可以包括:
基于所述丢包指标,计算各所述接收侧用户对应的丢包得分;
基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟;
基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分。
具体地,可以先基于丢包指标计算各接收侧用户对应的丢包得分。
可选地,所述丢包指标可以包括实际丢包数、应接收包总数和包丢失权重,所述包丢失权重与所述流媒体数据包的包类型相关;
所述基于所述丢包指标,计算各所述接收侧用户对应的丢包得分的实现方式可以包括:
将所述实际丢包数与所述应接收包总数的商,乘以所述包丢失权重,得到各所述接收侧用户对应的丢包得分。
具体地,相当于通过丢包百分比与包丢失权重相乘,得到各接收侧用户对应的丢包得分。
其中,包丢失权重考虑了不同包类型对丢包得分的影响,例如对于音频来说,没有前向纠错(Forward Error Correction,FEC)或冗余编码(redundant coding,RED)的Opus因数据包丢失而遭受的损失最大,因此可以设置最高的权重;具有两个数据包冗余的RED可以接收每三个数据包中的两个来修复,因此数据包丢失的影响较小,因此可以设置较低的权重;对于视频,没有可用的内置编解码器修复,因此所有编解码器权重都相同,都可以设置较高的权重,本发明考虑包丢失权重,可以更贴近实际地计算各接收侧用户对应的丢包得分,进而计算的各接收侧用户的当前得分也更贴近实际情况,进而根据该当前得分进行数据包的适应性传输,可以进一步提高接收侧用户的体验。
其中,FEC是一种通过在网络传输中增加数据包的冗余信息,使得接收端能够在网络发生丢包后利用这些冗余信息直接恢复出丢失的数据包的方法。
可选地,对于包丢失权重的计算来说,包丢失是通过与所看到的最大包速率进行比较来加权的,这是为了处理音频等流媒体数据中的DTX和屏幕共享等可变比特率轨道等情况。
而损失的影响在这些场景中并不明显,例如音频静音、统计屏幕共享等。
例如,不连续传输(Discontinuous Transmission,DTX)通常仅使用全部包速率的5%的包。以该速率,数据包丢失权重减少到配置权重的~22%(即sqrt(0.05)*配置权重)。
当前PPS除以最大PPS,可以得到包的速率,以包的速率的平方*配置权重=包丢失权重。
其中,DTX的目的是在不需要传输音频数据时将编码器置于睡眠状态,以节省能源和网络带宽。在传统的音频编码中,即使无声部分也会被编码并传输,这可能导致无效的音频数据传输,消耗更多的带宽和功耗,而使用DTX则可以有效解决这个问题。
PPS全称是Packet Per Second(包/秒),表示以网络包为单位的传输速率,一般用来评估系统对于网络的转发能力。
在得到各接收侧用户对应的丢包得分的同时,还可以基于延迟指标和抖动指标中的至少一项,计算各接收侧用户对应的有效延迟。
可选地,所述基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟的实现方式可以包括:
在使用往返时延(Round-Trip Time,RTT)的情况下,对于每一个接收侧用户,获取在第一时间段内的最大时延t1和最大抖动值t2;
采用公式(1)计算初始有效延迟值effectiveDelay1:
effectiveDelay1= t1/2 + t2*2/1000 (1);
在所述effectiveDelay1大于第一阈值的情况下,采用公式(2)计算所述有效延迟effectiveDelay:
effectiveDelay=(effectiveDelay1-120)/10;
在所述effectiveDelay1小于或等于所述第一阈值的情况下,采用公式(3)计算所述有效延迟effectiveDelay:
effectiveDelay=effectiveDelay1/40。
具体地,本发明提供了获取有效延迟的一种具体实现方式,也可以根据实际情况对有效延迟进行设置。
可选地,也可以取平均延迟,增加抖动值,但需要对延迟的影响加倍后增加10作为协议延迟,即有效延迟可以通过下面的公式获取:有效延迟=(平均延迟+抖动值*2+10)。
可选地,所述基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分的实现方式可以包括:
计算所述丢包得分和所述有效延迟的和,作为损失得分;
计算所述总分与所述损失的分的差,作为所述当前得分。
具体地,可以通过下面的公式获取当前得分:当前得分=总分-(丢包得分+有效延迟)。
可选地,也可以通过常规的平均意见得分(Mean Opnion Score,MOS)计算方式,获取各接收侧用户对应的当前得分。
例如在使用自动内容识别(Automatic Content Recognition,ACR)方法对语音质量评价时,可以由参与评测的人员对语音整体质量进行打分,分值范围为1-5分,分数越大表示语音质量最好。
举例来说,存在以下5个音频级别对应的MOS值:
1)音频级别:优,对应MOS值:4.0~5.0,评价标准:很好、听得清楚;延迟小,交流流畅;
2)音频级别:良,对应MOS值:3.5~4.0,评价标准:稍差、听得清楚;延迟小,交流欠流畅,有点杂音;
3)音频级别:中,对应MOS值:3.0~3.5,评价标准:还可以、听不太清;有一定延迟,可以交流;
4)音频级别:差,对应MOS值:1.5~3.0,评价标准:勉强、听不太清;延迟较大,交流需要重复多遍;
5)音频级别:劣,对应MOS值:0~1.5,评价标准:极差、听不懂;延迟大,交流不通畅。
一般MOS应为4或者更高,这可以被认为是比较好的语音质量,若MOS低于3.6,则表示大部分被测不太满意这个语音质量。
可选地,所述至少两个流媒体数据包可以包括:第一分辨率的高分辨率数据包、第二分辨率的中分辨率数据包和第三分辨率的低分辨率数据包,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率;
所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
在所述接收侧用户的当前得分大于第二阈值的情况下,将所述高分辨率数据包发送至所述接收侧用户;
在所述接收侧用户的当前得分小于或等于第三阈值、且大于第四阈值的情况下,将所述中分辨率数据包发送至所述接收侧用户;其中,所述第三阈值大于所述第四阈值;
在所述接收侧用户的当前得分小于或等于第五阈值的情况下,将所述低分辨率数据包发送至所述接收侧用户。
需要说明的是,第三阈值可以设置小于或等于第二阈值,第五阈值可以设置小于或等于第四阈值,第二阈值、第三阈值、第四阈值和第五阈值的具体值,可以根据实际情况进行具体设置。
举例来说,可以在当前得分大于80分时,将高分辨率数据包发送至接收侧用户;在当前得分小于80且大于60分时,将中分辨率数据包发送至接收侧用户;在当前得分小于60分时,将低分辨率数据包发送至接收侧用户。
下面举例说明本发明实施例提供的流媒体数据包的传输方法。
为了确保平滑和高质量的传输,本发明实施例可以采用以下三个选择:
1)使用可缩放编解码器,如VP9或AV1,这样的可缩放编解码器可适用于本发明的流媒体数据包的传输方法。
2)降低每个人的数据流比特率,即通过降低最低公共比特率的方式,以免超载慢速用户。
3)向参与者发送独立的数据流,以适应每个用户的可用带宽。
由于Simulcast允许WebRTC客户端发布同一源轨道的多个版本,具有不同的编码。发布侧用户发布高分辨率、中分辨率和低分辨率版本的同一视频,这些视频以不同的比特率进行编码。
本发明将Simulcast与SFU一起使用,其中SFU接收跟踪的所有三层,并对每个订阅者(接收侧用户)选择转发哪一层的数据。
从订阅者的角度来看,Simulcast是不可见的,WebRTC轨道设计时就支持动态调整分辨率,对于订阅者来说,这使得SFU可以在其带宽改变时切换到不同的层,同时保持连续的视频流无中断。
由发布侧用户发布不同分辨率的流媒体数据包,虽然相较于相关技术中发送了更多数据,但较低分辨率的层消耗的带宽远少于高质量版本。
举例来说,原始、高分辨率:1280×720@2.5Mbps;中分辨率:640×360@400Kbps;低分辨率:320×180@125Kbps。
使用Simulcast,发布侧用户只需要大约17%的额外带宽就可以发布所有三层,之后SFU接收来自接收侧用户的反馈,并使用预先设置的拥塞检测算法,来估计接收侧用户的可用带宽量,以将码率维持在信道的可用带宽内,以避免拥塞;当拥塞发生时,数据包丢失量将增加,这将导致视频和音频的冻结和失真。
在具体实现方面,分为以下几点:
(一)首先有3个因素会显著影响通话质量:延迟、丢包、抖动,这3个因素对应的相关指标在前面已描述,这里可以参考上述实施例中的内容,在此不做赘述。
上述3个因素可以通过以下计算指标计算得到:流开始发送时间、流发送时间、期望包大小、丢失包、乱序包数量、发送包字节数、最大往返时延、最大抖动等。上述计算指标可以通过统计一段时间收发数据包获取。
(二)计算包丢失权重;
包丢失是通过与所看到的最大包速率进行比较来加权的,这是为了处理音频中的DTX和屏幕共享等可变比特率轨道等情况,而损失的影响在这些场景中并不明显,例如音频静音、统计屏幕共享等。
例如,DTX通常仅使用全部包速率的5%的包。以该速率,数据包丢失权重减少到配置权重的~22%(即sqrt(0.05)*配置权重)。
当前PPS除以最大PPS,得到包的速率,以包的速率的平方*配置权重=包丢失权重。
(三)配置权重;
配置权重主要受包类型影响,举例来说:
对于音频来说,没有FEC或RED的Opus因数据包丢失而遭受的损失最大,因此可以设置最高的权重;
具有两个数据包冗余的RED可以接收每三个数据包中的两个来修复,因此数据包丢失的影响较小,因此可以设置较低的权重;
对于视频来说,没有可用的内置编解码器修复,因此所有编解码器权重都相同,因此可以设置较高的权重。
(四)根据包丢失权重、延迟、抖动等指标计算当前得分;
1)统计实际丢包:需要减去某些情况下的包丢失,例如上游未正常接收,下游转发,下游客户端报告一定数量的丢失,处理时,上游可能重新传输丢失数据包,但对于下游来说可能并未收到数据包。
2)计算丢包得分:
丢包得分=实际丢包数/应接收包总数*包丢失权重;
3)计算有效延迟effectiveDelay:
如果使用RTT,则effectiveDelay=最大时延/2,effectiveDelay+=最大抖动*2/1000;
如果不使用RTT,则effectiveDelay=最大抖动*2/1000。
此时,如果effectiveDelay>160,则执行effectiveDelay=(effectiveDelay–120)/10;否则,执行effectiveDelay=effectiveDelay/40。
4)计算当前得分:当前得分=总分-丢包得分-有效延迟。
(五)根据MOS计算,计算规则如下:
1)计算有效延迟;
取平均延迟,增加抖动,但对延迟的影响加倍然后增加10作为协议延迟,即有效延迟=(平均延迟+抖动*2+10)。
2)计算MOS值;
实现一个基本曲线在160ms延迟时,利用R值减去4(往返)。任何超过这一点的东西都会得到更激进的推论。
如果有效延迟<160,则R=93.2-(有效延迟/40);否则,R=93.2-(有效延迟-120)/10。
再从每个数据包丢失百分比中扣除2.5个R值,R=R-(实际丢包数*2.5)。
将计算得到的R转换为MOS值:
MOS=1+(0.035)*R+(0.000007)*R*(R-60)*(100-R)。
最后将得分转换为对应可伸缩视频编码(Scalable Video Coding,SVC)层级-高、中、低三种不同的码率:大于80分为高,小于80大于60分为中,小于60为低,将得到的不同码率发送到接收侧用户即可。
下面对本发明提供的流媒体数据包的传输装置进行描述,下文描述的流媒体数据包的传输装置与上文描述的流媒体数据包的传输方法可相互对应参照。
图2是本发明提供的流媒体数据包的传输装置的结构示意图,如图2所示,流媒体数据包的传输装置200包括:
接收模块201,用于接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
发送模块202,用于基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
在本发明实施例提到的流媒体数据包的传输装置中,先由接收模块接收来自发布侧用户的至少两个流媒体数据包,这些流媒体数据包的分辨率是不同的,进而可以由发送模块基于各接收侧用户的当前得分,对各接收侧用户发送对应的目标流媒体数据包,即可以根据当前得分来评价不同接收侧用户接收流媒体数据包的能力,进而对其分配可以适应于其能力的目标流媒体数据包,相较于相关技术直接转发来自发布侧用户的数据至接收侧用户,不考虑接收侧用户接收数据包的能力(例如剩余带宽等)就直接进行转发,导致接收侧用户出现体验差的情况,本发明可以根据不同接收侧用户的当前得分,为其分配对应分辨率的目标流媒体数据包,以避免出现例如慢速用户的下行带宽不足以获取其他用户正在发送的高质量数据包,所以在接收端会遭受高质量数据包的丢失,导致画面质量不连贯或出现黑屏/空白帧的情况,可以有效提高接收侧用户的体验。
可选地,流媒体数据包的传输装置200还包括:
处理模块,用于基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分;
其中,所述通话质量影响指标包括延迟指标、丢包指标和抖动指标中的至少一项。
可选地,处理模块具体用于:
基于所述丢包指标,计算各所述接收侧用户对应的丢包得分;
基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟;
基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分。
可选地,处理模块还具体用于:
计算所述丢包得分和所述有效延迟的和,作为损失得分;
计算所述总分与所述损失的分的差,作为所述当前得分。
可选地,所述丢包指标包括实际丢包数、应接收包总数和包丢失权重,所述包丢失权重与所述流媒体数据包的包类型相关;
处理模块还具体用于:
将所述实际丢包数与所述应接收包总数的商,乘以所述包丢失权重,得到各所述接收侧用户对应的丢包得分。
可选地,处理模块还具体用于:
在使用往返时延RTT的情况下,对于每一个接收侧用户,获取在第一时间段内的最大时延t1和最大抖动值t2;
采用公式(1)计算初始有效延迟值effectiveDelay1:
effectiveDelay1= t1/2 + t2*2/1000 (1);
在所述effectiveDelay1大于第一阈值的情况下,采用公式(2)计算所述有效延迟effectiveDelay:
effectiveDelay=(effectiveDelay1-120)/10;
在所述effectiveDelay1小于或等于所述第一阈值的情况下,采用公式(3)计算所述有效延迟effectiveDelay:
effectiveDelay=effectiveDelay1/40。
可选地,所述至少两个流媒体数据包包括:第一分辨率的高分辨率数据包、第二分辨率的中分辨率数据包和第三分辨率的低分辨率数据包,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率;
发送模块202具体用于:
在所述接收侧用户的当前得分大于第二阈值的情况下,将所述高分辨率数据包发送至所述接收侧用户;
在所述接收侧用户的当前得分小于或等于第三阈值、且大于第四阈值的情况下,将所述中分辨率数据包发送至所述接收侧用户;其中,所述第三阈值大于所述第四阈值;
在所述接收侧用户的当前得分小于或等于第五阈值的情况下,将所述低分辨率数据包发送至所述接收侧用户。
可选地,发送模块202具体用于:
基于各所述接收侧用户的当前得分,通过Simulcast技术将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户。
图3是本发明提供的电子设备的结构示意图,如图3所示,该电子设备300可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行流媒体数据包的传输方法,该方法包括:
接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的流媒体数据包的传输方法,该方法包括:
接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的流媒体数据包的传输方法,该方法包括:
接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种流媒体数据包的传输方法,其特征在于,包括:
接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
2.根据权利要求1所述的流媒体数据包的传输方法,其特征在于,在所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户之前,所述方法还包括:
基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分;
其中,所述通话质量影响指标包括延迟指标、丢包指标和抖动指标中的至少一项。
3.根据权利要求2所述的流媒体数据包的传输方法,其特征在于,所述基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分,包括:
基于所述丢包指标,计算各所述接收侧用户对应的丢包得分;
基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟;
基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分。
4.根据权利要求3所述的流媒体数据包的传输方法,其特征在于,所述基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分,包括:
计算所述丢包得分和所述有效延迟的和,作为损失得分;
计算所述总分与所述损失的分的差,作为所述当前得分。
5.根据权利要求3或4所述的流媒体数据包的传输方法,其特征在于,所述丢包指标包括实际丢包数、应接收包总数和包丢失权重,所述包丢失权重与所述流媒体数据包的包类型相关;
所述基于所述丢包指标,计算各所述接收侧用户对应的丢包得分,包括:
将所述实际丢包数与所述应接收包总数的商,乘以所述包丢失权重,得到各所述接收侧用户对应的丢包得分。
6.根据权利要求3或4所述的流媒体数据包的传输方法,其特征在于,所述基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟,包括:
在使用往返时延RTT的情况下,对于每一个接收侧用户,获取在第一时间段内的最大时延t1和最大抖动值t2;
采用公式(1)计算初始有效延迟值effectiveDelay1:
effectiveDelay1= t1/2 + t2*2/1000 (1);
在所述effectiveDelay1大于第一阈值的情况下,采用公式(2)计算所述有效延迟effectiveDelay:
effectiveDelay=(effectiveDelay1-120)/10;
在所述effectiveDelay1小于或等于所述第一阈值的情况下,采用公式(3)计算所述有效延迟effectiveDelay:
effectiveDelay=effectiveDelay1/40。
7.根据权利要求1至4任一项所述的流媒体数据包的传输方法,其特征在于,所述至少两个流媒体数据包包括:第一分辨率的高分辨率数据包、第二分辨率的中分辨率数据包和第三分辨率的低分辨率数据包,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率;
所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
在所述接收侧用户的当前得分大于第二阈值的情况下,将所述高分辨率数据包发送至所述接收侧用户;
在所述接收侧用户的当前得分小于或等于第三阈值、且大于第四阈值的情况下,将所述中分辨率数据包发送至所述接收侧用户;其中,所述第三阈值大于所述第四阈值;
在所述接收侧用户的当前得分小于或等于第五阈值的情况下,将所述低分辨率数据包发送至所述接收侧用户。
8.根据权利要求1至4任一项所述的流媒体数据包的传输方法,其特征在于,所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
基于各所述接收侧用户的当前得分,通过Simulcast技术将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户。
9.一种流媒体数据包的传输装置,其特征在于,包括:
接收模块,用于接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
发送模块,用于基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
10.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至8任一项所述流媒体数据包的传输方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311576493.9A CN117749776A (zh) | 2023-11-23 | 2023-11-23 | 流媒体数据包的传输方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311576493.9A CN117749776A (zh) | 2023-11-23 | 2023-11-23 | 流媒体数据包的传输方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117749776A true CN117749776A (zh) | 2024-03-22 |
Family
ID=90253496
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311576493.9A Pending CN117749776A (zh) | 2023-11-23 | 2023-11-23 | 流媒体数据包的传输方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117749776A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594494A (zh) * | 2012-01-11 | 2012-07-18 | 浙江工业大学 | 一种面向智能终端的渐进网络自适应传输方法 |
CN108282449A (zh) * | 2017-01-06 | 2018-07-13 | 华为技术有限公司 | 一种应用于虚拟现实技术的流媒体的传输方法和客户端 |
CN108400956A (zh) * | 2017-02-07 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 视频数据流的分配方法、装置和系统 |
CN108476345A (zh) * | 2015-11-02 | 2018-08-31 | 万特里克斯公司 | 内容控制流媒体网络中的流量速率调节的方法和系统 |
US11343551B1 (en) * | 2019-07-23 | 2022-05-24 | Amazon Technologies, Inc. | Bandwidth estimation for video streams |
CN115208864A (zh) * | 2022-08-12 | 2022-10-18 | 阿波罗智联(北京)科技有限公司 | 数据传输方法、装置、设备、车辆及存储介质 |
-
2023
- 2023-11-23 CN CN202311576493.9A patent/CN117749776A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102594494A (zh) * | 2012-01-11 | 2012-07-18 | 浙江工业大学 | 一种面向智能终端的渐进网络自适应传输方法 |
CN108476345A (zh) * | 2015-11-02 | 2018-08-31 | 万特里克斯公司 | 内容控制流媒体网络中的流量速率调节的方法和系统 |
CN108282449A (zh) * | 2017-01-06 | 2018-07-13 | 华为技术有限公司 | 一种应用于虚拟现实技术的流媒体的传输方法和客户端 |
CN108400956A (zh) * | 2017-02-07 | 2018-08-14 | 阿里巴巴集团控股有限公司 | 视频数据流的分配方法、装置和系统 |
US11343551B1 (en) * | 2019-07-23 | 2022-05-24 | Amazon Technologies, Inc. | Bandwidth estimation for video streams |
CN115208864A (zh) * | 2022-08-12 | 2022-10-18 | 阿波罗智联(北京)科技有限公司 | 数据传输方法、装置、设备、车辆及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10148598B2 (en) | Efficient packet processing at video receiver in multimedia communications over packet networks | |
CN109729439B (zh) | 实时视频传输方法 | |
CN107196746B (zh) | 实时通信中的抗丢包方法、装置和系统 | |
RU2497304C2 (ru) | Динамическая модификация свойств видео | |
US9609040B2 (en) | Efficient bitrate adaptation in video communications over IP networks | |
US9246973B2 (en) | Identifying and transitioning to an improved VoIP session | |
US7957307B2 (en) | Reducing effects of packet loss in video transmissions | |
US8341684B2 (en) | Method and device for transmitting data | |
US20080091838A1 (en) | Multi-level congestion control for large scale video conferences | |
US8633963B2 (en) | Determining buffer size based on retransmission latency | |
US20100328528A1 (en) | Transmission capacity probing using adaptive redundancy adjustment | |
US10944973B2 (en) | Estimation of video quality of experience on media servers | |
US10230651B2 (en) | Effective intra-frame refresh in multimedia communications over packet networks | |
Li et al. | Reinforcement learning based cross-layer congestion control for real-time communication | |
CN112383791A (zh) | 一种媒体数据处理方法、装置、电子设备和存储介质 | |
CN117749776A (zh) | 流媒体数据包的传输方法及装置 | |
CN115378832B (zh) | 拥塞检测方法、装置及流媒体传输系统、电子设备和介质 | |
CN116634187A (zh) | 基于合流发送机制的视频流处理方法、装置、设备和介质 | |
Sánchez et al. | P2P group communication using Scalable Video Coding | |
WO2010000910A1 (en) | Transmission capacity probing using adaptive redundancy adjustment | |
Li et al. | An adaptive retransmission‐based multipath transmission mechanism for conversational video | |
Jing et al. | A packet loss protection scheme joint deterministic network coding and random linear network coding for H. 264/AVC | |
Wu et al. | On combining temporal scaling and quality scaling for streaming MPEG | |
CN117379775A (zh) | 基于视频增强和比特率自适应算法的云游戏视频传输方法 | |
Huszák et al. | DCCP-based multiple retransmission technique for multimedia streaming |
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 |