一种视频会议系统的QoS综合处理方法与流程
- 国知局
- 2024-11-19 09:44:00
本发明涉及视频通讯,尤其涉及一种视频会议系统的qos综合处理方法。
背景技术:
1、视频会议系统主要功能是将不同会议终端的音视频流集中处理(混音、混屏、转码等),并分发给其他参会终端。但视频会议在不同网络条件下会面临着诸多挑战,例如网络延迟、带宽限制、丢包率以及抖动等。这些问题可能导致视频会议中的画面模糊、声音延迟、卡顿等现象,严重影响用户体验。
2、为了提供稳定、高质量的视频会议服务,需要综合考虑多个qos指标,以确保在各种网络条件下都能提供出色的用户体验。当前应用于视频会议系统qos(服务质量)的技术涵盖了多个方面,主要有:网络带宽管理、流量调整和优先级、网络拥塞控制、丢包恢复和纠错等。现有的一些视频会议优化策略主要缺点有:
3、第一,缺乏适应性,某些qos技术可能仅在特定网络环境或情况下有效,但在其他环境中可能无法发挥最佳效果。缺乏适应性可能导致在不同网络条件下无法实现稳定的通信质量。
4、第二,综合效果不佳,通常仅单独优化某个qos指标,可能对其他指标产生负面影响。例如,仅关注降低延迟可能导致带宽的过度占用,从而影响视频质量。
5、针对于现有较为单一且固定的qos方案存在的缺点,本发明提出一种综合qos处理策略,有效提升视频会议用户体验。
技术实现思路
1、本发明要解决的技术问题,在于提供一种视频会议系统的qos综合处理方法,以克服不同网络环境下各qos指标无法兼顾的问题,提供稳定的高质量的视频通讯,提升视频会议用户体验。
2、本发明的问题是这样实现的:一种视频会议系统的qos综合处理方法,包括如下步骤:
3、步骤s1、通过流媒体接收器接收上行音视频流,对收到的数据进行归类与分发,并统计不同类型报文的宽带和收包数量情况汇聚给传输统计模块;
4、步骤s2、通过fec解码器根据缓存的原始报文、冗余报文,对比冗余信息,还原丢失的原始报文,发送给抖动缓冲模块;
5、步骤s3、通过抖动缓冲模块对收到的原始报文进行排序,通过rtp序列号判断是否产生丢包,并反馈丢包序列号给传输统计模块,同时动态调整抖动缓冲长度并将缓冲的rtp报文以帧为单位发送给错误隐藏模块;
6、步骤s4、通过错误隐藏模块根据rtp序列号连续情况判定是否需要生成填充数据,若rtp序列号不连续,则通过将相邻帧之间的音频样本值进行插值,以创建新的音频帧来填补丢失的帧,若rtp序列号连续,则无需进行填充数据;之后,将连续的媒体数据发送给音视频解码器进行解码,并按照不同的会议场景对解码数据进行加工处理后发送给音视频编码器;
7、步骤s5、当rtcp处理模块解析到关键帧请求fir/pli时,直接通过传输统计模块通知音视频编码器生成关键帧;
8、步骤s6、传输统计模块将当前统计的下行带宽,下行时延recv_delta数据以及当前下行丢包率传递给带宽探测模块,带宽探测模块根据统计信息,评估得到当前下行带宽,并参考下行丢包情况,即时修改视频编码率以及fec冗余配置信息;
9、步骤s7、音视频编码器对接收到的数据根据修改后的视频编码率进行编码后传递给fec编码器,所述fec编码器根据带宽探测模块接收到的数据动态调整冗余率,对原始报文数据添加冗余包组信息,根据当前冗余率在每个冗余包组中插入指定数量的冗余包,并交由发送速率控制模块平滑发送给流媒体发送器。
10、进一步的,所述fec冗余配置信息包括fec包组中冗余报文和原始报文的比例。
11、进一步的,所述步骤s1中“对收到的数据进行归类与分发”具体包括:将收到的报文分为rtp报文以及rtcp报文,所述rtp报文中分为冗余报文、原始报文和探测填充报文,将其中的冗余报文直接传递给fec解码器,将原始报文拷贝一份给fec解码器,同时放入抖动缓冲模块,将rtcp报文直接发送到rtcp报文处理模块进行解析。
12、进一步的,所述步骤s5还包括rtcp处理模块通过解析rr、sr、twcc报文得到下行抖动、时延rtt、拥塞控制时延信息recv_delta,汇聚到传输统计模块,并在解析丢包重传请求nack时,通知媒体流发送器重传对应rtp报文,其中,nack请求间隔控制采用动态间隔控制,动态间隔interval的计算公式为:interval=0.6*当前interval+0.4*rtt,其中interval的初始值为30ms。
13、进一步的,所述步骤s2中还原丢失的原始报文的具体过程为:将私有的rtp协议进行扩展,在每个原始报文的rtp头扩展中携带包组序列号、包组中原始包数量和当前报文在包组中的位置信息;
14、预设包组中原始包数量k和冗余包数量r,当接收端收到该包组中原始包+冗余包数量达到k时,fec解码器结合nack策略对包组中所有报文进行恢复。
15、进一步的,所述步骤s3中动态调整抖动缓冲长度的具体实现方式为:
16、通过抖动缓冲模块对接收到的数据包按照它们的时间戳信息进行排序,同时校验序列号确认丢包情况;
17、将已排序的数据包放入抖动缓冲队列jitterbuffer中,通过报文序列号seq索引;
18、其中,抖动缓冲长度根据变化的网络条件动态调整,具体调整方式如下:
19、预先设置最小缓冲长度140ms,最大缓冲长度1s;
20、对于音频,若250次读包周期内,有一次或多次读包失败,则将当前抖动缓冲长度加一;若连续250次读包成功,则将当前抖动缓冲长度减一;
21、对于视频,在弱网络环境下,增加抖动缓冲长度,且在网络恢复后,减小抖动缓冲长度;所述弱网环境的判断条件为:当出现读帧超时或丢帧时判定为弱网环境。
22、进一步的,对于视频,调整抖动缓冲长度的具体过程如下:
23、对于弱网环境,设定读帧周期为最大缓冲长度,在每一读帧周期内调整一次抖动缓冲长度;若是帧不完整导致的丢帧,则进行常规加1增长,即在每个读帧周期内出现帧不完整时,抖动缓冲长度加1,若当前缓冲队列中的完整帧的数量占比达到2/3,则抖动缓冲长度停止增长;若周期内未丢帧,则进行常规缩小,即每个读帧周期缓冲长度下降1,若周期内的1/4的帧都读取超时,则抖动缓冲长度停止缩小;
24、针对入会初期,进行不受读帧周期控制的加速增长,即在每次丢帧时都将抖动缓冲长度加1,但若帧数超过当前缓冲队列的1/3,则切换为按照每个读帧周期调整一次抖动缓冲长度;
25、针对突发的丢包率大于3%的大丢包场景,则执行大丢包场景控制策略如下:
26、若丢包率低于10%,或当前抖动缓冲队列长度已超过最大缓冲长度的2/3,则将抖动缓冲长度涨幅降为1;
27、若丢包率处于[10%,15%]区间,则加大涨幅,将抖动缓冲长度涨幅设置为丢包率-10;
28、若丢包率大于15%,则进行快速增大,将抖动缓冲长度涨幅设置为10;
29、所述丢包率指的是当前缓冲队列内部丢包率。
30、进一步的,所述步骤s4中的加工处理包括对音视频解码后的数据进行混音和/或混屏处理。
31、进一步的,所述步骤s7中动态调整冗余率的具体方式如下:
32、在fec编码端接收来自带宽探测模块推测的实时带宽数据,动态调整冗余率,具体的,设置最大冗余率=(探测带宽-编码码率)/编码码率,当下行丢包率小于3%,则调整冗余率为最大冗余率/4,当下行丢包率在3%~10%,则调整冗余率为最大冗余率/2,当下行丢包率在10%以上,则调整冗余率为最大冗余率。
33、进一步的,步骤s7中还包括发送速率控制模块将现有下行发包情况反馈给传输统计模块。
34、进一步的,所述发送速率控制模块采用滑动窗口算法控制数据包平滑发送,降低带宽不足导致的丢包风险,且控制数据包发送优先级为:重传包>音频包>视频包。
35、本发明的优点在于:基于通用的rtcp反馈,以及部分rtp私有协议实现本发明的动态抖动缓冲和自适应冗余处理,从而使得视频会议适应不同网络环境,平衡各个服务质量指标,提高视频会议质量,提升用户综合体验,同时本发明方法应用成本低,对于新的qos指标或新的优化策略,都可以相对容易地集成到本方法中。
本文地址:https://www.jishuxx.com/zhuanli/20241118/329976.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 YYfuon@163.com 举报,一经查实,本站将立刻删除。
下一篇
返回列表