CN111669534A - 通信方法、第一客户端、即时通讯系统 - Google Patents
通信方法、第一客户端、即时通讯系统 Download PDFInfo
- Publication number
- CN111669534A CN111669534A CN202010351731.6A CN202010351731A CN111669534A CN 111669534 A CN111669534 A CN 111669534A CN 202010351731 A CN202010351731 A CN 202010351731A CN 111669534 A CN111669534 A CN 111669534A
- Authority
- CN
- China
- Prior art keywords
- video
- client
- frame
- coding frame
- transmission
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N7/00—Television systems
- H04N7/14—Systems for two-way working
- H04N7/141—Systems for two-way working between two video terminals, e.g. videophone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/046—Interoperability with other network applications or services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1069—Session establishment or de-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/06—Notations for structuring of protocol data, e.g. abstract syntax notation one [ASN.1]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了通信方法、第一客户端、即时通讯系统,涉及通信技术领域。所述方法包括:调用所属终端的摄像头获取至少一个视频帧;对各个所述视频帧进行编码,得到各个原始编码帧;在各个所述原始编码帧中添加传输协议头,得到传输编码帧;基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。可以实现不同网络环境的视频通话,适用范围广。
Description
技术领域
本发明涉及通信技术领域,特别是涉及一种通信方法、第一客户端、即时通讯系统、设备和计算机可读存储介质。
背景技术
视频通话能够展示图像信息,沟通方式更为生动、真实,是重要的通信方式。
目前,视频通话通常只适用于单一的网络环境。发明人在研究过程中发现,上述现有技术方案存在如下缺点:目前缺乏应用于多种网络环境中的视频通话功能。
发明内容
鉴于上述问题,提出了本发明实施例以便提供一种克服上述问题或者至少部分地解决上述问题的一种通信方法、第一客户端、即时通讯系统、设备和计算机可读存储介质。
为了解决上述问题,本发明实施例公开了一种通信方法,所述方法应用于第一客户端,所述方法包括:
调用所属终端的摄像头获取至少一个视频帧;
对各个所述视频帧进行编码,得到各个原始编码帧;
在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;
将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
可选的,所述在各个所述原始编码帧中添加传输协议头,得到传输编码帧,包括:
在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧;
所述中转服务器为视联网服务器,所述基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求,包括:
基于视联网可视电话协议,通过所述视联网服务器向所述第二客户端发送所述视频通话请求;
所述将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端,包括:
采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端。
可选的,所述在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧,包括:
在所述原始编码帧的字节数大于预设字节数的情况下,将所述原始编码帧进行分片,得到多个第一视频数据包;每个所述第一视频数据包的字节数小于或等于所述预设字节数;
在各个所述第一视频数据包中设置位置序号,得到多个第二视频数据包;
在各个所述第二视频数据包中添加视联网协议头,得到多个第一视联网传输编码帧;
在所述原始编码帧的字节数小于或等于所述预设字节数的情况下,在所述原始编码帧中添加视联网协议头,得到第二视联网传输编码帧;
所述采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端,包括:
采用视联网协议,将各个所述第一视联网传输编码帧,和/或,各个所述第二视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第客户终端。
可选的,所述方法还包括:
基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧;
丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧;
对各个所述原始编码帧进行解码,得到各个视频帧;
播放各个所述视频帧。
可选的,所述基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧,包括:
采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧;
所述丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧,包括:
丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧。
可选的,所述采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧,包括:
采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个第一视联网传输编码帧,和/或,至少一个第二视联网传输编码帧;
所述丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧,包括:
丢弃各个所述第一视联网传输编码帧中的视联网协议头,得到多个第二视频数据包;
从所述第二视频数据包中提取位置序号,并将所述第二视频数据包中所述位置序号之外的部分确定为第一视频数据包;
根据各个所述第二视频数据包中的位置序号,将各个所述第一视频数据包进行组片,得到至少一个原始编码帧;
和/或,丢弃所述第二视联网传输编码帧中的视联网协议头,得到原始编码帧。
可选的,所述在各个所述原始编码帧中添加传输协议头,得到传输编码帧,包括:
在各个所述原始编码帧中添加互联网协议头,得到互联网传输编码帧;
所述中转服务器为互联网服务器,所述基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求,包括:
基于互联网可视电话协议,通过所述互联网服务器向所述第二客户端发送视频通话请求;
所述将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端,包括:
采用互联网协议将各个所述互联网传输编码帧,基于所述通信链路,通过所述互联网服务器转发至所述第二客户端。
根据本发明的第二方面还提供一种通信方法,应用于即时通讯系统,所述即时通讯系统包括:第一客户端、中转服务器、第二客户端,所述方法包括:
所述第一客户端调用所述摄像头获取至少一个视频帧;
所述第一客户端对各个所述视频帧进行编码,得到各个原始编码帧;
所述第一客户端在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
所述第一客户端基于可视电话协议,向中转服务器发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;
所述中转服务器基于可视电话协议,向所述第二客户端转发所述视频通话请求;
所述第二客户端基于可视电话协议,向所述中转服务器返回针对所述视频通话请求的确认信息;
所述中转服务器为所述第一客户端和所述第二客户端分配通信链路;
所述第一客户端将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
根据本发明的第二方面还提供一种第一客户端,应用于第一客户端,所述装置包括:
视频帧第一获取模块,用于调用所属终端的摄像头获取至少一个视频帧;
第一编码模块,用于对各个所述视频帧进行编码,得到各个原始编码帧;
协议头第一添加模块,用于在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
第一发送模块,用于基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;
第一转发模块,用于将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
可选的,视联网协议头添加子模块,用于在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧;
所述中转服务器为视联网服务器,所述第一发送模块,包括:
第一发送子模块,用于基于视联网可视电话协议,通过所述视联网服务器向所述第二客户端发送所述视频通话请求;
所述第一转发模块,包括:
第一转发子模块,用于采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端。
可选的,所述视联网协议头添加子模块,包括:
分片单元,用于在所述原始编码帧的字节数大于预设字节数的情况下,将所述原始编码帧进行分片,得到多个第一视频数据包;每个所述第一视频数据包的字节数小于或等于所述预设字节数;
位置序号设置单元,用于在各个所述第一视频数据包中设置位置序号,得到多个第二视频数据包;
视联网协议头第一添加单元,用于在各个所述第二视频数据包中添加视联网协议头,得到多个第一视联网传输编码帧;
视联网协议头第二添加单元,用于在所述原始编码帧的字节数小于或等于所述预设字节数的情况下,在所述原始编码帧中添加视联网协议头,得到第二视联网传输编码帧;
所述第一转发子模块,包括:
第一转发单元,用于采用视联网协议,将各个所述第一视联网传输编码帧,和/或,各个所述第二视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第客户终端。
可选的,所述客户端还包括:
传输编码帧接收模块,用于基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧;
丢弃模块,用于丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧;
解码模块,用于对各个所述原始编码帧进行解码,得到各个视频帧;
播放模块,用于播放各个所述视频帧。
可选的,所述传输编码帧接收模块,包括:
视联网传输编码帧接收子模块,用于采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧;
所述丢弃模块,包括:
丢弃子模块,用于丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧。
可选的,所述视联网传输编码帧接收子模块,包括:
视联网传输编码帧接收单元,用于采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个第一视联网传输编码帧,和/或,至少一个第二视联网传输编码帧;
所述丢弃子模块,包括:
第一丢弃单元,用于丢弃各个所述第一视联网传输编码帧中的视联网协议头,得到多个第二视频数据包;
位置序号提取单元,用于从所述第二视频数据包中提取位置序号,并将所述第二视频数据包中所述位置序号之外的部分确定为第一视频数据包;
组片单元,用于根据各个所述第二视频数据包中的位置序号,将各个所述第一视频数据包进行组片,得到至少一个原始编码帧;
和/或,第二丢弃单元,用于丢弃所述第二视联网传输编码帧中的视联网协议头,得到原始编码帧。
可选的,所述协议头第一添加模块,包括:
互联网协议头添加子模块,用于在各个所述原始编码帧中添加互联网协议头,得到互联网传输编码帧;
所述中转服务器为互联网服务器,所述第一发送模块,包括:
第二发送子模块,用于基于互联网可视电话协议,通过所述互联网服务器向所述第二客户端发送视频通话请求;
所述第一转发模块,包括:
第二转发子模块,用于采用互联网协议将各个所述互联网传输编码帧,基于所述通信链路,通过所述互联网服务器转发至所述第二客户端。
根据本发明的第三方面还提供一种即时通讯系统,所述即时通讯系统包括:第一客户端、中转服务器、第二客户端,所述即时通讯系统包括:
视频帧第二获取模块,用于所述第一客户端调用所属终端的摄像头获取至少一个视频帧;
第二编码模块,用于所述第一客户端对各个所述视频帧进行编码,得到各个原始编码帧;
协议头第二添加模块,用于所述第一客户端在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
第二发送模块,用于所述第一客户端基于可视电话协议,向中转服务器发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;
第三发送模块,用于所述中转服务器基于可视电话协议,向所述第二客户端转发所述视频通话请求;
确认信息返回模块,用于所述第二客户端基于可视电话协议,向所述中转服务器返回针对所述视频通话请求的确认信息;
通信链路分配模块,用于所述中转服务器为所述第一客户端和所述第二客户端分配通信链路;
第二转发模块,用于所述第一客户端将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
根据本发明的第四方面还提供一种设备,包括:一个或多个处理器;和其上存储有指令的一个或多个计算机可读存储介质,当由所述一个或多个处理器执行时,使得所述设备执行如前所述的一个或多个通信方法。
根据本发明的第五方面还提供一个或多个计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如前所述的一个或多个通信方法。
本发明实施例包括以下优点:所述方法应用于第一客户端;所述方法包括:调用所属终端的摄像头获取至少一个视频帧;对各个所述视频帧进行编码,得到各个原始编码帧;在各个所述原始编码帧中添加传输协议头,得到传输编码帧;基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。在各个原始编码帧中添加传输协议头,得到传输编码帧,通过可视电话协议,中转服务器在接收到第二客户端返回的针对视频通话请求的确认信息的情况下,为第一客户端和第二客户端分配通信链路,将各个传输编码帧,基于该通信链路,通过中转服务器转发至第二客户端,进而只需调整添加的传输协议头,中转服务器即可实现不同网络环境的视频通话,适用范围广。
附图说明
图1是本发明实施例的第一种通信方法的步骤流程图;
图2是本发明实施例的第一客户端发送视频通话请求的示意图;
图3是本发明实施例的一种第一客户端、中转服务器、第二客户端的交互示意图;
图4是本发明的第二种通信方法的步骤流程图;
图5是本发明的第三种通信方法的步骤流程图;
图6是本发明的添加传输协议头的步骤流程图;
图7是本发明的丢弃传输协议头的步骤流程图;
图8是本发明的第四种通信方法的步骤流程图;
图9是本发明的第五种通信方法的步骤流程图;
图10是本发明实施例的一种第一客户端的结构框图;
图11是本发明实施例的另一种第一客户端的结构框图;
图12是本发明实施例的一种一种即时通讯系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例中的通信方法应用于第一客户端,该第一客户端可以安装于视联网终端或互联网终端,对此不作具体限定。该第一客户端所属终端包括有摄像头。参照图1,图1是本发明实施例的第一种通信方法的步骤流程图。该方法应用于上述第一客户端。该方法可以包括如下步骤:
步骤101:调用所属终端的摄像头获取至少一个视频帧。
在本发明实施例中,该第一客户端可以调用其所属终端的摄像头获取至少一个视频帧。该视频帧可以包含有第一客户端的用户的面部图像等,在本发明实施例中,对此不作具体限定。该视频帧可以为第一客户端的用户的视频通话的视频内容。
例如,该第一客户端的所属终端可以配置有开源计算机视觉库(Open SourceComputer Vision Library,opencv)。opencv是一个基于BSD许可(开源)发行的跨平台计算机视觉库。则,第一客户端可以基于opencv调用第一客户端所属的摄像头获取视频帧,效率高,开发量小,展示效果好。
步骤102:对各个所述视频帧进行编码,得到各个原始编码帧。
在本发明实施例中,第一客户端可以对获取的各个视频帧进行编码,得到各个原始编码帧。
例如,第一客户端可以对各个视频帧进行ffmpeg编码操作,编码操作简便,效率高。
步骤103:在各个所述原始编码帧中添加传输协议头,得到视联网编码帧。
在本发明实施例中,第一客户端在各个原始编码帧中添加传输协议头,得到多个传输编码帧。本发明实施例中,对传输协议头的添加位置不作具体限定。如,可以在每个原始编码帧前添加传输协议头。在每个原始编码帧中添加传输协议头,使得每个原始编码帧可以在传输协议头所对应的网络中识别和传输。对该传输协议头的具体类型或种类不作具体限定。
需要说明的是,第二终端可以根据上述传输协议头的添加位置,以及传输协议头的字节数,后续从传输编码帧中丢弃上述传输协议头,得到原始编码帧。
步骤104:基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路。
具体的,第一客户端、第二客户端可以提前在中转服务器中进行注册。第一客户端需要基于可视电话协议通过中转服务器向第二客户端发送视频通话请求。参照图2所示,图2是本发明实施例的第一客户端发送视频通话请求的示意图。具体如下:第一客户端11基于可视电话协议,向中转服务器12发送视频通话请求,该视频通话请求包括第二客户端13的身份信息。该身份信息用于表征第二客户端13的身份,例如,该身份信息可以为第二客户端的注册信息等,如,可以为第二客户端的注册用户名等。中转服务器12基于该第二客户端13的身份信息向第二客户端13转发该视频通话请求,该视频通话请求可以用于咨询第二客户端13是否接受第一客户端11的视频通话。中转服务器12在接收到第二客户端13返回的针对该视频通话请求的确认信息的情况下,中转服务器12为第一客户端11和第二客户端13分配通信链路。针对该视频通话请求的确认信息用于表征第二客户端13同意接受第一客户端11的视频通话。该通信链路用于后续传输第一客户端11、第二客户端13的传输编码帧,以完成第一客户端11和第二客户端13之间的视频通话。
步骤105:将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
在本发明实施例中,第一客户端将各个传输编码帧,基于上述中转服务器分配的通信链路发送至中转服务器,该中转服务器基于上述中转服务器分配的通信链路,将各个传输编码帧转发至第二客户端。
该第二客户端在接收到各个传输编码帧后,先根据上述传输协议头的添加位置,以及传输协议头的字节数,从传输编码帧中丢弃上述传输协议头,得到原始编码帧,然后对各个原始编码帧进行与前述编码对应的解码,得到各个视频帧,然后播放各个视频帧,即实现了第一客户端用户与第二客户端用户的视频通话。如,前述若对各个视频帧ffmpeg编码,得到原始编码帧,则,第二客户端则对上述原始编码帧进行ffmpeg解码。例如,参照图3所示,图3是本发明实施例的一种第一客户端、中转服务器、第二客户端的交互示意图。图3中第一客户端11所属的终端包括有摄像头。第一客户端11调用所属终端的摄像头获取至少一个视频帧,第一客户端11对各个视频帧进行编码,得到各个原始编码帧。第一客户端11在各个原始编码帧中添加传输协议头,得到各个传输编码帧。第一客户端11基于可视电话协议,向中转服务器12发送视频通话请求,该视频通话请求包括第二客户端13的身份信息。中转服务器12基于该第二客户端13的身份信息向第二客户端13转发该视频通话请求。中转服务器12在接收到第二客户端13返回的针对该视频通话请求的确认信息的情况下,中转服务器12为第一客户端11和第二客户端13分配通信链路。第一客户端11将各个传输编码帧基于上述通信链路,发送至中转服务器12。中转服务器12基于上述通信链路,将各个传输编码帧转发至第二客户端13。第二客户端13在接收到各个传输编码帧后,先根据上述传输协议头的添加位置,以及传输协议头的字节数,从传输编码帧中丢弃上述传输协议头,得到原始编码帧,然后对各个原始编码帧进行解码,得到各个视频帧,然后播放各个视频帧,实现了第一客户端11的用户与第二客户端13的用户的视频通话。
需要说明的是第一客户端基于上述通信链路,通过中转服务器向第二客户端发送各个传输编码帧的同时,第二客户端同样可以基于上述通信链路,通过中转服务器向第一客户端发送各个传输编码帧,进而实现双方连续的视频通话。
本发明实施例包括以下优点:在各个原始编码帧中添加传输协议头,得到传输编码帧,通过可视电话协议,中转服务器在接收到第二客户端返回的针对视频通话请求的确认信息的情况下,为第一客户端和第二客户端分配通信链路,将各个传输编码帧,基于该通信链路,通过中转服务器转发至第二客户端,进而只需调整添加的传输协议头,中转服务器即可实现不同网络环境的视频通话,适用范围广。
参照图4,图4是本发明的第二种通信方法的步骤流程图,该方法同样应用于上述第一客户端,关于第一客户端,可以参照前述相关记载,为了避免重复,此处不再赘述。该方法具体可以包括如下步骤:
步骤201:调用所属终端的摄像头获取至少一个视频帧。
步骤202:对各个所述视频帧进行编码,得到各个原始编码帧。
步骤203:在各个所述原始编码帧中添加传输协议头,得到传输编码帧。
步骤204:基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路。
步骤205:将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
上述步骤201至步骤205可以分别参照前述的步骤101至步骤105,为了避免重复,此处不再赘述。
步骤206:基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧。
该第一客户端同样可以作为传输编码帧的接收方。该第一客户端也可以基于前述通信链路,接收第二客户端通过中转服务器转发的至少一个传输编码帧。
步骤207:丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧。
第一客户端丢弃各个传输编码帧中的传输协议头,相当于进行了还原,得到多个原始编码帧。需要说明的是,第一客户端,根据第二客户端在原始编码帧中添加传输协议头的位置,以及协议头的字节数,从传输编码帧中丢弃传输协议头,得到多个原始编码帧。
步骤208:对各个所述原始编码帧进行解码,得到各个视频帧。
第一客户端对各个原始编码帧执行与前述编码对应的解码,得到各个视频帧。
步骤209:播放各个所述视频帧。
第一客户端播放视频帧,进而实现将第二客户端的视频通话的视频帧在第一客户端播放。
本发明实施例包括以下优点:在各个原始编码帧中添加传输协议头,得到传输编码帧,通过可视电话协议,中转服务器在接收到第二客户端返回的针对视频通话请求的确认信息的情况下,为第一客户端和第二客户端分配通信链路,将各个传输编码帧,基于该通信链路,通过中转服务器转发至第二客户端,进而只需调整添加的传输协议头,中转服务器即可实现不同网络环境的视频通话,适用范围广。
参照图5,图5是本发明的第三种通信方法的步骤流程图,该方法同样应用于上述第一客户端,关于第一客户端,可以参照前述相关记载,为了避免重复,此处不再赘述。该方法具体可以包括如下步骤:
步骤301:调用所属终端的摄像头获取至少一个视频帧。
步骤302:对各个所述视频帧进行编码,得到各个原始编码帧。
在本发明实施例中,该步骤301至302可以分别参照前述步骤101至102,为了避免重复,此处不再赘述。
步骤303:在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧。
该步骤303可以参照前述步骤103的有关记载,需要说明的是,此处是在原始编码帧中添加视联网协议头,进而视联网传输编码帧可以在视联网中识别和传输。
可选的,参照图6所示,图6是本发明的添加传输协议头的步骤流程图。该步骤303可以包括如下步骤S1至S3,或步骤S4:
步骤S1:在所述原始编码帧的字节数大于预设字节数的情况下,将所述原始编码帧进行分片,得到多个第一视频数据包;每个所述第一视频数据包的字节数小于或等于所述预设字节数。
在本发明实施例中,在某一个原始编码帧的字节数大于预设字节数的情况下,第一客户端将该原始编码帧进行分片,得到多个第一视频数据包。该预设字节数可以根据实际需要进行设定,例如,该预设字节数可以为1024字节。每个第一视频数据包的字节数小于或等于预设字节数。分片的过程可以将该原始编码帧先拆分出1个或多个等于该预设字节数的第一视频数据包。若该原始编码帧的字节数除以该预设字节数有余数,则,将余数对应的字节数作为一个单独的第一视频数据包。
例如,第一客户端对获取的视频帧1进行编码后,得到原始编码帧1。若预设字节数为1024。若原始编码帧1的字节数为1056,大于1024,则需要对原始编码帧1进行分片。将原始编码帧1中前1024个字节分为第一视频数据包1,将原始编码帧1中第一视频数据包1后的32个字节分为的第一视频数据包2。
步骤S2::在各个所述第一视频数据包中设置位置序号,得到多个第二视频数据包。
具体的,根据分片情况,在每个第一视频数据包中设置位置序号,得到多个第二视频数据包。该位置序号用于表征该第一视频数据包在该原始编码帧中所处的位置,或者,各个第一视频数据包在原始编码帧中的相对位置关系,为后续组片过程做准备。该位置序号的设置位置不作具体限定。例如,可以在第一视频包的包头的预设位设置位置序号等。
例如,针对上述例子,可以在第一视频数据包1之前设置位置序号为1,得到第二视频数据包1。在第一视频数据包2之前设置位置序号为2,得到第二视频数据包2。上述位置序号用于表征在原始编码帧1中,第一视频数据包1位于第一视频数据包2的前面。即,第二视频数据包1中的位置序号为1可以表征,第一视频数据包1为原始编码帧中的第一个第一视频数据包。第二视频数据包2中的位置序号为2可以表征,第一视频数据包2为原始编码帧中的第二个第一视频数据包。
步骤S3:在各个所述第二视频数据包中添加视联网协议头,得到多个第一视联网编码帧。
在本发明实施例中,第一客户端在每个第二视频数据包中添加视联网协议头,得到多个第一视联网编码帧。视联网协议头的添加位置不作具体限定。如,可以在每个第二视频数据包前添加视联网协议头。在每个第二视频数据包中添加视联网协议头,使得每个视频数据包可以在视联网协议识别和传输。
例如,针对上述例子,可以在第二视频数据包1之前添加视联网协议头,得到第一视联网编码帧1,在第二视频数据包2之前添加视联网协议头,得到第一视联网编码帧2,使得第二视频数据包1和第二视频数据包2可以在视联网协议识别和传输。
步骤S4:在所述原始编码帧的字节数小于或等于所述预设字节数的情况下,在所述原始编码帧中添加视联网协议头,得到第二视联网编码帧。
在某一个原始编码帧的字节数小于或等于上述预设字节数的情况下,则,无需对该原始编码帧进行分片,直接在该原始编码帧中添加视联网协议头,得到第二视联网编码帧。视联网协议头的添加位置不作具体限定。如,可以在原始编码帧前添加视联网协议头。在原始编码帧中添加视联网协议头,使得每个原始编码帧可以在视联网协议识别和传输。
例如,第一客户端对获取的视频帧2进行编码后,得到原始编码帧2。若预设字节数为1024。若,原始编码帧2的字节数为1024,则无需进行分片。在该原始编码帧2中添加视联网协议头,得到第二视联网编码帧。
在本发明实施例中,第一客户端可以对第一视联网编码帧和第二视联网编码帧分别设置区别标识,该区别标识的设置位置、设置方式不作具体限定。该区别标识用于表征某一视联网编码帧为第一视联网编码帧还是第二视联网编码帧。第二客户端在接收到某一视联网编码帧之后,根据其携带的区别标识既可以得到该视联网编码帧为第一视联网编码帧还是第二视联网编码帧。
例如,第一客户端在第一视联网编码帧之前设置区别标识为“y”,在第二视联网编码帧之前设置区别标识为“e”。若第二客户端接收到某一联网编码帧的区别标识为“y”,则表征该视联网编码帧为第一视联网编码帧。若第二客户端接收到某一联网编码帧的区别标识为“e”,则表征该视联网编码帧为第二视联网编码帧。
在本发明实施例中,针对同一个原始编码帧而言,根据该原始编码帧的字节数,在步骤S1和步骤S4中,择一执行。
步骤304:所述中转服务器为视联网服务器,基于视联网可视电话协议,通过所述视联网服务器向所述第二客户端发送所述视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路。
步骤304可以参照前述步骤104,需要说明的是,上述中转服务器为视联网服务器,第一客户端基于视联网可视电话协议,通过该视联网服务器向第二客户端发送视频通话请求。该视联网服务器在接收到第二客户端返回的针对该视频通话请求的确认信息的情况下,为该第一客户端和该第二客户端分配通信链路。
步骤305:采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端。
步骤305可以参照前述步骤105,需要说明的是,第一客户端采用视联网协议,将各个视联网传输编码帧,基于该视联网服务器为第一客户端和第二客户端分配的通信链路,通过视联网服务器转发至第二客户端。
可选的,该步骤305可以包括:采用视联网协议,将各个所述第一视联网编码帧,和/或,各个所述第二视联网编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端。
在本发明实施例中,第一客户端将各个第一视联网编码帧,和/或,各个第二视联网编码帧,采用视联网协议,基于前述通信链路,发送至视联网服务器。该视联网服务器采用视联网协议,基于前述通信链路,将各个第一视联网编码帧,和/或,各个第二视联网编码帧发送至第二客户端。第二客户端针对第一视联网编码帧丢弃视联网协议头后,得到第二视频数据包,从第二视频数据包中提取位置序号,将第二视频数据包中位置序号之外的其他部分确定为第一视频数据包,并基于每个第二视频数据包中的位置序号,对各个第一视频数据包进行组片,得到原始编码帧。第二客户端,针对第二视联网编码帧丢弃视联网协议头后,得到原始编码帧。第二客户端对原始编码帧进行解码,得到视频帧,然后播放视频帧。
例如,针对上述例子,第一客户端将原始编码帧1对应的第一视联网编码帧1和第一视联网编码帧2,以及原始编码帧2对应的第二视联网编码帧,采用视联网协议,基于前述通信链路发送至视联网服务器。该视联网服务器采用视联网协议,基于前述通信链路,将原始编码帧1对应的第一视联网编码帧1和第一视联网编码帧2,和原始编码帧2对应的第二视联网编码帧发送至第二客户端。第二客户端,针对第一视联网编码帧1和第一视联网编码帧均丢弃视联网协议头后,得到第二视频数据包1和第二视频数据包2。第二客户端从第二视频数据包1中提取一个位置序号,将第二视频数据包1中该位置序号之外的部分,确定为第一视频数据包1。第二客户端从第二视频数据包2中提取一个位置序号,将第二视频数据包2中该位置序号之外的部分,确定为第一视频数据包2。第二客户端基于上述2个位置序号,对第一视频数据包1和第一视频数据包2进行组片,得到原始编码帧1。对原始编码帧1进行与前述编码对应的解码,得到视频帧1。第二客户端,针对第二视联网编码帧丢弃视联网协议头后,得到原始编码帧2,对原始编码帧2进行与前述编码对应的解码,得到视频帧2。
步骤306:采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧。
该步骤可以参照前述步骤206的有关记载,为了避免重复,此处不再赘述。需要说明的是,该第一客户端可以采用视联网协议,基于前述通信链路,接收第二客户端通过视联网服务器转发的至少一个视联网传输编码帧。
可选的,该步骤306可以包括:采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个第一视联网传输编码帧,和/或,至少一个第二视联网传输编码帧。
具体的,此处的第一视联网编码帧、第二视联网编码帧分别参照前述有关记载,为了避免重复,此处不再赘述。
步骤307:丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧。
该步骤可以参照前述步骤207的有关记载,为了避免重复,此处不再赘述。需要说明的是,该第一客户端可以丢弃各个视联网传输编码帧中的视联网协议头,得到多个原始编码帧。
可选的,参照图7,图7是本发明的丢弃传输协议头的步骤流程图。该步骤307可以包括下述步骤A1至步骤A4:
步骤A1:丢弃各个所述第一视联网传输编码帧中的视联网协议头,得到多个第二视频数据包。
具体的,每个视联网编码帧设置有区别标识,该区别标识的设置位置、设置方式不作具体限定。该区别标识用于表征某一视联网编码帧为第一视联网编码帧还是第二视联网编码帧。第一客户端在接收到某一视联网编码帧之后,根据其携带的区别标识既可以得到该视联网编码帧为第一视联网编码帧还是第二视联网编码帧。第一客户端针对各个第一视联网编码帧,丢弃每个第一视联网编码帧的视联网协议头,得到多个第二视频数据包。具体的,丢弃视联网协议头的方式与添加联网协议头的方式对应。如,在添加联网协议头的过程中,是在第二视频数据包之前,添加联网协议头。若视联网协议头的字节数为第一字节数,则,在丢弃添加联网协议头的过程中,将第一视联网编码帧从头开始第一字节数的字节作为联网协议头,丢弃,得到第二视频数据包。
例如,针对上述例子,若第二客户端在第二视频数据包1之前添加视联网协议头,得到第一视联网编码帧1,在第二视频数据包2之前添加视联网协议头,得到第一视联网编码帧2。第二客户端在第一视联网编码帧1设置区别标识“y”用于表征该视联网编码帧为第一视联网编码帧。第二客户端在第一视联网编码帧2设置区别标识“y”用于表征该视联网编码帧为第一视联网编码帧。若视联网协议头的字节数为20。则,第一客户端,将第一视联网编码帧1从头开始的前20个字节丢弃,得到第二视频数据包1,将第一视联网编码帧2从头开始的前20个字节丢弃,得到第二视频数据包2。
步骤A2:从所述第二视频数据包中提取位置序号,并将所述第二视频数据包中所述位置序号之外的部分确定为第一视频数据包。
在得到第二视频数据包之后,从每个第二视频数据包中提取位置序号,并将第二视频数据包中除了位置序号之外的部分确定为第一视频数据包。同样的,提取位置序号的方式与添加位置序号的方式对应。如,在添加位置序号的过程中,是在第一视频数据包之前,添加位置序号。若位置序号的字节数为第二字节数,则,在提取位置序号的过程中,将第二视频数据包从头开始第二字节数的字节作为位置序号进行提取,将第二视频数据包中了位置序号之外的部分确定为第一视频数据包。
例如,针对上述例子,若第二客户端在第一视频数据包1之前添加位置序号,得到第二视频数据包1,在第一视频数据包2之前添加位置序号,得到第二视频数据包2。若位置序号的字节数为4。则,第一客户端,将第二视频数据包1从头开始的前4个字节作为位置序号,将第二视频数据包1中前4个字节之外的部分确定为第一视频数据包1,将第二视频数据包2从头开始的前4个字节作为位置序号,将第二视频数据包2中前4个字节之外的部分请确定为第一视频数据包2。
步骤A3:根据各个所述第二视频数据包中的位置序号,将各个所述第一视频数据包进行组片,得到至少一个原始编码帧。
各个第二视频数据包中的位置序号,表征了各个第一视频数据包的组片过程,以及在一个原始编码帧中的相对位置关系。可以根据各个第二视频数据包中的位置序号,将各个第一视频数据包进行组片,得到至少一个原始编码帧。
例如,针对上述例子,若第二客户端在第一视频数据包1之前设置位置序号为1,得到第二视频数据包1。在第一视频数据包2之前设置位置序号为2,得到第二视频数据包2。若位置序号的字节数为4。第二视频数据包1中的位置序号为1可以表征,第一视频数据包1为原始编码帧中的第一个第一视频数据包。第二视频数据包2中的位置序号为2可以表征,第一视频数据包2为原始编码帧中的第二个第一视频数据包。则,第一客户端,将第二视频数据包1从头开始的前4个字节作为位置序号,将第二视频数据包1中前4个字节之外的部分确定为第一视频数据包1,将第二视频数据包2从头开始的前4个字节作为位置序号,将第二视频数据包2中前4个字节之外的部分请确定为第一视频数据包2。
步骤A4:丢弃所述第二视联网传输编码帧中的视联网协议头,得到原始编码帧。
第一客户端针对各个第二视联网编码帧,丢弃每个第二视联网编码帧的视联网协议头,得到多个原始编码帧。具体的,丢弃视联网协议头的方式与添加联网协议头的方式对应。如,在添加联网协议头的过程中,是在原始编码帧之前,添加联网协议头。若视联网协议头的字节数为第一字节数,则,在丢弃添加联网协议头的过程中,将第二视联网编码帧从头开始第一字节数的字节作为联网协议头,丢弃,得到原始编码帧。
例如,针对上述例子,若第二客户端在原始编码帧2之前添加视联网协议头,得到第二视联网编码帧1。第二客户端在第二视联网编码帧1设置区别标识“e”用于表征该视联网编码帧为第二视联网编码帧。若视联网协议头的字节数为20。则,第一客户端,将第二视联网编码帧1从头开始的前20个字节丢弃,得到原始编码帧2。
需要说明的是,具体根据第一客户端接收到的是第一视联网传输编码帧还是第二视联网传输编码帧,决定执行步骤A1或步骤A4中的那一个。在执行步骤A1的基础上,继续执行步骤A2至步骤步骤A3。
步骤308:对各个所述原始编码帧进行解码,得到各个视频帧。
步骤309:播放各个所述视频帧。
步骤308和步骤309分别参照前述步骤208和步骤209,为了避免重复,此处不再赘述。
本发明实施例包括以下优点:在各个原始编码帧中添加视联网协议头,得到视联网传输编码帧,通过视联网可视电话协议,视联网服务器在接收到第二客户端返回的针对视频通话请求的确认信息的情况下,为第一客户端和第二客户端分配通信链路,将各个传输编码帧,基于该通信链路,通过视联网服务器转发至第二客户端,进而实现了视联网网络环境的视频通话。
参照图8,图8是本发明的第四种通信方法的步骤流程图,该方法同样应用于上述第一客户端,关于第一客户端,可以参照前述相关记载,为了避免重复,此处不再赘述。该方法具体可以包括如下步骤:
步骤401:调用所属终端的摄像头获取至少一个视频帧。
步骤402:对各个所述视频帧进行编码,得到各个原始编码帧。
步骤401和步骤402分别参照前述步骤101和步骤102,为了避免重复,此处不再赘述。
步骤403:在各个所述原始编码帧中添加互联网协议头,得到互联网传输编码帧。
该步骤403可以参照前述步骤303或步骤103的有关记载,需要说明的是,此处是在原始编码帧中添加互联网协议头,进而互联网传输编码帧可以在互联网中识别和传输。
步骤404:所述中转服务器为互联网服务器,基于互联网可视电话协议,通过所述互联网服务器向所述第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路。
步骤404可以参照前述步骤104或步骤304,需要说明的是,上述中转服务器为互联网服务器,第一客户端基于视联网可视电话协议,通过该互联网服务器向第二客户端发送视频通话请求。该互联网服务器在接收到第二客户端返回的针对该视频通话请求的确认信息的情况下,为该第一客户端和该第二客户端分配通信链路。
步骤405:采用互联网协议将各个所述互联网传输编码帧,基于所述通信链路,通过所述互联网服务器转发至所述第二客户端。
步骤405可以参照前述步骤105或步骤305,需要说明的是,第一客户端采用互联网协议,将各个互联网传输编码帧,基于该互联网服务器为第一客户端和第二客户端分配的通信链路,通过互联网服务器转发至第二客户端,进而实现了互联网网络环境下的视频通话。
本发明实施例包括以下优点:在各个原始编码帧中添加互联网协议头,得到互联网传输编码帧,通过互联网可视电话协议,互联网服务器在接收到第二客户端返回的针对视频通话请求的确认信息的情况下,为第一客户端和第二客户端分配通信链路,将各个传输编码帧,基于该通信链路,通过互联网服务器转发至第二客户端,进而实现了互联网网络环境的视频通话。
参照图9,图9是本发明的第五种通信方法的步骤流程图,该方法应用于即时通讯系统。该即时通讯系统包括上述第一客户端、中转服务器、第二客户端。关于第一客户端、中转服务器、第二客户端可以参照前述记载,为了避免重复,此处不再赘述。该方法具体可以包括如下步骤:
步骤501:所述第一客户端调用所述摄像头获取至少一个视频帧。
步骤502:所述第一客户端对各个所述视频帧进行编码,得到各个原始编码帧。
步骤503:所述第一客户端在各个所述原始编码帧中添加传输协议头,得到传输编码帧。
步骤504:所述第一客户端基于可视电话协议,向中转服务器发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息。
步骤505:所述中转服务器基于可视电话协议,向所述第二客户端转发所述视频通话请求。
步骤506:所述第二客户端基于可视电话协议,向所述中转服务器返回针对所述视频通话请求的确认信息。
步骤507:所述中转服务器为所述第一客户端和所述第二客户端分配通信链路。
步骤508:所述第一客户端将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
关于步骤501至步骤508可以分别参照前述实施例的有关记载,且能达到相同或相似的有益效果,为了避免重复此处不再赘述。
需要说明的是,对于方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明实施例并不受所描述的动作顺序的限制,因为依据本发明实施例,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作并不一定是本发明实施例所必须的,同时各个实施例之间可以相互参照。
参照图10,图10是本发明实施例的一种第一客户端的结构框图,第一客户端可以参照前述记载,为了避免重复,此处不再赘述。第一客户端600包括:
视频帧第一获取模块601,用于调用所属终端的摄像头获取至少一个视频帧;
第一编码模块602,用于对各个所述视频帧进行编码,得到各个原始编码帧;
协议头第一添加模块603,用于在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
第一发送模块604,用于基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;
第一转发模块605,用于将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
可选的,在上述图10的基础上,参照图11所示,所述协议头第一添加模块603,包括:
视联网协议头添加子模块6031,用于在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧;
所述中转服务器为视联网服务器,所述第一发送模块604,包括:
第一发送子模块6041,用于基于视联网可视电话协议,通过所述视联网服务器向所述第二客户端发送所述视频通话请求;
所述第一转发模块605,包括:
第一转发子模块6051,用于采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端。
可选的,参照图11所示,所述视联网协议头添加子模块6031,包括:
分片单元60311,用于在所述原始编码帧的字节数大于预设字节数的情况下,将所述原始编码帧进行分片,得到多个第一视频数据包;每个所述第一视频数据包的字节数小于或等于所述预设字节数;
位置序号设置单元60312,用于在各个所述第一视频数据包中设置位置序号,得到多个第二视频数据包;
视联网协议头第一添加单元60313,用于在各个所述第二视频数据包中添加视联网协议头,得到多个第一视联网传输编码帧;
视联网协议头第二添加单元60314,用于在所述原始编码帧的字节数小于或等于所述预设字节数的情况下,在所述原始编码帧中添加视联网协议头,得到第二视联网传输编码帧;
所述第一转发子模块6051,包括:
第一转发单元60511,用于采用视联网协议,将各个所述第一视联网传输编码帧,和/或,各个所述第二视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第客户终端。
可选的,参照图11所示,所述第一客户端还包括:
传输编码帧接收模块606,用于基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧;
丢弃模块607,用于丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧;
解码模块608,用于对各个所述原始编码帧进行解码,得到各个视频帧;
播放模块609,用于播放各个所述视频帧。
可选的,参照图11所示,所述传输编码帧接收模块606,包括:
视联网传输编码帧接收子模块6061,用于采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧;
所述丢弃模块607,包括:
丢弃子模块6071,用于丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧。
可选的,参照图11所示,所述视联网传输编码帧接收子模块6061,包括:
视联网传输编码帧接收单元60611,用于采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个第一视联网传输编码帧,和/或,至少一个第二视联网传输编码帧;
所述丢弃子模块6071,包括:
第一丢弃单元60711,用于丢弃各个所述第一视联网传输编码帧中的视联网协议头,得到多个第二视频数据包;
位置序号提取单元60712,用于从所述第二视频数据包中提取位置序号,并将所述第二视频数据包中所述位置序号之外的部分确定为第一视频数据包;
组片单元60713,用于根据各个所述第二视频数据包中的位置序号,将各个所述第一视频数据包进行组片,得到至少一个原始编码帧;
和/或,第二丢弃单元60714,用于丢弃所述第二视联网传输编码帧中的视联网协议头,得到原始编码帧。
可选的,所述协议头第一添加模块,包括:
互联网协议头添加子模块,用于在各个所述原始编码帧中添加互联网协议头,得到互联网传输编码帧;
所述中转服务器为互联网服务器,所述第一发送模块,包括:
第二发送子模块,用于基于互联网可视电话协议,通过所述互联网服务器向所述第二客户端发送视频通话请求;
所述第一转发模块,包括:
第二转发子模块,用于采用互联网协议将各个所述互联网传输编码帧,基于所述通信链路,通过所述互联网服务器转发至所述第二客户端。
参照图12,图12是本发明实施例的一种一种即时通讯系统的结构框图,一种即时通讯系统包括:第一客户端、中转服务器、第二客户端,第一客户端、中转服务器、第二客户端可以参照前述记载,为了避免重复,此处不再赘述。所述即时通讯系统700包括:
视频帧第二获取模块701,用于所述第一客户端调用所属终端的摄像头获取至少一个视频帧;
第二编码模块702,用于所述第一客户端对各个所述视频帧进行编码,得到各个原始编码帧;
协议头第二添加模块703,用于所述第一客户端在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
第二发送模块704,用于所述第一客户端基于可视电话协议,向中转服务器发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;
第三发送模块705,用于所述中转服务器基于可视电话协议,向所述第二客户端转发所述视频通话请求;
确认信息返回模块706,用于所述第二客户端基于可视电话协议,向所述中转服务器返回针对所述视频通话请求的确认信息;
通信链路分配模块707,用于所述中转服务器为所述第一客户端和所述第二客户端分配通信链路;
第二转发模块708,用于所述第一客户端将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
对于第一客户端、即时通讯系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明实施例中,在各个原始编码帧中添加传输协议头,得到传输编码帧,通过可视电话协议,中转服务器在接收到第二客户端返回的针对视频通话请求的确认信息的情况下,为第一客户端和第二客户端分配通信链路,将各个传输编码帧,基于该通信链路,通过中转服务器转发至第二客户端,进而只需调整添加的传输协议头,中转服务器即可实现不同网络环境的视频通话,适用范围广。
本申请实施例还提供了一种设备,包括:一个或多个处理器;和其上存储有指令的一个或多个计算机可读存储介质,当由所述一个或多个处理器执行时,使得所述设备执行本申请实施例所述的一个或多个通信方法。
本申请实施例还提供了一个或多个计算机可读存储介质,其上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行本申请实施例所述的一个或多个通信方法。
对于第一客户端即时通讯系统、设备、计算机可读存储介质实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的系统。
这些计算机程序指令也可存储在能引导计算机或其它可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令系统的制造品,该指令系统实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理终端设备上,使得在计算机或其它可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其它变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其它要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种通信方法、第一客户端即时通讯系统、设备和计算机可读存储介质,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (12)
1.一种通信方法,其特征在于,应用于第一客户端,所述方法包括:
调用所属终端的摄像头获取至少一个视频帧;
对各个所述视频帧进行编码,得到各个原始编码帧;
在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;
将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
2.根据权利要求1所述的方法,其特征在于,所述在各个所述原始编码帧中添加传输协议头,得到传输编码帧,包括:
在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧;
所述中转服务器为视联网服务器,所述基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求,包括:
基于视联网可视电话协议,通过所述视联网服务器向所述第二客户端发送所述视频通话请求;
所述将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端,包括:
采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端。
3.根据权利要求2所述的方法,其特征在于,所述在各个所述原始编码帧中添加视联网协议头,得到视联网传输编码帧,包括:
在所述原始编码帧的字节数大于预设字节数的情况下,将所述原始编码帧进行分片,得到多个第一视频数据包;每个所述第一视频数据包的字节数小于或等于所述预设字节数;
在各个所述第一视频数据包中设置位置序号,得到多个第二视频数据包;
在各个所述第二视频数据包中添加视联网协议头,得到多个第一视联网传输编码帧;
在所述原始编码帧的字节数小于或等于所述预设字节数的情况下,在所述原始编码帧中添加视联网协议头,得到第二视联网传输编码帧;
所述采用视联网协议将各个所述视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第二客户端,包括:
采用视联网协议,将各个所述第一视联网传输编码帧,和/或,各个所述第二视联网传输编码帧,基于所述通信链路,通过所述视联网服务器转发至所述第客户终端。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧;
丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧;
对各个所述原始编码帧进行解码,得到各个视频帧;
播放各个所述视频帧。
5.根据权利要求4所述的方法,其特征在于,所述基于所述通信链路,接收所述第二客户端通过所述中转服务器转发的至少一个传输编码帧,包括:
采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧;
所述丢弃各个所述传输编码帧中的传输协议头,得到多个原始编码帧,包括:
丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧。
6.根据权利要求5所述的方法,其特征在于,所述采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个视联网传输编码帧,包括:
采用视联网协议,基于所述通信链路,接收所述第二客户端通过所述视联网服务器转发的至少一个第一视联网传输编码帧,和/或,至少一个第二视联网传输编码帧;
所述丢弃各个所述视联网传输编码帧中的视联网协议头,得到多个原始编码帧,包括:
丢弃各个所述第一视联网传输编码帧中的视联网协议头,得到多个第二视频数据包;
从所述第二视频数据包中提取位置序号,并将所述第二视频数据包中所述位置序号之外的部分确定为第一视频数据包;
根据各个所述第二视频数据包中的位置序号,将各个所述第一视频数据包进行组片,得到至少一个原始编码帧;
和/或,丢弃所述第二视联网传输编码帧中的视联网协议头,得到原始编码帧。
7.根据权利要求1所述的方法,其特征在于,所述在各个所述原始编码帧中添加传输协议头,得到传输编码帧,包括:
在各个所述原始编码帧中添加互联网协议头,得到互联网传输编码帧;
所述中转服务器为互联网服务器,所述基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求,包括:
基于互联网可视电话协议,通过所述互联网服务器向所述第二客户端发送视频通话请求;
所述将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端,包括:
采用互联网协议将各个所述互联网传输编码帧,基于所述通信链路,通过所述互联网服务器转发至所述第二客户端。
8.一种通信方法,其特征在于,应用于即时通讯系统,所述即时通讯系统包括:第一客户端、中转服务器、第二客户端,所述方法包括:
所述第一客户端调用所述摄像头获取至少一个视频帧;
所述第一客户端对各个所述视频帧进行编码,得到各个原始编码帧;
所述第一客户端在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
所述第一客户端基于可视电话协议,向中转服务器发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;
所述中转服务器基于可视电话协议,向所述第二客户端转发所述视频通话请求;
所述第二客户端基于可视电话协议,向所述中转服务器返回针对所述视频通话请求的确认信息;
所述中转服务器为所述第一客户端和所述第二客户端分配通信链路;
所述第一客户端将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
9.一种第一客户端,其特征在于,应用于第一客户端,所述装置包括:
视频帧第一获取模块,用于调用所属终端的摄像头获取至少一个视频帧;
第一编码模块,用于对各个所述视频帧进行编码,得到各个原始编码帧;
协议头第一添加模块,用于在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
第一发送模块,用于基于可视电话协议,通过中转服务器向第二客户端发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;所述中转服务器用于在接收到所述第二客户端返回的针对所述视频通话请求的确认信息的情况下,为所述第一客户端和所述第二客户端分配通信链路;
第一转发模块,用于将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
10.一种即时通讯系统,其特征在于,所述即时通讯系统包括:第一客户端、中转服务器、第二客户端,所述即时通讯系统包括:
视频帧第二获取模块,用于所述第一客户端调用所属终端的摄像头获取至少一个视频帧;
第二编码模块,用于所述第一客户端对各个所述视频帧进行编码,得到各个原始编码帧;
协议头第二添加模块,用于所述第一客户端在各个所述原始编码帧中添加传输协议头,得到传输编码帧;
第二发送模块,用于所述第一客户端基于可视电话协议,向中转服务器发送视频通话请求;所述视频通话请求包括:所述第二客户端的身份信息;
第三发送模块,用于所述中转服务器基于可视电话协议,向所述第二客户端转发所述视频通话请求;
确认信息返回模块,用于所述第二客户端基于可视电话协议,向所述中转服务器返回针对所述视频通话请求的确认信息;
通信链路分配模块,用于所述中转服务器为所述第一客户端和所述第二客户端分配通信链路;
第二转发模块,用于所述第一客户端将各个所述传输编码帧,基于所述通信链路,通过所述中转服务器转发至所述第二客户端。
11.一种设备,其特征在于,包括:一个或多个处理器;和所述处理器上存储有指令的一个或多个计算机可读存储介质,当由所述一个或多个处理器执行时,使得所述设备执行如权利要求1至8中任一项所述的通信方法。
12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有指令,当由一个或多个处理器执行时,使得所述处理器执行如权利要求1至8中任一项所述的通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351731.6A CN111669534A (zh) | 2020-04-28 | 2020-04-28 | 通信方法、第一客户端、即时通讯系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010351731.6A CN111669534A (zh) | 2020-04-28 | 2020-04-28 | 通信方法、第一客户端、即时通讯系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111669534A true CN111669534A (zh) | 2020-09-15 |
Family
ID=72382966
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010351731.6A Pending CN111669534A (zh) | 2020-04-28 | 2020-04-28 | 通信方法、第一客户端、即时通讯系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111669534A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491401A (zh) * | 2015-12-11 | 2016-04-13 | 北京中环星技术有限公司 | Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 |
CN108063745A (zh) * | 2016-11-08 | 2018-05-22 | 北京视联动力国际信息技术有限公司 | 一种基于安卓设备的视频通话方法及其系统 |
CN108259810A (zh) * | 2018-03-29 | 2018-07-06 | 上海掌门科技有限公司 | 一种视频通话的方法、设备和计算机存储介质 |
CN108632558A (zh) * | 2017-08-30 | 2018-10-09 | 北京视联动力国际信息技术有限公司 | 一种视频通话的方法和装置 |
CN110505204A (zh) * | 2019-07-17 | 2019-11-26 | 视联动力信息技术股份有限公司 | 一种即时语音通信方法、装置、电子设备及可读存储介质 |
US20190364087A1 (en) * | 2018-05-24 | 2019-11-28 | Mersoft Corporation | Protocol conversion of a video stream |
-
2020
- 2020-04-28 CN CN202010351731.6A patent/CN111669534A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105491401A (zh) * | 2015-12-11 | 2016-04-13 | 北京中环星技术有限公司 | Rtsp/rtp音视频流转换为ts流并通过asi接口输出的方法和装置 |
CN108063745A (zh) * | 2016-11-08 | 2018-05-22 | 北京视联动力国际信息技术有限公司 | 一种基于安卓设备的视频通话方法及其系统 |
CN108632558A (zh) * | 2017-08-30 | 2018-10-09 | 北京视联动力国际信息技术有限公司 | 一种视频通话的方法和装置 |
CN108259810A (zh) * | 2018-03-29 | 2018-07-06 | 上海掌门科技有限公司 | 一种视频通话的方法、设备和计算机存储介质 |
WO2019184499A1 (zh) * | 2018-03-29 | 2019-10-03 | 上海掌门科技有限公司 | 一种视频通话的方法、设备和计算机存储介质 |
US20190364087A1 (en) * | 2018-05-24 | 2019-11-28 | Mersoft Corporation | Protocol conversion of a video stream |
CN110505204A (zh) * | 2019-07-17 | 2019-11-26 | 视联动力信息技术股份有限公司 | 一种即时语音通信方法、装置、电子设备及可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101973544B1 (ko) | 멀티미디어 시스템에서 복합 미디어 컨텐츠를 송수신하는 방법 및 장치 | |
US9246630B2 (en) | Method, device, and system for forward error correction | |
US10326811B2 (en) | Communication apparatus, communication data generation method, and communication data processing method | |
CN113766317A (zh) | 视频传输方法、装置、电子设备和存储介质 | |
CN105704580B (zh) | 一种视频传输方法 | |
CN107018446A (zh) | 一种网络视频点播以及直播的推流方法 | |
US20150110168A1 (en) | Video data transmission method and apparatus | |
CN110740380A (zh) | 视频处理方法和装置、存储介质及电子装置 | |
KR101959319B1 (ko) | 비디오 데이터 인코딩 및 디코딩 방법 및 장치 | |
CN110113306B (zh) | 分发数据的方法和网络设备 | |
WO2018118710A1 (en) | Detecting and signaling new initialization segments during manifest-file-free media streaming | |
US20090154448A1 (en) | Terminal equipment of communication system and method thereof | |
CN101494793A (zh) | 流媒体数据的发送、接收方法、装置和系统 | |
CN111803924B (zh) | 云游戏的多终端同步显示方法、装置及可读存储介质 | |
KR20160138044A (ko) | 미디어 데이터를 스트리밍하기 위한 목표된 광고 삽입 | |
CN113301051A (zh) | 数据的传输方法、装置、计算机存储介质和处理器 | |
CN115904281A (zh) | 云桌面会议共享方法、服务器和计算机可读存储介质 | |
US9246631B2 (en) | Communication devices that encode and transmit data, methods of controlling such communication devices, and computer-readable storage media storing instructions for controlling such communication devices | |
CN111669534A (zh) | 通信方法、第一客户端、即时通讯系统 | |
CN114979793B (zh) | 一种直播数据传输方法、装置、系统、设备和介质 | |
CN115103228A (zh) | 视频流传输方法、装置、电子设备、存储介质及产品 | |
CN114979093A (zh) | 一种基于rtp的数据传输方法、装置、设备和介质 | |
TWI358931B (en) | Network address translation device and packet proc | |
CN111385081B (zh) | 一种端到端的通信方法、装置、电子设备及介质 | |
CN101296166A (zh) | 基于索引的多媒体数据的测量方法 |
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 |