Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
VIDEO CALLING METHOD FOR ASYMMETRIC NETWORKING SYSTEM, TERMINAL, SERVER AND SYSTEM
Document Type and Number:
WIPO Patent Application WO/2015/039579
Kind Code:
A1
Abstract:
Disclosed are a video calling method for an asymmetric networking system, a terminal, a server and a system. The asymmetric networking system comprises a first terminal which supports NAT (network address translation), an intermediate server and a second terminal which does not support NAT. The video calling method comprises: when the detection of the connectivity of the network address translation between a first terminal and an intermediate server is completed, the first terminal sending a key frame request to a second terminal; and the first terminal receiving a key frame which is returned by the second terminal in response to the key frame request, and parsing a subsequent difference frame, so as to normally display a video which is sent by the second terminal. By means of the above-mentioned method, the present invention can effectively reduce the length of time for which the video cannot be normally displayed, thereby creating a better service experience for a user.

Inventors:
TIAN ZHENHUA (CN)
WU YIMIN (CN)
Application Number:
PCT/CN2014/086281
Publication Date:
March 26, 2015
Filing Date:
September 11, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04N21/6437; H04N7/14; H04N21/647
Foreign References:
CN101651815A2010-02-17
CN102739815A2012-10-17
CN101998101A2011-03-30
CN1717935A2006-01-04
Download PDF:
Claims:
权 利 要 求

1.一种不对称组网系统视频呼叫方法, 所述不对称组网系统包括支 持网络地址转换的第一终端、 中间服务器以及不支持网络地址转换的第 二终端, 其特征在于, 所述方法包括:

在所述第一终端与所述中间服务器间的网络地址转换连通性检测 完成时, 所述第一终端向所述第二终端发送关键帧请求;

所述第一终端接收所述第二终端响应所述关键帧请求而返回的关 键帧, 解析后续的差别帧而正常显示所述第二终端发来的视频。

2.根据权利要求 1所述的方法, 其特征在于,

所述向所述第二终端发送关键帧请求的步骤包括: 所述第一终端在 媒体层面或信令层面发出关键帧请求, 并通过所述中间服务器转发给所 述第二终端。

3.根据权利要求 1所述的方法, 其特征在于,

所述在所述第一终端与所述中间服务器间的网络地址转换连通性 检测完成之前, 所述方法还包括:

所述第一终端通过所述中间服务器向所述第二终端发出视频请求, 所述视频请求携带视频编解码信息以及所述第一终端的网络地址转换 连通性检测候选地址;

所述第一终端接收携带所述中间服务器的网络地址转换连通性检 测候选地址的请求应答消息, 开始与所述中间服务器进行网络地址转换 连通性检测。

4.一种不对称组网系统视频呼叫方法, 所述不对称组网系统包括支 持网络地址转换的第一终端、 中间服务器以及不支持网络地址转换的第 二终端, 其特征在于, 所述方法包括:

在所述第一终端与所述中间服务器间的网络地址转换连通性检测 完成时, 所述中间服务器向所述第二终端发送关键帧请求;

所述中间服务器接收所述第二终端响应所述关键帧请求而返回的 关键帧, 并将所述关键帧转发给所述第一终端, 以使所述第一终端能够 正常显示第二终端发来的视频。

5.根据权利要求 4所述的方法, 其特征在于,

所述中间服务器向所述第二终端发送关键帧请求的步骤包括: 所述 中间服务器在媒体层面或信令层面向所述第二终端发送关键帧请求。

6.根据权利要求 4所述的方法, 其特征在于,

所述在所述第一终端与所述中间服务器间的网络地址转换连通性 检测完成之前, 还包括:

所述中间服务器接收所述第一终端的视频请求, 所述视频请求携带 视频编解码信息以及所述第一终端的网络地址转换连通性检测候选地 址;

所述中间服务器删除所述视频请求中的网络地址转换连通性检测 候选地址后将所述视频请求转发给所述第二终端。

7.根据权利要求 6所述的方法, 其特征在于,

所述将所述视频请求转发给所述第二终端的步骤之后, 还包括: 所述中间服务器接收来自所述第二终端的请求应答消息, 添加自身 的网络地址转换连通性检测候选地址到所述请求应答消息中, 然后将请 求应答消息转发给所述第一终端。

8.—种支持网络地址转换的终端, 其特征在于, 所述支持网络地址 转换的终端与不支持网络地址转换的终端通过中间服务器进行视频呼 叫, 所述支持网络地址转换的终端包括请求模块和接收模块, 其中: 所述请求模块用于在所述支持网络地址转换的终端与所述中间服 务器间的网络地址转换连通性检测完成时, 向所述不支持网络地址转换 的终端发送关键帧请求;

所述接收模块用于接收所述不支持网络地址转换的终端响应所述 关键帧请求而返回的关键帧, 解析后续的差别帧而正常显示所述不支持 网络地址转换的终端发来的视频。

9.根据权利要求 8所述的终端, 其特征在于,

所述请求模块用于在媒体层面或信令层面发出关键帧请求, 并通过 所述中间服务器转发给所述不支持网络地址转换的终端。

10.根据权利要求 8所述的终端, 其特征在于, 所述请求模块用于通过所述中间服务器向所述不支持网络地址转 换的终端发出视频请求, 所述视频请求携带视频编解码信息以及所述支 持网络地址转换的终端的网络地址转换连通性检测候选地址;

所述接收模块用于接收携带所述中间服务器的网络地址转换连通 性检测候选地址的请求应答消息, 开始与所述中间服务器进行网络地址 转换连通性检测。

11.一种服务器, 其特征在于, 支持网络地址转换的终端与不支持网 络地址转换的终端通过所述服务器进行视频呼叫, 所述服务器包括请求 模块和转发模块, 其中:

所述请求模块用于在所述支持网络地址转换的终端与所述服务器 间的网络地址转换连通性检测完成时, 向所述不支持网络地址转换的终 端发送关键帧请求;

所述转发模块用于接收所述不支持网络地址转换的终端响应所述 关键帧请求而返回的关键帧, 并将所述关键帧转发给所述支持网络地址 转换的终端, 以使所述支持网络地址转换的终端能够正常显示所述不支 持网络地址转换的终端发来的视频。

12.根据权利要求 11所述的服务器, 其特征在于,

所述请求模块用于在媒体层面或信令层面向所述不支持网络地址 转换的终端发送关键帧请求。

13.根据权利要求 11所述的服务器, 其特征在于,

所述转发模块用于接收所述支持网络地址转换的终端的视频请求, 所述视频请求携带视频编解码信息以及所述支持网络地址转换的终端 的网络地址转换连通性检测候选地址, 删除所述视频请求中的网络地址 转换连通性检测候选地址后将所述视频请求转发给所述不支持网络地 址转换的终端。

14.根据权利要求 13所述的服务器, 其特征在于,

所述转发模块用于接收来自所述不支持网络地址转换的终端的请 求应答消息, 添加所述服务器的网络地址转换连通性检测候选地址到所 述请求应答消息中, 然后将请求应答消息转发给所述支持网络地址转换 的终端。

15.—种网络系统, 其特征在于, 所述网络系统包括权利要求 8-10 任一项所述的支持网络地址转换的终端以及权利要求 11-14任一项所述 的服务器和不支持网络地址转换的终端。

Description:
不对称组网系统视频呼叫方法及终端、 服务器和系统 技术领域

本发明涉及通信领域, 特别是涉及一种不对称组网系统视频呼叫方 法及终端、 服务器和系统。 背景技术

视频编解码的传输, 如 H.264 的媒体传输釆用实时传输协议 (Real-time Transport Protocol , RTP )方式, 而 RTP是承载在用户数据包 协议 (User Datagram Protocol, UDP)之上, 由于 UDP是无连接, 不可靠 的传输协议, 因此视频流包在网络上传输, 容易出现丟包的情况。

在视频传输中, 一副画面可以分成关键帧和差别帧 (P帧)进行传输, 关键帧是视频传输的关键,后续的 P帧的解码都是依靠关键帧来完成的。 如果关键帧丟失, P帧无法解码, 解码器也就无法正常解析收到的视频 画面。

H.264相关标准中定义媒体关键帧请求机制, 即当一段解码器发现 丟失关键帧后, 可以主动向另外一个端发送关键帧请求而获取 关键帧实 现正常解码。 但是, 这种方式, 无法正常显示对方视频的时间相对比较 长。 另外, 对于一端是支持网络地址转换 (NAT)的终端, 而另一端是不 支持 NAT的终端的组网系统来说, NAT连通性检测也可能导致关键帧 的丟失,如果仍釆用上述的方式来处理, 支持 NAT的终端在接收到视频

发明内容

本发明主要解决的技术问题是不对称组网系统 下, 如何缩短支持 NAT终端在接收到视频请求应答后无法正常显示 对方视频的时间。

有鉴于此, 本申请提供一种不对称组网系统视频呼叫方法 及终端、 服务器和系统, 能够有效减少视频无法正常显示的时间, 给用户更好的 业务体验。

第一方面, 提供一种不对称组网系统视频呼叫方法, 所述不对称组 网系统包括支持网络地址转换的第一终端、 中间服务器以及不支持网络 地址转换的第二终端, 所述方法包括: 在所述第一终端与所述中间服务 器间的网络地址转换连通性检测完成时, 所述第一终端向所述第二终端 发送关键帧请求; 所述第一终端接收所述第二终端响应所述关键 帧请求 而返回的关键帧, 解析后续的差别帧而正常显示所述第二终端发 来的视 频。

结合第一方面, 在第一方面的第一种可能的实现方式中: 所述向所 述第二终端发送关键帧请求的步骤包括: 所述第一终端在媒体层面或信 令层面发出关键帧请求, 并通过所述中间服务器转发给所述第二终端。

结合第一方面, 在第一方面的第二种可能的实现方式中: 所述在所 述第一终端与所述中间服务器间的网络地址转 换连通性检测完成之前, 所述方法还包括: 所述第一终端通过所述中间服务器向所述第二 终端发 出视频请求, 所述视频请求携带视频编解码信息以及所述第 一终端的网 络地址转换连通性检测候选地址; 所述第一终端接收携带所述中间服务 器的网络地址转换连通性检测候选地址的请求 应答消息, 开始与所述中 间服务器进行网络地址转换连通性检测。

第二方面, 提供一种不对称组网系统视频呼叫方法, 所述不对称组 网系统包括支持网络地址转换的第一终端、 中间服务器以及不支持网络 地址转换的第二终端, 所述方法包括: 在所述第一终端与所述中间服务 器间的网络地址转换连通性检测完成时, 所述中间服务器向所述第二终 端发送关键帧请求; 所述中间服务器接收所述第二终端响应所述关 键帧 请求而返回的关键帧, 并将所述关键帧转发给所述第一终端, 以使所述 第一终端能够正常显示第二终端发来的视频。

结合第二方面, 在第二方面的第一种可能的实现方式中: 所述中间 服务器向所述第二终端发送关键帧请求的步骤 包括: 所述中间服务器在 媒体层面或信令层面向所述第二终端发送关键 帧请求。

结合第二方面, 在第二方面的第二种可能的实现方式中: 所述在所 述第一终端与所述中间服务器间的网络地址转 换连通性检测完成之前, 还包括: 所述中间服务器接收所述第一终端的视频请求 , 所述视频请求 携带视频编解码信息以及所述第一终端的网络 地址转换连通性检测候 选地址; 所述中间服务器删除所述视频请求中的网络地 址转换连通性检 测候选地址后将所述视频请求转发给所述第二 终端。

结合第二方面的第二种可能的实现方式, 在第二方面的第三种可能 的实现方式中: 所述将所述视频请求转发给所述第二终端的步 骤之后, 还包括: 所述中间服务器接收来自所述第二终端的请求 应答消息, 添加 自身的网络地址转换连通性检测候选地址到所 述请求应答消息中, 然后 将请求应答消息转发给所述第一终端。

第三方面, 提供一种支持网络地址转换的终端, 所述支持网络地址 转换的终端与不支持网络地址转换的终端通过 中间服务器进行视频呼 叫, 所述支持网络地址转换的终端包括请求模块和 接收模块, 其中: 所 述请求模块用于在所述支持网络地址转换的终 端与所述中间服务器间 的网络地址转换连通性检测完成时, 向所述不支持网络地址转换的终端 发送关键帧请求; 所述接收模块用于接收所述不支持网络地址转 换的终 端响应所述关键帧请求而返回的关键帧, 解析后续的差别帧而正常显示 所述不支持网络地址转换的终端发来的视频。

结合第三方面, 在第三方面的第一种可能的实现方式中: 所述请求 模块用于在媒体层面或信令层面发出关键帧请 求, 并通过所述中间服务 器转发给所述不支持网络地址转换的终端。

结合第三方面, 在第三方面的第二种可能的实现方式中: 所述请求 模块用于通过所述中间服务器向所述不支持网 络地址转换的终端发出 视频请求, 所述视频请求携带视频编解码信息以及所述支 持网络地址转 换的终端的网络地址转换连通性检测候选地址 ; 所述接收模块用于接收 携带所述中间服务器的网络地址转换连通性检 测候选地址的请求应答 消息, 开始与所述中间服务器进行网络地址转换连通 性检测。

第四方面, 提供一种服务器, 支持网络地址转换的终端与不支持网 络地址转换的终端通过所述服务器进行视频呼 叫, 所述服务器包括请求 模块和转发模块, 其中: 所述请求模块用于在所述支持网络地址转换的 终端与所述服务器间的网络地址转换连通性检 测完成时, 向所述不支持 网络地址转换的终端发送关键帧请求; 所述转发模块用于接收所述不支 持网络地址转换的终端响应所述关键帧请求而 返回的关键帧, 并将所述 关键帧转发给所述支持网络地址转换的终端, 以使所述支持网络地址转 换的终端能够正常显示所述不支持网络地址转 换的终端发来的视频。

结合第四方面, 在第四方面的第一种可能的实现方式中: 所述请求 模块用于在媒体层面或信令层面向所述不支持 网络地址转换的终端发 送关键帧请求。

结合第四方面, 在第四方面的第二种可能的实现方式中: 所述转发 模块用于接收所述支持网络地址转换的终端的 视频请求, 所述视频请求 携带视频编解码信息以及所述支持网络地址转 换的终端的网络地址转 换连通性检测候选地址, 删除所述视频请求中的网络地址转换连通性检 测候选地址后将所述视频请求转发给所述不支 持网络地址转换的终端。

结合第四方面的第二种可能的实现方式, 在第四方面的第三种可能 的实现方式中: 所述转发模块用于接收来自所述不支持网络地 址转换的 终端的请求应答消息, 添加所述服务器的网络地址转换连通性检测候 选 地址到所述请求应答消息中, 然后将请求应答消息转发给所述支持网络 地址转换的终端。

第五方面, 提供一种网络系统, 所述网络系统包括上述第三方面以 及第三方面的任一种可能的实现方式中的支持 网络地址转换的终端和 第四方面以及第四方面的任一种可能的实现方 式中的服务器, 还包括不 支持网络地址转换的终端。

本申请的有益效果是: 区别于现有技术的情况, 本申请不对称组网 系统视频呼叫方法, 在支持 NAT的终端与中间服务器之间的 NAT连通 性检测完成时,主动向不支持 NAT的终端发送关键帧请求,从而接收不 支持 NAT的终端的关键帧而实现视频正常解码。通过 这样的方式,有效 缩短支持 NAT 终端在接收视频请求应答消息后无法正常显示 对端视频 的时间, 给用户更好的业务体验。 附图说明 图 1是本申请不对称组网系统视频呼叫方法第一 实施方式的流程 图;

图 2是本申请不对称组网系统视频呼叫方法第二 实施方式的流程 图;

图 3是本申请不对称组网系统视频呼叫方法第三 实施方式的流程 图;

图 4是本申请不对称组网系统视频呼叫方法第四 实施方式的流程 图;

图 5是本申请不对称组网系统视频呼叫方法第五 实施方式的流程 图;

图 6是本申请支持 NAT的终端一个实施方式的结构示意图; 图 7是本申请服务器一个实施方式的结构示意图

图 8是本申请支持 NAT的终端另一个实施方式的结构示意图。 具体实施方式

目前视频编解码的传输, 如 H.264 的媒体传输釆用实时传输协议 RTP方式, 而 RTP是承载在用户数据包协议 UDP之上, 由于 UDP是无 连接, 不可靠的传输协议, 因此视频流包在网络上传输, 容易出现丟包 的情况, 从而导致关键帧丟失而无法正常显示对端发来 的视频。

NAT 穿越, 常见的有 STU (Simple Traversal of UDP Through Network Address Translators)和 TURN(Traversal Using Relay NAT)两种方 式, 二者比较鲜明的不同点是 TURN是一个中间服务器, 所有需要穿越 NAT的数据包都发送到 TURN服务器做中转。 而 STUN无需做数据包 的中转。

在 NAT穿越技术中, 当终端获取到 NAT设备地址或 TURN设备地 址结束后, 都需要进行连通性检测。 所谓连通性检测, 就是在多个 NAT 地址准备之间进行是否连通的检测, 目的就是确定从本端到对端哪个路 径是可达的。 当检测完成确定一条通路时, 就可以发送数据包了。 一般 连通性检测的 NAT 连通性检测候选地址是在呼叫信令协议(Sessio n Initiation Protocol , SIP)消息中会话描述协议 (Session Description Protocol , SDP)携带的, 因此完成 SIP的媒体信息交换是进行 NAT连通 性检测的第一步 (因为请求 /应答完成后, 彼此才能知道对方的 NAT连 通性检测候选地址,才能根据对方的 NAT连通性检测候选地址进行连通 性检测 )。

在不对称组网系统, 即一端是支持 NAT 的终端而另一端是不支持 NAT的终端进行视频呼叫时, 由于连通性检测的发生是在支持 NAT的 终端与中间某个节点(中间节点的主要作用是 终结所有的 NAT流程, 因 为被叫终端是不支持 NAT的), 因此作为不支持 NAT终端而言, 并不知 道支持 NAT的终端与中间服务器间的 NAT检测是否已经完成, 是否可 以正常接收或发送数据。不支持 NAT的终端有可能是在完成媒体信息交 换流程后就开始发送数据。 因此, 由于连通性检测的影响, 支持 NAT 的终端可能在接收视频请求应答后一段时间无 法正常显示对端发来的 视频图像。

有鉴于此, 本申请提供一种不对称组网系统视频呼叫方法 及终端、 服务器和系统, 旨在解决不对称组网系统视频呼叫时,支持 NAT的终端 在接收视频请求应答后较长时间无法正常显示 对端发来的视频图像的 问题。

以下结合具体实施方式, 对本申请要求保护的技术方案进行进一步 地阐述, 但是并不用以限定本申请要求保护的范围。

请参阅图 1 , 图 1是本申请不对称组网系统视频呼叫方法的第 个 实施方式的流程图,本实施方式中,不对称组 网系统包括支持 NAT的终 端、 中间服务器以及不支持 NAT的终端,本实施方式是以不对称组网系 统中支持 NAT的终端的角度进行描述,本实施方式的不对 称组网系统视 频呼叫方法包括:

步骤 S101 :在支持网络地址转换的第一终端与中间服务 间的网络 地址转换连通性检测完成时, 第一终端向不支持网络地址转换的第二终 端发送关键帧请求;

支持 NAT的第一终端在中间服务器返回不支持 NAT的第二终端的 请求应答消息后,得知中间服务器的 NAT连通性候选地址而开始与中间 服务器进行连通性检测。 在检测完成时, 第一终端主动向第二终端发送 关键帧请求, 以避免关键帧丟失而导致长时间无法正常显示 第二终端发 来的视频图像。

实际应用过程中, 第一终端可以通过媒体层面或信令层面发出关 键 帧请求, 并通过中间服务器转发给第二终端。

步骤 S102: 第一终端接收第二终端响应关键帧请求而返回 的关键 帧, 解析后续的差别帧而正常显示第二终端发来的 视频;

第二终端接收到来自第一终端的关键帧请求后 , 向第一终端返回请 求应答消息, 请求应答消息中携带第一终端请求的关键帧。 第二终端将 请求应答消息返回到中间服务器, 由中间服务器转发给第一终端。

第一终端接收返回的关键帧, 可以正常解析后续的 P帧, 显示第二 终端发来的视频正常。

通过上述实施方式的描述, 可以理解, 本申请不对称组网系统视频 呼叫方法, 在支持 NAT的终端与中间服务器之间的 NAT连通性检测完 成时,主动向不支持 NAT的终端发送关键帧请求,从而接收不支持 NAT 的终端的关键帧而实现视频正常解码。 通过这样的方式, 有效缩短支持 NAT的终端在接收视频请求应答消息后无法正常 显示对端视频的时间, 给用户更好的业务体验。

请参阅图 2, 图 2是本申请不对称组网系统视频呼叫方法第二 实 施方式的流程图,本实施方式中,不对称组网 系统包括支持 NAT的终端、 中间服务器以及不支持 NAT的终端,本实施方式是以不对称组网系统中 支持 NAT的终端的角度进行描述,本实施方式的不对 称组网系统视频呼 叫方法包括:

步骤 S201 :支持网络地址转换的第一终端通过中间服务 向不支持 网络地址转换的第二终端发出视频请求;

支持 NAT的第一终端发起视频请求,携带视频编解码 信息以及自身 NAT连通性检测候选地址在 SDP中, 中间服务器收到携带了 NAT连通 性检测候选地址的视频请求后,去掉视频请求 中的 NAT连通性检测候选 地址, 然后将视频请求发送给不支持 NAT的第二终端。

不支持 NAT的第二终端发送没有携带 NAT连通性检测候选地址的 请求应答消息给中间服务器, 中间服务器收到请求应答消息后, 添加自 身的 NAT连通性检测候选地址信息到请求应答消息后 ,将请求应答消息 转发给支持 NAT的第一终端。

步骤 S202:第一终端接收携带中间服务器的网络地址 换连通性检 测候选地址的请求应答消息, 开始与中间服务器进行网络地址转换连通 性检测;

支持 NAT的第一终端接收通过中间服务器转发的请求 应答消息,完 成了媒体信息交换,得到了彼此的 NAT连通性检测候选地址,开始与中 间服务器进行 NAT连通性检测。

不支持 NAT的第二终端可能在第一终端与中间服务器的 NAT连通 性检测完成之前就开始发送视频数据, 即发送第一个关键帧。 由于第一 终端与中间服务器的 NAT连通性检测尚未完成,因此可能丟弃第二终 端 的第一个关键帧。

步骤 S203:在第一终端与中间服务器间的网络地址转 连通性检测 完成时, 第一终端向第二终端发送关键帧请求;

支持 NAT的第一终端在发现 NAT检测完成后, 与对端建立了通路 可以开始传输数据。 这时第一终端向第二终端开始发送视频。 同时, 第 一终端在媒体层面或信令层面主动发送一个关 键帧请求消息, 比如在媒 体层面主动发送一个关键帧请求实时传输控制 协议 (Real-time Transport Control Protocol, RTCP)消息, 或在信令层面主动发送一个 INFO 消息 ( INFO消息的目的是沿着 SIP信令通路携带应用层消息)并通过中间 服务器转发给不支持 NAT的第二终端。

步骤 S204: 第一终端接收第二终端响应关键帧请求而返回 的关键 帧, 解析后续的差别帧而正常显示第二终端发来的 视频;

不支持 NAT的第二终端收到关键帧请求消息后,主动发 送一个关键 帧到中间服务器, 中间服务器将第二终端发来的关键帧转发到第 一终 端, 第一终端收到关键帧后, 能够正常解析后续的 P帧, 显示对端视频 画面正常。

请参阅图 3 , 图 3是本申请不对称组网系统视频呼叫方法第三 实 施方式的流程图,本实施方式中,不对称组网 系统包括支持 NAT的终端、 中间服务器以及不支持 NAT的终端,本实施方式是以不对称组网系统的 中间服务器的角度进行描述, 本实施方式的不对称组网系统视频呼叫方 法包括:

步骤 S301 :在支持网络地址转换的第一终端与中间服务 间的网络 地址转换连通性检测完成时, 中间服务器向不支持网络地址转换的第二 终端发送关键帧请求;

支持 NAT的第一终端在中间服务器返回不支持 NAT终端的请求应 答消息后,得知中间服务器的 NAT连通性候选地址而开始与中间服务器 进行连通性检测。 在检测完成时, 中间服务器主动向第二终端发送关键 帧请求, 以避免关键帧丟失而导致第一终端长时间无法 正常显示第二终 端发来的视频图像。

实际应用过程中, 中间服务器可以通过媒体层面或信令层面向第 二 终端发出关键帧请求。

步骤 S302: 中间服务器接收第二终端响应关键帧请求而返 回的关键 帧并转发给第一终端;

第二终端接收到关键帧请求后, 向中间服务器返回请求应答消息, 请求应答消息中携带中间服务器所请求的关键 帧。 中间服务器将关键帧 转发给第一终端。

第一终端接收返回的关键帧, 可以正常解析后续的 P帧, 显示第二 终端发来的视频正常。

请参阅图 4, 图 4是本申请不对称组网系统视频呼叫方法第四 实 施方式的流程图,本实施方式中,不对称组网 系统包括支持 NAT的终端、 中间服务器以及不支持 NAT的终端,本实施方式是以不对称组网系统的 中间服务器的角度进行描述, 本实施方式的不对称组网系统视频呼叫方 法包括:

步骤 S401 : 中间服务器接收支持网络地址转换的第一终端 的视频请 求;

支持 NAT的第一终端发起视频请求,携带视频编解码 信息以及自身 NAT连通性检测候选地址在 SDP中, 中间服务器接收第一终端的视频 请求。

步骤 S402: 中间服务器删除视频请求中的网络地址转换连 通性检测 候选地址后将视频请求转发给不支持网络地址 转换的第二终端;

中间服务器接收到来自第一终端的携带了 NAT 连通性检测候选地 址的视频请求后,去掉视频请求中的 NAT连通性检测候选地址, 然后将 视频请求发送给不支持 NAT的第二终端。

步骤 S403: 中间服务器接收来自第二终端的请求应答消息 , 添加自 身的网络地址转换连通性检测候选地址到请求 应答消息中, 然后将请求 应答消息转发给第一终端;

不支持 NAT的第二终端接收到视频请求后, 发送没有携带 NAT连 通性检测候选地址的请求应答消息给中间服务 器, 中间服务器收到请求 应答消息后,添加自身的 NAT连通性检测候选地址信息到请求应答消息 后, 将请求应答消息转发给支持 NAT的第一终端。

支持 NAT的第一终端接收通过中间服务器转发的请求 应答消息,完 成了媒体信息交换,得到了彼此的 NAT连通性检测候选地址,开始与中 间服务器进行 NAT连通性检测。

不支持 NAT的第二终端可能在第一终端与中间服务器的 NAT连通 性检测完成之前就开始发送视频数据, 即发送第一个关键帧。 由于第一 终端与中间服务器的 NAT连通性检测尚未完成,因此可能丟弃第二终 端 的第一个关键帧。

步骤 S404:在第一终端与中间服务器间的网络地址转 连通性检测 完成时, 中间服务器向第二终端发送关键帧请求;

支持 NAT的第一终端与中间服务器 NAT连通性检测完成, 第一终 端与对端建立了通路可以开始传输数据。 这时第一终端通过中间服务器 向第二终端开始发送视频, 第二终端能够正常显示第一终端发来的视频 图像。 同时, 中间服务器在媒体层面或信令层面主动发送一 个关键帧请 求 RTCP消息给不支持 NAT的第二终端。

步骤 S405: 中间服务器接收第二终端响应关键帧请求而返 回的关键 帧并转发给第一终端;

不支持 NAT的第二终端收到关键帧请求消息后,主动发 送一个关键 帧到中间服务器, 中间服务器将第二终端发来的关键帧转发到第 一终 端, 第一终端收到关键帧后, 能够正常解析后续的 P帧, 显示对端视频 画面正常。

为进一步解释本申请的不对称组网系统视频呼 叫方法, 以下结合一 个具体的实施方式, 具体描述支持 NAT的终端与不支持 NAT的终端通 过中间服务器而相互交互实现过程, 具体解释本申请的不对称组网系统 视频呼叫方法:

请参阅图 5, 图 5是本申请不对称组网系统视频呼叫方法第五 实 施方式的流程图, 本实施方式包括以下步骤:

S1 : 支持 NAT终端发起视频请求;

支持 NAT终端发起视频请求,携带视频编解码信息以 及自身的 NAT 连通性检测候选地址在 SDP中, 通过中间服务器转发给不支持 NAT终 端。

S2: 中间服务器接收到来自支持 NAT终端的视频请求, 去掉 NAT 连通性检测候选地址, 发给不支持 NAT终端;

中间服务器收到携带了 NAT连通性检测候选地址的视频请求后,去 掉支持 NAT终端的 NAT连通性检测候选地址,发送给不支持 NAT的终 端。

S3: 不支持 NAT终端发送没有携带 NAT连通性检测候选地址的应 答给中间服务器;

不支持 NAT终端发送没有携带 NAT连通性检测候选地址的应答发 送给中间服务器, 由中间服务器转发给支持 NAT终端。

S4: 中间服务器收到应答后,添加 NAT连通性检测候选地址到 SDP 中转发给支持 NAT终端;

中间服务器接收到应答后,添加自身的 NAT连通性检测候选地址到 SDP中, 将应答通过 SDP转发给支持 NAT终端。

S5: 不支持 NAT终端向中间服务器发送第一个关键帧;

由于不支持 NAT终端不知道支持 NAT终端与中间服务器之间的连 通性检测是否完成, 因此可能在完成媒体信息交换(即接收视屏请 求并 返回应答消息)后就有可能开始向支持 NAT终端发送媒体。 因此该步骤 的行为, 即向中间服务器发送第一个关键帧, 通过中间服务器转发给支 持 NAT终端。

S6: 进行连通性检测;

中间服务器与支持 NAT终端之间由于完成了媒体信息交换,得到了 彼此的 NAT连通性检测候选地址, 开始进行连通性检测。

S7: 可能丟弃第一个关键帧;

由于中间服务器与支持 NAT终端之间的 NAT连通性检测尚未完成, 因此可能丟弃不支持 NAT终端的第一个关键帧。

S8: 连通性检测完成;

中间服务器与支持 NAT终端的连通性检测完成。

S9: 支持 NAT终端发送第一个关键帧;

在连通性检测完成后,支持 NAT终端开始通过中间服务器向不支持 NAT终端发送视频, 即发送第一个关键帧。

S10: 中间服务器将来自支持 NAT终端的第一个关键帧发给不支持 NAT终端, 不支持 NAT终端显示支持 NAT终端发送的视频正常;

中间服务器将支持 NAT 终端发来的关键帧转发给对端即不支持 NAT终端, 不支持 NAT终端收到该关键帧后, 可以正常解析后续的 P 帧。 不支持 NAT终端显示支持 NAT终端发送的视频正常。

S11 : 支持 NAT终端发现 NAT检测完成后,在媒体层面主动向不支 持 NAT终端发送一个关键帧请求消息;

支持 NAT终端发现 NAT检测完成后, 在媒体层面主动发送一个关 键帧请求 RTCP消息, 通过中间服务器转发给不支持 NAT终端。

需要说明的是,支持终端发现 NAT检测完成后,也可以在信令层面 主动发送一个关键帧请求消息如 SIP的 INFO消息, 通过中间服务器转 发给不支持 NAT终端。

S12: 中间服务器将关键帧请求消息转发给不支持 NAT终端; 中间服务器收到通过媒体层面或信令层面的关 键帧请求消息后, 将 关键帧请求消息转发给不支持 NAT终端。

S13: 不支持 NAT终端收到关键帧请求后, 发送第二个关键帧到中 间服务器;

不支持 NAT收到关键帧请求后,需要主动发送一个关键 帧即第二个 关键帧到中间服务器, 通过中间服务器转发给支持 NAT终端。

S14: 中间服务器收到第二个关键帧后, 转发给支持 NAT终端, 支 持 NAT终端显示对端视频正常。

中间服务器收到不支持 NAT终端发送来的第二个关键帧后,转发到 支持 NAT终端, 支持 NAT终端收到该第二个关键帧后, 可以正常解析 后续的 P帧, 显示对端视频正常。

需要说明的是, 本实施方式的发送关键帧请求的执行步骤也可 以由 中间服务器主动发起。即中间服务器在与支持 NAT终端完成连通性检测 完成后 ,可以在媒体层面或信令层面主动向不支持 NAT终端发送一个关 键帧请求消息, 比如通过媒体层面发送一个关键帧请求 RTCP消息, 或 通过信令层面发送一个关键帧请求消息如 SIP的 INFO消息, 对于该步 骤之前的步骤以及该步骤之后的执行步骤跟本 实施方式的实现过程一 样, 本申请不——进行举例说明。

请参阅图 6, 图 6是本申请支持 NAT的终端一个实施方式的结构示 务器进行视频呼叫, 支持 NAT的终端 100包括请求模块 11和接收模块 12, 其中:

请求模块 11用于在支持 NAT的终端与中间服务器间的 NAT连通性 检测完成时, 向不支持 NAT的终端发送关键帧请求;

支持 NAT的终端在中间服务器返回不支持 NAT的终端的请求应答 消息后,得知中间服务器的 NAT连通性候选地址而开始与中间服务器进 行连通性检测。 在检测完成时, 通过请求模块 11主动向不支持 NAT的 终端发送关键帧请求, 以避免关键帧丟失而导致长时间无法正常显示 不 支持 NAT的终端发来的视频图像。

实际应用过程中, 请求模块 11 可以通过媒体层面或信令层面发出 关键帧请求, 并通过中间服务器转发给不支持 NAT的终端。

接收模块 12用于接收不支持 NAT的终端响应关键帧请求而返回的 关键帧, 解析后续的差别帧而正常显示不支持 NAT的终端发来的视频。

不支持 NAT的终端接收到关键帧请求后, 向支持 NAT的终端返回 请求应答消息,请求应答消息中携带请求的关 键帧。不支持 NAT的终端 将请求应答消息返回到中间服务器, 由中间服务器转发给接收模块 12。

接收模块 12接收返回的关键帧, 可以正常解析后续的 P帧, 显示 不支持 NAT的终端发来的视频正常。

其中, 请求模块 11还用于通过中间服务器向不支持 NAT的终端发 出视频请求,视频请求携带视频编解码信息以 及支持 NAT的终端的 NAT 连通性检测候选地址;

请求模块 11发起视频请求, 携带视频编解码信息以及自身 NAT连 通性检测候选地址在 SDP中, 中间服务器收到携带了 NAT连通性检测 候选地址的视频请求后, 去掉视频请求中的 NAT连通性检测候选地址 , 然后将视频请求发送给不支持 NAT的终端。

不支持 NAT的终端发送没有携带 NAT连通性检测候选地址的请求 应答消息给中间服务器, 中间服务器收到请求应答消息后, 添加自身的 NAT连通性检测候选地址信息到请求应答消息后 ,将请求应答消息转发 给接收模块 12。

接收模块 12还用于接收携带中间服务器的网络地址转换 通性检 测候选地址的请求应答消息, 开始与中间服务器进行网络地址转换连通 性检测。

接收模块 12接收通过中间服务器转发的请求应答消息, 完成了媒 体信息交换,得到了彼此的 NAT连通性检测候选地址,开始与中间服务 器进行 NAT连通性检测。

请参阅图 7, 图 7是本申请服务器一个实施方式的结构示意图 支 呼叫, 本实施方式的服务器 200包括请求模块 21和转发模块 22, 其中: 请求模块 21用于在支持 NAT的终端与服务器间的网络地址转换连 通性检测完成时, 向不支持 NAT的终端发送关键帧请求;

支持 NAT的终端在服务器返回不支持 NAT终端的请求应答消息后, 得知中间服务器的 NAT 连通性候选地址而开始与服务器进行连通性检 测。 在检测完成时, 请求模块 21主动向不支持 NAT的终端发送关键帧 二终端发来的视频图像。

实际应用过程中, 请求模块 21 可以通过媒体层面或信令层面向不 支持 NAT的终端发出关键帧请求。

转发模块 22用于接收不支持 NAT的终端响应关键帧请求而返回的 关键帧, 并将关键帧转发给支持 NAT的终端, 以使支持 NAT的终端能 够正常显示不支持 NAT的终端发来的视频。

不支持 NAT的终端接收到关键帧请求后, 向转发模块 22返回请求 应答消息, 请求应答消息中携带中间服务器所请求的关键 帧。 转发模块 22将关键帧转发给支持 NAT的终端。

支持 NAT的终端接收返回的关键帧, 可以正常解析后续的 P帧, 显示不支持 NAT的终端发来的视频正常。

其中, 转发模块 22用于接收支持 NAT的终端的视频请求, 视频请 求携带视频编解码信息以及支持 NAT的终端的 NAT连通性检测候选地 址,删除视频请求中的 NAT连通性检测候选地址后将视频请求转发给不 支持 NAT的终端。

支持 NAT的终端发起视频请求,携带视频编解码信息 以及自身 NAT 连通性检测候选地址在 SDP中,转发模块 22接收到来自支持 NAT的终 端的携带 NAT 连通性检测候选地址的视频请求后, 去掉视频请求中的 NAT连通性检测候选地址, 然后将视频请求发送给不支持 NAT的终端。

转发模块 22接收来自不支持 NAT的终端的请求应答消息, 添加服 务器的 NAT连通性检测候选地址到请求应答消息中,然 后将请求应答消 息转发给支持 NAT的终端。

不支持 NAT的终端接收到视频请求后, 发送没有携带 NAT连通性 检测候选地址的请求应答消息给服务器的转发 模块 22, 转发模块 22接 收到请求应答消息后,添加服务器的 NAT连通性检测候选地址信息到请 求应答消息后, 将请求应答消息转发给支持 NAT的终端。

支持 NAT的终端接收通过转发模块 22转发的请求应答消息, 完成 了媒体信息交换,得到了彼此的 NAT连通性检测候选地址,开始与服务 器进行 NAT连通性检测。

请参阅图 8, 图 8是本申请支持 NAT的终端另一个实施方式的结构 服务器进行视频呼叫,本实施方式支持 NAT的终端 300包括处理器 31、 接收器 32、 发送器 33、 随机存取存储器 34、 只读存储器 35、 总线 36 以及网络接口单元 37。 其中, 处理器 31通过总线 36分别耦接接收器 32、 发送器 33、 随机存取存储器 34、 只读存储器 35以及网络接口单元 37。 其中, 当需要运行支持 NAT的终端 300时, 通过固化在只读存储器 34中的基本输入输出系统或者嵌入式系统中的 bootloader引导系统进行 启动, 引导支持 NAT的终端 300进入正常运行状态。 在支持 NAT的终 端 300进入正常运行状态后, 在随机存取存储器 33 中运行应用程序和 操作系统, 通过网络接口单元 36从网络接收数据或者向网络发送数据, 使得:

处理器 31在支持 NAT的终端与中间服务器的 NAT连通性检测完成 时, 向不支持 NAT的终端发送关键帧请求, 并接收不支持 NAT的终端 响应关键帧请求而返回的关键帧, 正常解析后续的 P 帧, 显示不支持 NAT的终端发来的视频图像正常。

另一方面, 处理器 31还用于通过中间服务器向不支持 NAT的终端 发送视频请求,所述视频请求携带视频编解码 信息以及支持 NAT的终端 的 NAT连通性检测候选地址,并接收返回的视频请 求应答消息而使支持 本实施方式中, 处理器 31可能是一个中央处理器 CPU, 或者是特 定集成电路 ASIC ( Application Specific Integrated Circuit ), 或者是被配 置成实施本申请实施方式的一个或多个集成电 路。

发送器 33在 NAT连通性检测完成后,发送视频数据到中间服 务器, 中间服务器将视频数据转发给不支持 NAT的终端;

接收器 32接收不支持 NAT的终端通过中间服务器转发过来的视频 数据。

在本申请上述提供的支持 NAT 的终端以及服务器的实施方式的基 础上, 本申请进一步提供一种网络系统, 该网络系统包括上述任一实施 方式所述的支持 NAT的终端以及上述任一实施方式所述的服务器 ,还包 括不支持 NAT的终端。支持 NAT的终端通过服务器与不支持 NAT的终 端之间进行视频呼叫并实现视频数据的交互传 输。

上述实施方式, 本申请不对称组网系统视频呼叫方法及终端、 服务 器和系统, 在支持 NAT的终端与中间服务器之间的 NAT连通性检测完 成时,主动向不支持的 NAT终端发送关键帧请求,从而接收不支持 NAT 的终端的关键帧而实现视频正常解码。 通过这样的方式, 有效缩短支持 NAT终端在接收视频请求应答消息后无法正常显 示对端视频的时间,给 用户更好的业务体验。

在本申请所提供的几个实施例中, 应该理解到, 所揭露的系统, 装 置和方法, 可以通过其它的方式实现。 例如, 以上所描述的装置实施例 仅仅是示意性的, 例如, 所述模块或单元的划分, 仅仅为一种逻辑功能 划分, 实际实现时可以有另外的划分方式, 例如多个单元或组件可以结 合或者可以集成到另一个系统, 或一些特征可以忽略, 或不执行。 另一 点, 所显示或讨论的相互之间的耦合或直接耦合或 通信连接可以是通过 一些接口, 装置或单元的间接耦合或通信连接, 可以是电性, 机械或其 它的形式。 的, 作为单元显示的部件可以是或者也可以不是物 理单元, 即可以位于 一个地方, 或者也可以分布到多个网络单元上。 可以根据实际的需要选 择其中的部分或者全部单元来实现本实施例方 案的目的。 另外, 在本申请各个实施例中的各功能单元可以集成 在一个处理单 元中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集 成在一个单元中。 上述集成的单元既可以釆用硬件的形式实现, 也可以 釆用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实 现并作为独立的产 品销售或使用时, 可以存储在一个计算机可读取存储介质中。 基于这样 的理解, 本申请的技术方案本质上或者说对现有技术做 出贡献的部分或 者该技术方案的全部或部分可以以软件产品的 形式体现出来, 该计算机 软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设 备(可以是个人计算机,服务器,或者网络设 备等)或处理器(processor ) 执行本申请各个实施例所述方法的全部或部分 步骤。 而前述的存储介质 包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory ), 随 机存取存储器(RAM, Random Access Memory )、 磁碟或者光盘等各种 可以存储程序代码的介质。

以上所述仅为本申请的实施例, 并非因此限制本申请的专利范围, 凡是利用本申请说明书及附图内容所作的等效 结构或等效流程变换, 或 直接或间接运用在其他相关的技术领域, 均同理包括在本申请的专利保 护范围内。