一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种融合局域网和广域网的SIP对讲方法、系统、存储装置与流程

2022-08-31 23:46:41 来源:中国专利 TAG:

一种融合局域网和广域网的sip对讲方法、系统、存储装置
技术领域
1.本发明涉及sip对讲领域,具体指有一种融合局域网和广域网的sip对讲方法、系统、存储装置。


背景技术:

2.在楼宇对讲系统中,在局域网内安装了多台主机和多台分机,用户的手机上安装了sip对讲软件,主机可通过网络呼叫分机或者手机,实现sip对讲。在实际应用中,主机可以同时呼叫用户家中的数台分机和数部手机,而且需要在主机振铃时向这些分机和手机发送早期视频,分机和手机振铃接收并显示主机视频。
3.现有的sip对讲系统框图如图1所示,sip对讲系统的主机、分机和手机都接到广域网,而且都需要注册到sip服务器,通过主机向sip服务器发起呼叫,再由sip服务器用转发的方式实现一呼多呼叫分机和手机。其工作流程如图2所示,呼叫步骤为:
4.1.主机呼叫,服务器对所有的分机和手机分发invite。
5.2.多台分机和手机响应100和183,服务器只应答设备一次100和183。
6.3.分机和手机根据sdp信息和设备进行视频传输。
7.4.某台分机或手机接听,接听成功后,双方建立音频通道进行音频传输,sip服务器需要往其它分机和手机发起cancel来挂断。
8.5.主机或接听的分机或手机挂断,对讲结束。
9.因此,上述系统或方案具有以下缺陷:1.分机和手机都要注册到sip服务器,分机局域网要有到广域网的出口,即使在只有分机的情况下,也需要sip服务器;2.主机端振铃中只能挂断所有被呼设备,无法主动挂断某一路被呼设备;3.一呼多和媒体转发在服务器上实现,无法实现媒体的nat穿透,增加了服务器的负担和媒体的传输延时,也无法实现媒体码率自适应调整功能,网络拥塞的情况下音视频播放会出现丢包、卡顿的情况。
10.针对上述的现有技术存在的问题设计一种融合局域网和广域网的sip对讲方法、系统、存储装置是本发明研究的目的。


技术实现要素:

11.针对上述现有技术存在的问题,本发明在于提供一种融合局域网和广域网的sip对讲方法、系统、存储装置,能够有效解决上述现有技术存在的问题。
12.本发明的技术方案是:
13.一种融合局域网和广域网的一呼多sip对讲方法,包含以下步骤:
14.将主机通过局域网与若干分机建立连接,将主机通过广域网与若干移动终端建立连接,将所述主机和所述移动终端注册到sip服务器;
15.当用户发起呼叫时,通过主机基于sip协议同时向所述分机和所述移动终端发送呼叫请求指令;
16.在振铃过程中,当任一所述分机或任一所述移动终端发起挂断时,通过相应的所
述分机或所述移动终端向所述主机发送呼叫取消指令;
17.当任一所述分机或任一所述移动终端发起接听时,主机向其它所述分机或其它所述移动终端发送呼叫挂断指令,建立相应的所述分机或移动终端与所述主机之间的通信。
18.进一步地,所述建立相应的所述分机或移动终端与所述主机之间的通信包括以下步骤:
19.若所述分机发起接听,通过所述局域网在所述分机和所述主机之间直接传输媒体流;
20.若所述移动终端发起接听,通过所述广域网在所述移动终端和所述主机之间用nat穿透的方式传输媒体流。
21.进一步地,包括以下步骤:
22.当所述主机或所述移动终端网络切换之后,将所述主机或所述移动终端通过新的网络注册至所述sip服务器;
23.若处于振铃过程中,发送包含新的sdp的更新指令至对方终端或sip服务器;
24.若处于任一所述分机或任一所述移动终端发起接听后,发送包含新的sdp的修改会话指令至对方终端或sip服务器,使用新的媒体地址和端口进行通信。
25.进一步地,所述建立相应的所述分机或移动终端与所述主机之间的通信之后,包括以下步骤:
26.根据当前视频编码比特率r计算自适应周期,周期性执行以下步骤:
27.通过rtcp发送数据分发质量反馈信息;
28.计算丢包率lr和发送接收回环时间rtt;
29.根据所述丢包率lr和所述发送接收回环时间rtt调整视频编码比特率。
30.进一步地,所述根据当前视频编码比特率r计算自适应周期包括:
31.通过以下代码实现:
[0032][0033]
其中,t
rtcp
为自适应周期。
[0034]
进一步地,计算丢包率lr包括:
[0035]
向接收端发送rtcp sr包并接收接收端返回的rtcp rr包;
[0036]
根据rtcp rr包获取其中的rtp总包数n,从rtcp rr包中获取接收端丢失的rtp包数n
lost

[0037]
计算丢包率lr=n
lost
/n。
[0038]
进一步地,计算发送接收回环时间rtt包括:
[0039]
获取发送端接收到rr包的当前时间戳、接收端从接到sr包到发送rr包之间的延时、发送端发送sr包时的当前时间戳;
[0040]
发送接收回环时间rtt=发送端接收到rr包的当前时间戳-接收端从接到sr包到发送rr包之间的延时-发送端发送sr包时的当前时间戳。
[0041]
进一步地,所述根据所述丢包率lr和所述发送接收回环时间rtt调整视频编码比特率包括:
[0042]
根据所述丢包率lr和所述发送接收回环时间rtt对网络拥塞程度进行分级,根据所述网络拥塞程度选择相应的所需视频编码比特率r
new

[0043]
进一步地,所述根据所述丢包率lr和所述发送接收回环时间rtt对网络拥塞程度进行分级,根据所述网络拥塞程度选择相应的所需视频编码比特率r
new
包括:
[0044]
计算当前帧之前的第一时间内的最小码率r0、当前帧距离上一次改变所需视频编码比特率r
new
的时间差t0;
[0045]
通过以下公式计算对应的所需视频编码比特率r
new

[0046][0047]
设置r
new
为下一时间内的视频编码比特率。
[0048]
进一步地,所述建立相应的所述分机或移动终端与所述主机之间的通信之后,执行以下步骤:
[0049]
发送端每隔gop时间编码并发送idr帧至接收端,接收端解码所述idr帧并输出相应的图像;
[0050]
当接收端视频解码中检测到rtp序列号不连续或者连续两帧解码失败,向发送端请求重发上一个所述idr帧。
[0051]
进一步地,所述向发送端请求重发上一个所述idr帧包括:
[0052]
接收端向发送端发送丢包重传报文;
[0053]
发送端将上一个所述idr帧定义为下一帧并发送至接收端。
[0054]
进一步地,所述向发送端请求重发上一个所述idr帧之后,执行以下步骤:
[0055]
延迟第二时间后,发送端重新每隔gop时间编码并发送idr帧至接收端。
[0056]
进一步地,所述建立相应的所述分机或移动终端与所述主机之间的通信之后,执行以下步骤:
[0057]
将传输音频的优先级设定为大于传输视频的优先级。
[0058]
进一步地,所述将传输音频的优先级设定为大于传输视频的优先级包括:
[0059]
定义音频为主轴、视频为辅轴,接收端以先进先出原则缓存所述音频和所述视频;
[0060]
接收端每次获得所述音频和/或所述视频时,计算当前帧中所述音频的时间戳与所述视频的时间戳的时间差值,根据所述时间差值调节当前帧中的所述视频的播放速度。
[0061]
进一步地,所述根据所述时间差值调节当前帧中的所述视频的播放速度包括:
[0062]
若所述时间差值小于等于250ms,则不调节当前帧中的所述视频的播放速度;
[0063]
若所述时间差值大于250ms、所述视频比所述音频快并且所述视频的缓存数量小于第一数量,则调慢或暂停当前帧中的所述视频的播放速度直至所述时间差值小于等于250ms;
[0064]
若所述时间差值大于250ms、所述视频比所述音频快并且所述视频的缓存数量大于第一数量,则不调节当前帧中的所述视频的播放速度;
[0065]
若所述时间差值大于250ms、所述视频比所述音频慢,则调快当前帧中的所述视频的播放速度直至所述时间差值小于等于250ms。
[0066]
进一步地,在振铃过程中,通过主机同时向所述分机和所述移动终端发送早期视频。
[0067]
进一步提供一种融合局域网和广域网的一呼多sip系统,包括主机、若干分机、若干移动终端,所述主机通过局域网与若干分机建立连接,所述主机通过广域网与若干移动终端建立连接。
[0068]
进一步地,包括以下模块:
[0069]
呼叫发起模块,用于当用户发起呼叫时,通过主机基于sip协议同时向所述分机和所述移动终端发送呼叫请求指令;
[0070]
呼叫取消模块,用于在振铃过程中,当任一所述分机或任一所述移动终端发起挂断时,通过相应的所述分机或所述移动终端向所述主机发送呼叫取消指令;
[0071]
呼叫建立模块,用于当任一所述分机或任一所述移动终端发起接听时,主机向其它所述分机或其它所述移动终端发送呼叫挂断指令,建立相应的所述分机或移动终端与所述主机之间的通信。
[0072]
进一步提供一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种融合局域网和广域网的一呼多sip对讲方法。
[0073]
因此,本发明提供以下的效果和/或优点:
[0074]
本技术的分机无需注册至sip服务器,主机和分机通过局域网进行连接,局域网内不需要sip服务器进行中转数据,因此也就不需要注册分机的信息至sip服务器,可以实现主机直呼局域网分机,或者主机通过sip服务器呼叫广域网移动终端。若其中任一分机或任一移动终端不希望接通或者不希望持续振铃,则通过对应的分机或移动终端挂断振铃,该分机或移动终端自动发送呼叫取消指令(cancel)至主机。此时该分机或移动终端停止振铃,并且主机不再向分机或移动终端持续性发送指令或媒体数据,同时,其他分机或移动终端不受影响,继续保持振铃状态。
[0075]
本技术的主机用同一种协议(sip协议)对局域网分机和广域网手机进行呼叫,系统的复杂度较小。分机不用注册到sip服务器,在只有分机的情况下可以省去sip服务器。主机可同时进行局域网分机和广域网手机呼叫,减小了总呼叫时间。
[0076]
在呼叫中设备网络切换后进行媒体重协商,可保持本呼叫的媒体传输的连续性。
[0077]
本方法可以根据丢包率lr和发送接收回环时间rtt估算出当前网络拥塞程度。新的码率与设定值进行比较,算出最后的调整码率r
new
。在网络恶劣的环境下,特别2g网络环境下,优先保证语音通讯,必要时甚至可停止发送视频图像。
[0078]
本方法在接收端设备上音视频播放过程中通过唇音同步功能,改善了用户体验效果。
[0079]
本方法当接收端检测到丢包,会通知发送方将上一帧编码成idr帧作为下一个idr帧进行发送,由于网络拥塞等情况,在该情况下发送下一个idr帧的发送频率可以减小,即将gop时间延长,从而防止网络拥塞的情况下接收端不断地请求重新发送idr帧造成进一步
拥塞。
[0080]
应当明白,本发明的上文的概述和下面的详细说明是示例性和解释性的,并且意在提供对如要求保护的本发明的进一步的解释。
附图说明
[0081]
图1背景技术中提到的现有的sip对讲系统框图。
[0082]
图2为背景技术中提到的现有的sip对讲的逻辑/时序图。
[0083]
图3为本技术提供的sip对讲系统框图。
[0084]
图4为本技术提供的sip对讲方法的逻辑/时序图。
[0085]
图5为本技术举例的一个idr帧解码后的图片。
[0086]
图6为现有技术在网络拥塞的情况下出现马赛克、雪花等情况的视频图片。
[0087]
图7为本技术提供的方法的流程图。
具体实施方式
[0088]
为了便于本领域技术人员理解,现将实施例结合附图对本发明作进一步详细描述:应了解到,在本实施例中所提及的步骤,除特别说明其顺序的,均可依实际需要调整其前后顺序,甚至可同时或部分同时执行。
[0089]
由于现有技术中,
[0090]
参考图3、4、7,一种融合局域网和广域网的一呼多sip对讲方法,包含以下步骤:
[0091]
s1,将主机通过局域网与若干分机建立连接,将主机通过广域网与若干移动终端建立连接,将所述主机和所述移动终端注册到sip服务器;
[0092]
sip是ietf标准进程的一部分,它是在诸如smtp和http基础之上建立起来的。它用来建立,改变和终止基于ip网络的用户间的呼叫。为了提供电话业务它还需要结合不同的标准和协议:特别是需要确保传输,与当前电话网络的信令互连,能够确保语音质量,能够提供目录,能够鉴权用户等等。主机是指用于向其他多个用户/终端/分机发起视频或语音通讯的终端。
[0093]
本实施例中,只有所述主机和所述移动终端注册到sip服务器,而分机不注册到sip服务器。所述主机和所述移动终端注册到sip服务器是指分机或移动终端定期向网络发送注册请求(register),报告其的当前ip地址、用户名等信息。之后,sip服务器中始终存储了分机或移动终端的信息。
[0094]
s2,当用户发起呼叫时,通过主机基于sip协议同时向所述分机和所述移动终端发送呼叫请求指令;当用户通过主机发起呼叫时,主机通过sip协议同时在局域网向分机发起呼叫、在广域网向移动终端发起呼叫。
[0095]
s3,在振铃过程中,当任一所述分机或任一所述移动终端发起挂断时,通过相应的所述分机或所述移动终端向所述主机发送呼叫取消指令。若其中任一分机或任一移动终端不希望接通或者不希望持续振铃,则通过对应的分机或移动终端挂断振铃,该分机或移动终端发送呼叫取消指令(cancel)至主机。此时该分机或移动终端停止振铃,并且主机不再向分机或移动终端持续性发送指令和媒体数据,同时,其他分机或移动终端不受影响,继续保持振铃状态。
[0096]
s4,当任一所述分机或任一所述移动终端发起接听时,主机向其它所述分机或其它所述移动终端发送呼叫挂断指令,建立相应的所述分机或移动终端与所述主机之间的通信。
[0097]
本步骤中,当用户通过分机或移动终端接听主机的呼叫指令,即表明其他分机或移动终端不再存在与主机建立通信的需求,则通过主机发送呼叫挂断指令到其他分机或移动终端,此时其他分机或移动终端不再振铃。同时,所述分机或移动终端与所述主机之间的建立通信,用户开始通过所述分机或移动终端与所述主机之间对话或视频。
[0098]
本技术通过上述步骤,可以起到振铃时某台分机或移动终端挂断且不影响其它设备继续保持振铃的状态,当任一被呼设备接听后,主机挂断其它路呼叫,并和该设备进行音视频对讲。并且,现有技术中分机和手机都要注册到sip服务器,分机局域网要有到广域网的出口,即使在只有分机的情况下,分机和主机之间的通信数据也需要绕经sip服务器、再回到局域网,增大了分机和主机之间的通信复杂度,降低通信质量。本实施例的主机和分机通过局域网进行连接,局域网内不需要sip服务器进行中转数据,因此也就不需要注册分机的信息至sip服务器,可以实现主机直呼局域网分机,或者主机通过sip服务器呼叫广域网移动终端。
[0099]
下面介绍一些本实施例的优化方向。
[0100]
进一步地,步骤s4中,所述建立相应的所述分机或移动终端与所述主机之间的通信包括以下步骤:
[0101]
若所述分机发起接听,通过所述局域网在所述分机和所述主机之间直接传输媒体流;本步骤中,主机用标准sip协议通过ip地址直呼局域网分机;
[0102]
若所述移动终端发起接听,通过所述广域网在所述移动终端和所述主机之间用nat穿透的方式传输媒体流。本步骤中,主机通过sip服务器和帐号呼叫广域网移动终端。广域网上的媒体用nat穿透方式进行传输,减小了服务器负担和媒体传输延时。
[0103]
进一步地,包括以下步骤:
[0104]
当所述主机或所述移动终端网络切换之后,将所述主机或所述移动终端通过新的网络注册至所述sip服务器;在主机和移动终端进行通信的过程中,由于移动终端可能随时切换网络,例如从4g切换至3g,或者从该基站的4g切换至另一基站的4g,或者从wifi切换只4g等,由于步骤s1中移动终端注册至sip服务器后,sip服务器只储存有注册时移动终端的信息,当网络切换后需要重新注册该移动终端的当前信息。
[0105]
若处于振铃过程中,发送包含新的sdp的更新指令至对方终端或sip服务器;振铃过程中,由于移动终端和主机还未建立通信连接,移动终端只接收主机的呼叫指令,因此只需要直接向对方终端或经过sip服务器转发至对方终端,发送带新sdp的update信令,通过update信令更新。
[0106]
若处于任一所述分机或任一所述移动终端发起接听后,发送包含新的sdp的修改会话指令至对方终端或sip服务器,使用新的媒体地址和端口进行通信。如果对话已接听,则需要向对方终端或经过sip服务器转发至对方终端,发送带新sdp的re-invite信令,通过re-invite信令更新信息,当对方终端返回带新的sdp的200ok信令后,双方使用新的媒体地址和端口发送和接收媒体。
[0107]
本步骤中,sdp是一种会话描述格式,包括会话通知协议(sap)、会话初始协议
(sip)、实时流协议(rtsp)、mime扩展协议的电子邮件以及超文本传输协议(http)。sip对话过程中,可以根据sdp中记载的内容建立连接、传输媒体等。
[0108]
通过本步骤的媒体重协商步骤,可以即使更新移动终端的网络信息,在极短的时间内通过新的端口、地址进行通信,避免出现通信中断等问题。
[0109]
进一步地,所述建立相应的所述分机或移动终端与所述主机之间的通信之后,包括步骤s5。步骤s5可以根据网络拥塞的等级自适应调整码率。当网络拥塞逐渐加大时,自动降低码率,确保对方能清晰流畅看到图像,而不是马赛克,雪花状模糊的图像;当网络恢复时,自动提升码率保证图像质量和流畅性。
[0110]
具体地,步骤s5包括以下步骤:
[0111]
s5.1,根据当前视频编码比特率r计算自适应周期,所述根据当前视频编码比特率r计算自适应周期包括:
[0112]
通过以下代码实现:
[0113][0114]
其中,t
rtcp
为自适应周期。
[0115]
由于在通信过程中,网络拥塞、网络波动等情况均会影响到双方的通信质量。rtcp控制协议可以根据间隔时间t
rtcp
(单位为ms)返回反馈信息。而如何确定t
rtcp
的时间则需要匹配当前网络情况,如果t
rtcp
时间过小则通信过程中不断地返回反馈信息会进一步增加拥塞情况。本步骤在t
rtcp
的计算过程中,可以通过rtcp提供数据分发质量反馈信息,rtp是媒体数据传输协议,rtcp是rtp的控制协议。根据rtcp反馈信息,通过调整源头视频数据码率来达到流控和拥塞控制。
[0116]
根据上述代码可以计算得到自适应周期t
rtcp

[0117]
周期性执行以下步骤:
[0118]
s5.2,通过rtcp发送数据分发质量反馈信息;
[0119]
s5.3,计算丢包率lr和发送接收回环时间rtt;
[0120]
s5.4,根据所述丢包率lr和所述发送接收回环时间rtt调整视频编码比特率。
[0121]
本步骤可以理解为,每间隔t
rtcp
(单位为ms)发送一次质量反馈信息rtcp包,然后从发送质量反馈信息rtcp包、对方终端接收反馈信息rtcp包的过程中,可以获得丢包率lr以及该过程中的回环时间rtt。最后根据所述丢包率lr和所述发送接收回环时间rtt调整视频编码比特率。
[0122]
具体地,s5.3中,计算丢包率lr包括:
[0123]
向接收端发送rtcp sr包并接收接收端返回的rtcp rr包;
[0124]
根据rtcp rr包获取其中的rtp总包数n,从rtcp rr包中获取接收端丢失的rtp包数n
lost

[0125]
计算丢包率lr=n
lost
/n。
[0126]
根据rtcp rr包中的最大序列号值可得到此次rtp总包数n,再从rtcp rr包中取出packets lost字段可得到接收端丢失的rtp包数n
lost
,然后即可根据上述公式进行计算丢包率lr。现有技术中,rtcp中定义了五种类型的报文,其中,sr和rr是其中主要的报文类型,用于发送和接受数据源的统计信息。
[0127]
具体地,s5.3中,计算发送接收回环时间rtt包括:
[0128]
s5.3.1,获取发送端接收到rr包的当前时间戳、接收端从接到sr包到发送rr包之间的延时、发送端发送sr包时的当前时间戳;
[0129]
s5.3.2,发送接收回环时间rtt=发送端接收到rr包的当前时间戳-接收端从接到sr包到发送rr包之间的延时-发送端发送sr包时的当前时间戳。
[0130]
具体地,s5.4中,所述根据所述丢包率lr和所述发送接收回环时间rtt调整视频编码比特率包括:
[0131]
s5.4.1,根据所述丢包率lr和所述发送接收回环时间rtt对网络拥塞程度进行分级,根据所述网络拥塞程度选择相应的所需视频编码比特率r
new

[0132]
在上述步骤中获得了所述丢包率lr、所述发送接收回环时间rtt,此时,本步骤对通过其对网络拥塞程度进行分级,例如可以分为三级:低、中、高。具体地,所述根据所述丢包率lr和所述发送接收回环时间rtt对网络拥塞程度进行分级,根据所述网络拥塞程度选择相应的所需视频编码比特率r
new
包括:
[0133]
s5.4.2,计算当前帧之前的第一时间内的最小码率r0、当前帧距离上一次改变所需视频编码比特率r
new
的时间差t0;
[0134]
本步骤中,第一时间是1秒,在其他实施例中也可以是0-2秒内的任意时间。通过截取当前帧之前的1秒内的码率情况,计算得到最小码率r0;同时,在通信刚建立的前一段时间内,计算最小码率是没有意义的,例如统计的总rtp包数小于20时,则此时先不计算最小码率也不做任何处理。待统计的总rtp包数大于20后才开始执行本步骤。
[0135]
s5.4.3,通过以下公式计算对应的所需视频编码比特率r
new

[0136][0137]
本步骤中,通过所述丢包率lr、所述发送接收回环时间rtt以及r0将网络拥塞度分为三个等级,例如当丢包率lr小于等于0.02,认为是网络拥塞度低,当丢包率lr大于0.02且小于等于0.1,为是网络拥塞度中,当丢包率lr大于0.1且t0大于等于(300 rtt),则认为网络拥塞度高。
[0138]
通过上述步骤获得了网络拥塞度的分级之后,本步骤根据上述公式计算所需视频编码比特率r
new

[0139]
s5.4.4,设置r
new
为下一时间内的视频编码比特率。
[0140]
本步骤可以根据丢包率lr和发送接收回环时间rtt估算出当前网络拥塞程度。新的码率与设定值进行比较,算出最后的调整码率r
new
。在网络恶劣的环境下,特别2g网络环境下,优先保证语音通讯,必要时甚至可停止发送视频图像。
[0141]
通常rtp接收端发现某一包数据或者n包数据确实没有收到,即在经过中间网络设备时丢掉了,接收端才会向发送端发送rtcp的nack报文,向发送端要求重传相应的rtp包。在网络环境恶劣的情况下,比如网络拥塞比较严重,丢包率可能比较高,简单实用nack申请重传的机制,这样就会有大量的rtcp nack报文,发送端收到相应的报文,又会发送大量指定的rtp报文,反而会增加网络的拥塞程度,可能导致更高的丢包率,导致接收端解码失败,导致花屏等马赛克现象。因此进一步地,所述建立相应的所述分机或移动终端与所述主机之间的通信之后,执行步骤s6:
[0142]
s6.1,发送端每隔gop时间编码并发送idr帧至接收端,接收端解码所述idr帧并输出相应的图像;
[0143]
s6.2,当接收端视频解码中检测到rtp序列号不连续或者连续两帧解码失败,向发送端请求重发上一个所述idr帧。
[0144]
本实施例中,在h.264中,i帧分为普通i帧和idr帧(特殊i帧);idr帧阻断了误差的积累,idr帧后面的帧都不能参考该idr帧前面的帧,普通的i帧并没有阻断误差的积累。idr帧一定是i帧,但i帧不一定是idr帧。在h264中图像以序列为单位进行组织,一个序列是一段图像编码后的数据流,以i帧开始,到下一个i帧结束。一个序列的第一个图像叫做idr图像,解码器收到idr帧时,将所有的参考帧队列丢弃。“gop时间”是指是两个i帧之间的间隔时长。本实施例中,根据视频通信的需要,gop时间一般为1-2秒,本实施例采用1秒。
[0145]
步骤s6.1中每隔gop时间编码并发送idr帧至接收端,则接收端可以优先解析该idr帧并直接将其输出,接收端的屏幕立刻得到一张画面,如图5所示。当出现网络拥塞时,现有技术需要接收端向发送端发送rtcp的nack报文,向发送端要求重传相应的rtp包,当网络拥塞严重的情况下将会出现如图6所示的图片,其布满了马赛克等。为了避免该现象,本实施例通过步骤s6.2解决,本步骤摒弃了接收端向发送端发送rtcp的nack报文,向发送端要求重传相应的rtp包的操作,转为向发送端请求重发上一个所述idr帧,而一个idr帧包含了完整的图像,则当接收端视频解码中检测到rtp序列号不连续或者连续两帧解码失败时,本步骤重新申请的是一个完整的图像,此时接收端重新解码出如图5所示的上一个所述idr帧,从而不会出现雪花、马赛克等情况。
[0146]
发送端在开始发送视频后3秒内,发送端每隔1s发送1个idr帧,有利于接收端快速出稳定的视频图像。在这3秒内,对接收端发送过来的fir请求不予处理。
[0147]
3秒后,发送端在收到接收端发送过来的rtcp pli或fir报文后,通过rtcp事件通知应用层,触发下一帧直接传一个idr帧,但要保证idr帧的最小间隔为300ms。如果刚发送过idr帧,继续下发p(b)帧过程中,又在300ms内收到对方i帧重发请求,这时停发p(b)帧,直到300ms过后才发送idr帧。如果这期间收到不管多少个i帧重发请求,也都在300ms过后一并处理,且只发送一次idr帧。
[0148]
具体地,所述向发送端请求重发上一个所述idr帧包括:
[0149]
s6.2.1,接收端向发送端发送丢包重传报文;
[0150]
s6.2.2,发送端将上一个所述idr帧定义为下一帧并发送至接收端。现有技术中接收端接收到idr帧后会将之前的所有缓冲帧删除,本步骤通过发送端重新定义上一个idr帧为下一帧,则能够在接收端的请求下通过发送端再次发送上一个idr帧。
[0151]
进一步地,所述向发送端请求重发上一个所述idr帧之后,执行以下步骤:
[0152]
s6.3,延迟第二时间后,发送端重新每隔gop时间编码并发送idr帧至接收端。
[0153]
本步骤中,由于步骤s6.2.2中,接收端检测到丢包,会用rtcp通知发送方将上一帧编码成idr帧作为下一个idr帧进行发送,由于网络拥塞等情况,所以发送端执行完s6.2.2之后,发送下一个idr帧的发送频率可以减小,即将gop时间延长,从而防止网络拥塞的情况下接收端不断地请求重新发送idr帧造成进一步拥塞。本实施例中,可以将第二时间设置为10-15s,本实施例具体采用10s。即在步骤s6.3中,优化成等待10秒后才开始重新回到步骤s6.1发送端每隔gop时间编码并发送idr帧至接收端,接收端解码所述idr帧并输出相应的图像。
[0154]
进一步地,当网络拥塞的情况下,接收端解析出的视频和音频会出现不同步的情况,而用户在视频通信的过程中会认为视频中的嘴唇动作与声音不同步,为了减轻或避免该情况,本技术在下述步骤中提出解决方案。
[0155]
所述建立相应的所述分机或移动终端与所述主机之间的通信之后,执行以下步骤:
[0156]
s7,将传输音频的优先级设定为大于传输视频的优先级。
[0157]
在本步骤中,优先级音频》视频。因为要保证音频优先正常传输,当接收端接收到音频数据则直接播放,当接收端接收到视频数据时,需要参考音频时间戳来播放。若以视频为时间戳会出现网络差的情况下,音频为了匹配视频而导致延整个过程延迟播放。
[0158]
具体地,所述将传输音频的优先级设定为大于传输视频的优先级包括:
[0159]
s7.1,定义音频为主轴、视频为辅轴,接收端以先进先出原则缓存所述音频和所述视频;本实施例中,音视频先缓存0.6秒,设定最大的缓冲区为2秒即音频存储100个,视频存储50个,超过缓冲区的百分之10则删除第一个数据
[0160]
s7.2,接收端每次获得所述音频和/或所述视频时,计算当前帧中所述音频的时间戳与所述视频的时间戳的时间差值,根据所述时间差值调节当前帧中的所述视频的播放速度。
[0161]
具体地,所述根据所述时间差值调节当前帧中的所述视频的播放速度包括:
[0162]
若所述时间差值小于等于250ms,则不调节当前帧中的所述视频的播放速度;这是因为,用户对于时间差值小于等于250ms的视频和音频不会强烈的感知到唇音不同步的现象,时间差值可以是视频时间戳-音频时间戳,也可以是音频时间戳-视频时间戳。
[0163]
若所述时间差值大于250ms、所述视频比所述音频快并且所述视频的缓存数量小于第一数量,则调慢或暂停当前帧中的所述视频的播放速度直至所述时间差值小于等于250ms;当前情况下,视频比音频快,因此需要将视频缓慢播出或者暂停播出,使音频和视频之间同步。
[0164]
若所述时间差值大于250ms、所述视频比所述音频快并且所述视频的缓存数量大于第一数量,则不调节当前帧中的所述视频的播放速度;该情况下,缓存内的视频比音频多,而后续又有可能因为网络拥塞等情况丢失视频包造成视频缓存减少,因此该情况下不对视频调慢或调快处理,使其后续自然地在网络拥塞的情况下重新同步。
[0165]
若所述时间差值大于250ms、所述视频比所述音频慢,则调快当前帧中的所述视频的播放速度直至所述时间差值小于等于250ms。当遇到网络拥塞,不同步的接收到视频音频数据,此时有可能视频缓冲区的个数超过预先设定的个数的情况,则需要将视频快速输出、
播放。
[0166]
本实施例中,第一数量可以是50。在其他实施例中也可以是10-100中的任意数字。
[0167]
进一步地,在振铃过程中,通过主机同时向所述分机和所述移动终端发送早期视频。通常,主叫用户发起呼叫后用户交谈并不会立即开始,等待时间一般是几秒到几十秒,这完全取决于被叫用户的何时应答。在被叫应答之前,主叫用户与网络之间也可以有媒体流产生,与常规媒体相区别,这种媒体被称为早期视频。
[0168]
进一步提供一种融合局域网和广域网的一呼多sip系统,参考图3,包括主机、若干分机、若干移动终端,所述主机通过局域网与若干分机建立连接,所述主机通过广域网与若干移动终端建立连接。
[0169]
具体地,一呼多sip系统包括以下模块:
[0170]
呼叫发起模块,用于当用户发起呼叫时,通过主机基于sip协议同时向所述分机和所述移动终端发送呼叫请求指令;
[0171]
呼叫取消模块,用于在振铃过程中,当任一所述分机或任一所述移动终端发起挂断时,通过相应的所述分机或所述移动终端向所述主机发送呼叫取消指令;
[0172]
呼叫建立模块,用于当任一所述分机或任一所述移动终端发起接听时,主机向其它所述分机或其它所述移动终端发送呼叫挂断指令,建立相应的所述分机或移动终端与所述主机之间的通信。
[0173]
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时实现所述的一种融合局域网和广域网的一呼多sip对讲方法。
[0174]
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0175]
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0176]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0177]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0178]
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造
性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
[0179]
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
[0180]
在本发明中,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”、“固定”等术语应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或成一体;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通或两个元件的相互作用关系。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。
[0181]
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不应理解为必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献