本发明涉及通信,尤其涉及一种流媒体数据包的传输方法及装置。
背景技术:
1、选择性转发单元(selective forwarding units,sfu)已经成为基于网页实时通信(web real-time communication,webrtc)的会议的主流架构。它们的作用是将一个用户的数据转发给房间中的其他用户,从而显著减少每个用户必须发送的数据量。近年来由于sfu扩展相对简单,获得了相当大的普及。由于它们不需要对媒体进行编码或解码,因此转发数据通常只需要很少的中央处理器(central processing unit,cpu)开销。
2、目前,虽然利用sfu直接转发接收到的流,可以使得架构和程序变得简单,但在实际网络条件下还是存在一些问题:并非每个人都拥有足够快的互联网连接来接收其他人发布的流,这会导致接收侧的用户体验差。
技术实现思路
1、本发明提供一种流媒体数据包的传输方法及装置,用以解决现有技术中接收侧的用户体验差的问题。
2、本发明提供一种流媒体数据包的传输方法,包括:
3、接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
4、基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
5、根据本发明提供的一种流媒体数据包的传输方法,在所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户之前,所述方法还包括:
6、基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分;
7、其中,所述通话质量影响指标包括延迟指标、丢包指标和抖动指标中的至少一项。
8、根据本发明提供的一种流媒体数据包的传输方法,所述基于各所述接收侧用户对应的通话质量影响指标,确定所述当前得分,包括:
9、基于所述丢包指标,计算各所述接收侧用户对应的丢包得分;
10、基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟;
11、基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分。
12、根据本发明提供的一种流媒体数据包的传输方法,所述基于预先设置的总分、所述丢包得分和所述有效延迟,计算各所述接收侧用户对应的当前得分,包括:
13、计算所述丢包得分和所述有效延迟的和,作为损失得分;
14、计算所述总分与所述损失的分的差,作为所述当前得分。
15、根据本发明提供的一种流媒体数据包的传输方法,所述丢包指标包括实际丢包数、应接收包总数和包丢失权重,所述包丢失权重与所述流媒体数据包的包类型相关;
16、所述基于所述丢包指标,计算各所述接收侧用户对应的丢包得分,包括:
17、将所述实际丢包数与所述应接收包总数的商,乘以所述包丢失权重,得到各所述接收侧用户对应的丢包得分。
18、根据本发明提供的一种流媒体数据包的传输方法,所述基于所述延迟指标和所述抖动指标中的至少一项,计算各所述接收侧用户对应的有效延迟,包括:
19、在使用往返时延rtt的情况下,对于每一个接收侧用户,获取在第一时间段内的最大时延t1和最大抖动值t2;
20、采用公式(1)计算初始有效延迟值effectivedelay1:
21、effectivedelay1= t1/2 + t2*2/1000 (1);
22、在所述effectivedelay1大于第一阈值的情况下,采用公式(2)计算所述有效延迟effectivedelay:
23、effectivedelay=(effectivedelay1-120)/10;
24、在所述effectivedelay1小于或等于所述第一阈值的情况下,采用公式(3)计算所述有效延迟effectivedelay:
25、effectivedelay=effectivedelay1/40。
26、根据本发明提供的一种流媒体数据包的传输方法,所述至少两个流媒体数据包包括:第一分辨率的高分辨率数据包、第二分辨率的中分辨率数据包和第三分辨率的低分辨率数据包,所述第一分辨率大于所述第二分辨率,所述第二分辨率大于所述第三分辨率;
27、所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
28、在所述接收侧用户的当前得分大于第二阈值的情况下,将所述高分辨率数据包发送至所述接收侧用户;
29、在所述接收侧用户的当前得分小于或等于第三阈值、且大于第四阈值的情况下,将所述中分辨率数据包发送至所述接收侧用户;其中,所述第三阈值大于所述第四阈值;
30、在所述接收侧用户的当前得分小于或等于第五阈值的情况下,将所述低分辨率数据包发送至所述接收侧用户。
31、根据本发明提供的一种流媒体数据包的传输方法,所述基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户,包括:
32、基于各所述接收侧用户的当前得分,通过simulcast技术将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户。
33、本发明还提供一种流媒体数据包的传输装置,包括:
34、接收模块,用于接收来自发布侧用户的至少两个流媒体数据包;其中,各所述流媒体数据包的分辨率不同;
35、发送模块,用于基于至少一个接收侧用户的当前得分,将与所述当前得分对应分辨率的目标流媒体数据包发送至各所述接收侧用户;其中,所述当前得分用于表征各所述接收侧用户接收所述流媒体数据包的能力。
36、本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现如上述任一种所述流媒体数据包的传输方法。
37、本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如上述任一种所述流媒体数据包的传输方法。
38、本发明还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述任一种所述流媒体数据包的传输方法。
39、本发明提供的流媒体数据包的传输方法及装置,先接收来自发布侧用户的至少两个流媒体数据包,这些流媒体数据包的分辨率是不同的,进而可以基于各接收侧用户的当前得分,对各接收侧用户发送对应的目标流媒体数据包,即可以根据当前得分来评价不同接收侧用户接收流媒体数据包的能力,进而对其分配可以适应于其能力的目标流媒体数据包,相较于相关技术直接转发来自发布侧用户的数据至接收侧用户,不考虑接收侧用户接收数据包的能力(例如剩余带宽等)就直接进行转发,导致接收侧用户出现体验差的情况,本发明可以根据不同接收侧用户的当前得分,为其分配对应分辨率的目标流媒体数据包,以避免出现例如慢速用户的下行带宽不足以获取其他用户正在发送的高质量数据包,所以在接收端会遭受高质量数据包的丢失,导致画面质量不连贯或出现黑屏/空白帧的情况,可以有效提高接收侧用户的体验。