CN108173863A - 建立适用于物联网设备的轻量级WebRTC系统的方法和系统 - Google Patents
建立适用于物联网设备的轻量级WebRTC系统的方法和系统 Download PDFInfo
- Publication number
- CN108173863A CN108173863A CN201711484937.0A CN201711484937A CN108173863A CN 108173863 A CN108173863 A CN 108173863A CN 201711484937 A CN201711484937 A CN 201711484937A CN 108173863 A CN108173863 A CN 108173863A
- Authority
- CN
- China
- Prior art keywords
- modules
- opposite equip
- data
- packet loss
- sent
- 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.)
- Granted
Links
Classifications
-
- 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/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/12—Arrangements for detecting or preventing errors in the information received by using return channel
- H04L1/16—Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
- H04L1/18—Automatic repetition systems, e.g. Van Duuren systems
- H04L1/1829—Arrangements specially adapted for the receiver end
- H04L1/1835—Buffer management
- H04L1/1838—Buffer management for semi-reliable protocols, e.g. for less sensitive applications such as streaming video
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/256—NAT traversal
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种建立适用于物联网设备的轻量级WebRTC系统的方法和系统,包括:在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。本申请架构简单,功能专一,适用物联网嵌入式设备,具备WebRTC基本功能,满足物联网设备基本音视频RTC通信功能,同时与通用平台的WebRTC应用可以相互通信。
Description
技术领域
本申请涉及物联网多媒体通信领域,尤其涉及一种建立适用于物联网设备的轻量级WebRTC系统的方法和系统。
背景技术
WebRTC是google公司力推的一个开源项目,旨在给浏览器与手机的web应用提供简单的JavaScript接口,使其具备RTC(Real-Time Communications)实时通信能力。意味着开发者在支持WebRTC浏览器上开发web应用仅需简单的JavaScript语句就可以实现复杂的多媒体RTC功能,极大降低了开发难度和开发成本,W3C等组织正在制定WebRTC标准JavaScript API接口。
WebRTC整个项目技术架构中,WebRTC底层提供了音视频多媒体的核心技术,包括音视频采集、编解码、网络传输、显示渲染等功能,同时提供Native C++ API接口,供外部应用调用。浏览器所提供的WebRTC标准JavaScript API接口的最终也是通过内部调用WebRTCNative C++ API接口实现。
WebRTC支持windows、linux、mac、android和ios这几个通用平台。目前windows、linux和android平台都提供支持WebRTC的浏览器,开发者可以基于该浏览器进行RTC web开发。Mac和ios虽然暂时没有提供支持WebRTC的浏览器,但开发者可以通过WebRTC NativeC++ API接口进行RTC开发。
不同平台的应用只要支持WebRTC功能,均可实现RTC多媒体通信。同理,物联网的终端设备只要支持WebRTC功能,也可以与其它通用平台的支持WebRTC功能的应用进行RTC多媒体通信。
物联网的终端设备大多都是嵌入式设备,运行的都是专用的嵌入式操作系统。对于嵌入式系统而言WebRTC有如下几个缺点:
嵌入式系统由于资源限制一般不提供浏览器,更不会提供支持WebRTC的浏览器,因此无法使用WebRTC标准JavaScript API接口进行开发,嵌入式开发者只能使用WebRTC提供的Native C++ API进行开发。
嵌入式设备一般运行的都是专用的嵌入式操作系统,而WebRTC目前只支持通用操作系统,因此嵌入式开发者无法使用WebRTC提供的Native C++ API进行开发。
目前市面上嵌入式操作系统种类繁多,这就需要软件架构简单,功能高效专一,交叉编译灵活,便于裁减和移值。由于目前WebRTC针对的应用场景复杂多样,因而它的架构设计复杂、功能全面、代码庞大不易维护、交叉编译困难,不适用于嵌入式系统。
发明内容
本申请提供一种建立适用于物联网设备的轻量级WebRTC系统的方法和系统。
根据本申请的第一方面,本申请提供一种建立适用于物联网设备的轻量级WebRTC系统的方法,包括:
在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;
在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;
对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;
接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。
上述方法,所述在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径,包括:
Transport模块收集本端设备ICE信息并发送给MQTTMNG模块;
MQTTMNG模块构造MQTT请求消息并通过Transport模块发送给对端设备;
Transport模块将收到的对端设备的MQTT请求消息转发给MQTTMNG模块;
Transport模块与对端设备进行P2P NAT穿越操作。
上述方法,所述在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中,具体包括:
AHC模块或VHC模块从硬件编码器中获取数据,并将每一帧数据传送给Transport模块;
Transport模块将封包的音视频数据帧缓存到RTPCache模块中并通过网络发送给对端设备;
Transport模块在接收到对端设备发送过来的音视频数据后,进行解包并将解包后的数据缓存到RTPCache模块中;
RTPCache模块对缓存中的接收到的数据进行处理组成一个完整音频或视频帧后,将其传送给AHC模块;
AHC模块接收到从RTPCache模块传送的数据帧后,传送给音频或视频硬件解码器进行解码。
上述方法,所述对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中,具体包括:
RTPCache模块定时对缓存中接收的数据包进行丢包检测,将丢包信息传送给Transport模块;
Transport模块根据丢包信息进行封装,并构造丢包重传消息,发送给对端设备;
对端设备处理接收到的丢包重传消息,并将解析出的需要重传数据封装后发送给本端设备;
Transport模块接收到对端发送的重传包后,解封装得到原始数据包,并缓存到RTPCache模块中。
上述方法,所述接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备,包括:
Transport模块在接收到对端设备发送的丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;
RTPCache模块在接收到重传包信息时,在缓存的数据中检索出需要重传的数据包,并传送给Transport模块;
Transport模块对重传的数据包进行SRTP封装并发送给对端设备。
根据本申请的第二方面,本申请提供一种建立适用于物联网设备的轻量级WebRTC系统的系统,包括:
路径建立模块,用于在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;
数据传输模块,用于在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;
丢包重传请求模块,用于对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;
丢包重传处理模块,用于接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。
上述系统,所述路径建立模块还用于:
Transport模块收集本端设备ICE信息并发送给MQTTMNG模块;
MQTTMNG模块构造MQTT请求消息并通过Transport模块发送给对端设备;
Transport模块将收到的对端设备的MQTT请求消息转发给MQTTMNG模块;
Transport模块与对端设备进行P2P NAT穿越操作。
上述系统,所述数据传输模块还用于:
AHC模块或VHC模块从硬件编码器中获取数据,并将每一帧数据传送给Transport模块;
Transport模块将封包的音视频数据帧缓存到RTPCache模块中并通过网络发送给对端设备;
Transport模块在接收到对端设备发送过来的音视频数据后,进行解包并将解包后的数据缓存到RTPCache模块中;
RTPCache模块对缓存中的接收到的数据进行处理组成一个完整音频或视频帧后,将其传送给AHC模块;
AHC模块接收到从RTPCache模块传送的数据帧后,传送给音频或视频硬件解码器进行解码。
上述系统,所述丢包重传请求模块还用于:
RTPCache模块定时对缓存中接收的数据包进行丢包检测,将丢包信息传送给Transport模块;
Transport模块根据丢包信息进行封装,并构造丢包重传消息,发送给对端设备;
对端设备处理接收到的丢包重传消息,并将解析出的需要重传数据封装后发送给本端设备;
Transport模块接收到对端发送的重传包后,解封装得到原始数据包,并缓存到RTPCache模块中。
上述系统,所述丢包重传处理模块还用于:
Transport模块在接收到对端设备发送的丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;
RTPCache模块在接收到重传包信息时,在缓存的数据中检索出需要重传的数据包,并传送给Transport模块;
Transport模块对重传的数据包进行SRTP封装并发送给对端设备。
根据本申请的第三方面,本申请提供一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现上述方法。
由于采用了以上技术方案,使本申请具备的有益效果在于:
在本申请的具体实施方式中,在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径,在本端设备和对端设备之间进行音视频数据传输,架构简单,功能专一,适用物联网嵌入式设备,具备WebRTC基本功能,满足物联网设备基本音视频RTC通信功能,同时与通用平台的WebRTC应用可以相互通信。
附图说明
图1为本申请的轻量级WebRTC系统在一种实施方式中的数据结构示意图;
图2为本申请的方法在一种实施方法中的流程图;
图3为本申请的方法在一种实施方式中的信令交互及P2P NAT穿越流程图;
图4为本申请的方法在一种实施方式中的音频数据的发送与接收流程图;
图5为本申请的方法在一种实施方式中的视频数据的发送与接收流程图;
图6为本申请的方法在一种实施方式中的音视频数据丢包重传请求发送流程图;
图7为本申请的方法在一种实施方式中的音视频数据丢包重传请求处理流程图;
图8为本申请的系统在一种实施方式中的功能模块示意图。
具体实施方式
下面通过具体实施方式结合附图对本申请作进一步详细说明。
本发明要解决的技术问题是设计出一种适用于物联网设备的轻量级WebRTC系统。图1显示轻量级WebRTC系统架构。该架构简化架构设计,减少冗余模块,功能设计专一,去除冗余功能。代码采用C语言实现,保证代码可移植和可交叉编译。
本申请具备WebRTC基本功能,满足物联网设备基本音视频RTC通信功能。同时与通用平台的WebRTC应用可以相互通信。
原有WebRTC和嵌入式设备分别支持多种不同的音视频编码格式,为了让两者应用互通和简化代码架构逻辑,本申请列举两者分别支持的主流音视频编码格式,做出交集后得到支持的音频格式为PCMA/PCMU,视频格式为H264。
原有WebRTC提供了音视频软件编解码和硬件编解码两种解决方案,同时引用了大量的开源第三方不同编码格式的软件编解码库。对于嵌入式系统而言,由于CPU处理能力限制,一般不支持音视频的软件编解码功能,但会提供音视频硬件编解码功能。因此本申请仅支持音视频硬件编解码,不支持音视频软件编解码。
本申请的AHC(Audio Hardware Codec)模块是与硬件音频编解码器的接口,该模块一方面负责从硬件音频编码器中获取编码后的音频数据,并交由Transport模块打包和发送;另一方面负责把接收到的音频数据传送给硬件解码器进行解码。
本申请的VHC(Video Hardware Codec)模块是与硬件视频编解码器的接口,该模块一方面负责从硬件视频编码器中获取编码后的视频帧数据,并交由Transport模块打包和发送;另一方面负责把接收到的视频数据传送给硬件解码器进行解码。
本申请的Transport模块主要负责网络传输方面的功能,包括P2P NAT穿越、RTP/RTCP的打包和解包和SRTP的打包和解包等。其中P2P NAT穿越主要采用ICE框架,具体方法参见RFC5245;RTP/RTCP的打包和解包方法参见RFC3550;H264RTP的打包和解包方法参见RFC3984;SRTP的打包和解包方法参见RFC3711。
本申请的RTPCache模块主要负责维护RTP包的缓存数据,包括RTP接收缓存数据和RTP发送缓存数据。其中RTP发送缓存数据主要用于重传对端设备请求的丢失包。RTP接收缓存数据主要用于处理本端接收的RTP包乱序重排问题,同时也检测本端接收的RTP包丢失问题。
本申请的MQTTMng(MQTT Session Managemen)模块主要负责与对端设备的信令交互。原有WebRTC只对信令交互实体内容进行了约定,但并未对信令协议进行约定。由于MQTT是物联网平台主流信令协议,因此本申请采用MQTT作为信令交互协议。
实施例一:
如图2所示,本申请的建立适用于物联网设备的轻量级WebRTC系统的方法,其一种实施方式,包括以下步骤:
步骤202:在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;
步骤204:在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;
步骤206:对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;
步骤208:接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。
步骤202具体可以包括:
步骤2022:Transport模块收集本端设备ICE信息并发送给MQTTMNG模块;
步骤2024:MQTTMNG模块构造MQTT请求消息并通过Transport模块发送给对端设备;
步骤2026:Transport模块将收到的对端设备的MQTT请求消息转发给MQTTMNG模块;
步骤2028:Transport模块与对端设备进行P2P NAT穿越操作。
如图3所示,是本申请的信令交互及P2P NAT穿越流程图,本实施例可以由本端设备向对端设备发起播放请求,包含以下步骤:
步骤301:Transport模块收集本端ICE信息;
步骤302:Transport模块等待ICE信息收集完毕后,通过回调函数将ICE信息传送给MQTTMng模块;
步骤303:MQTTMng模块收到ICE信息后,构造MQTT请求消息;
步骤304:MQTTMng模块将构造好的MQTT请求消息传送给Transport模块;
步骤305:Transport模块通过网络将MQTT请求消息转发送给对端设备;
步骤306:对端设备接收到本端设备发给的MQTT请求消息后,给本端设备发送MQTT回复消息;
步骤307:Transport模块在接收到MQTT回复消息后,将消息转发给MQTTMng模块;
步骤308:至此,本端设备与对端设备的ICE信息已交互完毕,MQTTMng模块通知Transport模块执行P2P NAT穿越操作;
步骤309:Transport模块与对端设备进行P2P NAT穿越操作,具体流程详见RFC5245;
步骤310:Transport模块与对端设备P2P NAT穿越完毕后,通过回调函数将结果通知到MQTTMng模块;
在一种实施方式中,步骤204具体可以包括:
步骤2041:AHC模块或VHC模块从硬件编码器中获取数据,并将每一帧数据传送给Transport模块;
步骤2042:Transport模块将封包的音视频数据帧缓存到RTPCache模块中并通过网络发送给对端设备;
步骤2043:Transport模块在接收到对端设备发送过来的音视频数据后,进行解包并将解包后的数据缓存到RTPCache模块中;
步骤2044:RTPCache模块对缓存中的接收到的数据进行处理组成一个完整音频或视频帧后,将其传送给AHC模块;
步骤2045:AHC模块接收到从RTPCache模块传送的数据帧后,传送给音频或视频硬件解码器进行解码。
步骤204中传送的数据包括音频数据和视频数据。在一种具体实施方式中,如图4所示,音频数据的发送与接收流程图。包含以下步骤:
步骤401:AHC模块实时从硬件编码器中获取音频数据;
步骤402:AHC模块将每一帧音频数据传送给Transport模块;
步骤403:Transport模块对每一帧音频数据进行RTP封包和SRTP封包。RTP封包方法详见RFC3550,SRTP封包方法详见RFC3711;
步骤404:Transport模块将RTP封包的音频数据帧缓存到RTPCache模块中;
步骤405:Transport模块将SRTP封包的音频数据帧通过网络发送给对端设备;
步骤406:由于音频数据传输是双向的,对端设备也会将它的音频数据进行RTP封包和SRTP封包,并发送给本端设备;
步骤407:Transport模块在接收到对端设备发送过来的音频数据后,进行RTP和SRTP解包。RTP解包方法详见RFC3550,SRTP解包方法详见RFC3711;
步骤408:Transport模块将SRTP解包后的RTP包缓存到RTPCache模块中;
步骤409:RTPCache模块对缓存中的接收到的RTP包进行丢包检测和乱序重排;
步骤410:RTPCache模块将缓存中的RTP包进行解包,组成一个完整音频帧后,将其传送给AHC模块;
步骤411:AHC模块接收到RTPCache模块传送给的音频数据帧后,将其传送给音频硬件解码器进行解码;
在一种具体实施方式中,如图5所示,视频数据的发送与接收流程可以包括以下步骤:
步骤501:VHC模块实时从硬件编码器中获取视频数据;
步骤502:VHC模块将每一帧视频数据传送给Transport模块;
步骤503:Transport模块对每一帧视频数据进行RTP封包和SRTP封包。RTP封包方法详见RFC3550,SRTP封包方法详见RFC3711;
步骤504:Transport模块将RTP封包的视频数据帧缓存到RTPCache模块中;
步骤505:Transport模块将SRTP封包的视频数据帧通过网络发送给对端设备;
步骤506:由于视频数据传输是双向的,对端设备也会将它的视频数据进行RTP封包和SRTP封包,并发送给本端设备;
步骤507:Transport模块在接收到对端设备发送过来的视频数据后,进行RTP和SRTP解包。RTP解包方法详见RFC3550,SRTP解包方法详见RFC3711;
步骤508:Transport模块将SRTP解包后的RTP包缓存到RTPCache模块中;
步骤509:RTPCache模块对缓存中的接收到的RTP包进行丢包检测和乱序重排;
步骤510:RTPCache模块将缓存中的RTP包进行解包,组成一个完整视频帧后,将其传送给VHC模块;
步骤511:VHC模块接收到RTPCache模块传送给的视频数据帧后,将其传送给视频硬件解码器进行解码;
在一种实施方式中,步骤206具体可以包括以下内容:
步骤2061:RTPCache模块定时对缓存中接收的数据包进行丢包检测,将丢包信息传送给Transport模块;
步骤2062:Transport模块根据丢包信息进行封装,并构造丢包重传消息,发送给对端设备;
步骤2063:对端设备处理接收到的丢包重传消息,并将解析出的需要重传数据封装后发送给本端设备;
步骤2064:Transport模块接收到对端发送的重传包后,解封装得到原始数据包,并缓存到RTPCache模块中。
在一种具体实施方式中,如图6所示,音视频数据丢包重传请求发送流程可以包括以下步骤:
步骤601:RTPCache模块定时对缓存中接收的RTP数据包进行丢包检测;
步骤602:RTPCache模块将丢包信息传送给Transport模块;
步骤603:Transport模块根据丢包信息进行RTCP和SRTP封装,并构造丢包重传消息;
步骤604:Transport模块将构造好的丢包重传消息通过网络发送给对端设备;
步骤605:对端设备处理接收到的丢包重传消息,并将解析出的需要重传的RTP包进行SRTP封装后发送给本端设备;
步骤606:Transport模块接收到对端发送的重传包后,对包进行SRTP解封装,得到原始RTP包;
步骤607:Transport模块将解封装后的RTP包缓存到RTPCache模块中;
在一种实施方式中,步骤208具体可以包括:
步骤2081:Transport模块在接收到对端设备发送的丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;
步骤2082:RTPCache模块在接收到重传包信息时,在缓存的数据中检索出需要重传的数据包,并传送给Transport模块;
步骤2083:Transport模块对重传的数据包进行SRTP封装并发送给对端设备。
在一种具体实施方式中,如图7所示,音视频数据丢包重传请求处理流程可以包括以下步骤:
步骤701:对端设备给本端发送丢包重传请求消息;
步骤702:Transport模块在接收到丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;
步骤703:RTPCache模块在接收到重传包信息时,在缓存的RTP数据中检索出需要重传的数据包;
步骤704:RTPCache模块将需要重传的数据包传送给Transport模块;
步骤705:Transport模块对重传的数据包进行SRTP封装;
步骤706:Transport模块将SRTP包通过网络发送给对端设备;
实施例二:
如图8所示,本申请的建立适用于物联网设备的轻量级WebRTC系统的系统,其一种实施方式,包括路径建立模块、数据传输模、丢包重传请求模块和丢包重传处理模块。
路径建立模块,用于在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;
数据传输模块,用于在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;
丢包重传请求模块,用于对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;
丢包重传处理模块,用于接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。
在一种实施方式中,路径建立模块,还可以用于Transport模块收集本端设备ICE信息并发送给MQTTMNG模块;MQTTMNG模块构造MQTT请求消息并通过Transport模块发送给对端设备;Transport模块将收到的对端设备的MQTT请求消息转发给MQTTMNG模块;Transport模块与对端设备进行P2P NAT穿越操作。
本申请的数据传输模块,还可以用于AHC模块或VHC模块从硬件编码器中获取数据,并将每一帧数据传送给Transport模块;Transport模块将封包的音视频数据帧缓存到RTPCache模块中并通过网络发送给对端设备;Transport模块在接收到对端设备发送过来的音视频数据后,进行解包并将解包后的数据缓存到RTPCache模块中;RTPCache模块对缓存中的接收到的数据进行处理组成一个完整音频或视频帧后,将其传送给AHC模块;AHC模块接收到从RTPCache模块传送的数据帧后,传送给音频或视频硬件解码器进行解码。
在一种实施方式中,丢包重传请求模块,还可以用于:RTPCache模块定时对缓存中接收的数据包进行丢包检测,将丢包信息传送给Transport模块;Transport模块根据丢包信息进行封装,并构造丢包重传消息,发送给对端设备;对端设备处理接收到的丢包重传消息,并将解析出的需要重传数据封装后发送给本端设备;Transport模块接收到对端发送的重传包后,解封装得到原始数据包,并缓存到RTPCache模块中。
在另一种实施方式中,本申请的丢包重传处理模块,还用于可以:Transport模块在接收到对端设备发送的丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;RTPCache模块在接收到重传包信息时,在缓存的数据中检索出需要重传的数据包,并传送给Transport模块;Transport模块对重传的数据包进行SRTP封装并发送给对端设备。
实施例三:
本申请还可以提供一种计算机可读存储介质,包括程序,该程序能够被处理器执行以实现实施例一中的方法。
以上内容是结合具体的实施方式对本申请所作的进一步详细说明,不能认定本申请的具体实施只局限于这些说明。对于本申请所属技术领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干简单推演或替换。
Claims (11)
1.一种建立适用于物联网设备的轻量级WebRTC系统的方法,其特征在于,包括:
在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;
在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;
对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;
接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。
2.如权利要求1所述的方法,其特征在于,所述在本端设备和对端设备之间通过P2PNAT穿越的建立通信路径,包括:
Transport模块收集本端设备ICE信息并发送给MQTTMNG模块;
MQTTMNG模块构造MQTT请求消息并通过Transport模块发送给对端设备;
Transport模块将收到的对端设备的MQTT请求消息转发给MQTTMNG模块;
Transport模块与对端设备进行P2P NAT穿越操作。
3.如权利要求2所述的方法,其特征在于,所述在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中,具体包括:
AHC模块或VHC模块从硬件编码器中获取数据,并将每一帧数据传送给Transport模块;
Transport模块将封包的音视频数据帧缓存到RTPCache模块中并通过网络发送给对端设备;
Transport模块在接收到对端设备发送过来的音视频数据后,进行解包并将解包后的数据缓存到RTPCache模块中;
RTPCache模块对缓存中的接收到的数据进行处理组成一个完整音频或视频帧后,将其传送给AHC模块;
AHC模块接收到从RTPCache模块传送的数据帧后,传送给音频或视频硬件解码器进行解码。
4.如权利要求3所述的方法,其特征在于,所述对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中,具体包括:
RTPCache模块定时对缓存中接收的数据包进行丢包检测,将丢包信息传送给Transport模块;
Transport模块根据丢包信息进行封装,并构造丢包重传消息,发送给对端设备;
对端设备处理接收到的丢包重传消息,并将解析出的需要重传数据封装后发送给本端设备;
Transport模块接收到对端发送的重传包后,解封装得到原始数据包,并缓存到RTPCache模块中。
5.如权利要求4所述的方法,其特征在于,所述接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备,包括:
Transport模块在接收到对端设备发送的丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;
RTPCache模块在接收到重传包信息时,在缓存的数据中检索出需要重传的数据包,并传送给Transport模块;
Transport模块对重传的数据包进行SRTP封装并发送给对端设备。
6.一种建立适用于物联网设备的轻量级WebRTC系统的系统,其特征在于,包括:
路径建立模块,用于在本端设备和对端设备之间通过P2P NAT穿越的建立通信路径;
数据传输模块,用于在本端设备和对端设备之间进行音视频数据传输,并将音视频数据包保存在缓存中;
丢包重传请求模块,用于对缓存中的音视频数据进行丢包检测,将丢包重传消息发送给对端设备,同时根据丢包重传信息得到原始数据包,并保存在缓存中;
丢包重传处理模块,用于接收对端设备发送的丢包重传请求,并将缓存中的原始数据包中检索出需重传的数据包,并发送给对端设备。
7.如权利要求6所述的系统,其特征在于,所述路径建立模块还用于:
Transport模块收集本端设备ICE信息并发送给MQTTMNG模块;
MQTTMNG模块构造MQTT请求消息并通过Transport模块发送给对端设备;
Transport模块将收到的对端设备的MQTT请求消息转发给MQTTMNG模块;
Transport模块与对端设备进行P2P NAT穿越操作。
8.如权利要求7所述的系统,其特征在于,所述数据传输模块还用于:
AHC模块或VHC模块从硬件编码器中获取数据,并将每一帧数据传送给Transport模块;
Transport模块将封包的音视频数据帧缓存到RTPCache模块中并通过网络发送给对端设备;
Transport模块在接收到对端设备发送过来的音视频数据后,进行解包并将解包后的数据缓存到RTPCache模块中;
RTPCache模块对缓存中的接收到的数据进行处理组成一个完整音频或视频帧后,将其传送给AHC模块;
AHC模块接收到从RTPCache模块传送的数据帧后,传送给音频或视频硬件解码器进行解码。
9.如权利要求8所述的系统,其特征在于,所述丢包重传请求模块还用于:
RTPCache模块定时对缓存中接收的数据包进行丢包检测,将丢包信息传送给Transport模块;
Transport模块根据丢包信息进行封装,并构造丢包重传消息,发送给对端设备;
对端设备处理接收到的丢包重传消息,并将解析出的需要重传数据封装后发送给本端设备;
Transport模块接收到对端发送的重传包后,解封装得到原始数据包,并缓存到RTPCache模块中。
10.如权利要求9所述的系统,其特征在于,所述丢包重传处理模块还用于:
Transport模块在接收到对端设备发送的丢包重传请求消息后,解析得到重传包信息,并传送给RTPCache模块;
RTPCache模块在接收到重传包信息时,在缓存的数据中检索出需要重传的数据包,并传送给Transport模块;
Transport模块对重传的数据包进行SRTP封装并发送给对端设备。
11.一种计算机可读存储介质,其特征在于,包括程序,所述程序能够被处理器执行以实现如权利要求1-5任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484937.0A CN108173863B (zh) | 2017-12-29 | 2017-12-29 | 建立适用于物联网设备的轻量级WebRTC系统的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711484937.0A CN108173863B (zh) | 2017-12-29 | 2017-12-29 | 建立适用于物联网设备的轻量级WebRTC系统的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108173863A true CN108173863A (zh) | 2018-06-15 |
CN108173863B CN108173863B (zh) | 2021-08-17 |
Family
ID=62516216
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711484937.0A Active CN108173863B (zh) | 2017-12-29 | 2017-12-29 | 建立适用于物联网设备的轻量级WebRTC系统的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108173863B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110233856A (zh) * | 2019-06-28 | 2019-09-13 | 北京云中融信网络科技有限公司 | 报文处理方法、装置及计算机可读存储介质 |
CN112580145A (zh) * | 2020-11-30 | 2021-03-30 | 浙江万里学院 | 一种基于物联网大数据动力总成轻量化设计方法 |
CN112702624A (zh) * | 2020-12-22 | 2021-04-23 | 山东鲁能软件技术有限公司 | 一种短视频播放效率的优化方法、系统、介质及设备 |
CN113194125A (zh) * | 2021-04-19 | 2021-07-30 | 天津市滨海新区环境创新研究院 | 基于物联网平台的丢包重传方法及系统 |
US12003660B2 (en) | 2021-12-31 | 2024-06-04 | Avila Technology, LLC | Method and system to implement secure real time communications (SRTC) between WebRTC and the internet of things (IoT) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118292A (zh) * | 2011-02-28 | 2011-07-06 | 成都市华为赛门铁克科技有限公司 | 互联网协议多媒体子系统网络、数据传输方法和装置 |
US20140348044A1 (en) * | 2013-05-21 | 2014-11-27 | Ecrio, Inc. | Real-Time Rich Communications Client Architecture |
CN104869101A (zh) * | 2014-02-21 | 2015-08-26 | 华为技术有限公司 | 一种通道建立的方法和设备 |
CN105407369A (zh) * | 2015-11-17 | 2016-03-16 | 青岛海信电器股份有限公司 | 一种基于Web应用的终端通信方法与装置 |
CN105530453A (zh) * | 2015-12-29 | 2016-04-27 | 苏州科达科技股份有限公司 | 用于WebRTC的视频数据发送方法及装置、接收方法及装置 |
CN105554029A (zh) * | 2016-01-27 | 2016-05-04 | 北京邮电大学 | WebRTC与SIP终端媒体互通的方法和媒体网关 |
CN105763831A (zh) * | 2014-12-16 | 2016-07-13 | 中国移动通信集团公司 | 一种实现视频会议的方法、装置和系统 |
CN107168856A (zh) * | 2017-05-18 | 2017-09-15 | 北京大生在线科技有限公司 | Chrome的webrtc‑internals工具显示终端应用程序的方法 |
EP3223578A1 (en) * | 2014-11-21 | 2017-09-27 | Samsung Electronics Co., Ltd. | Method and apparatus for providing session-based web service |
-
2017
- 2017-12-29 CN CN201711484937.0A patent/CN108173863B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102118292A (zh) * | 2011-02-28 | 2011-07-06 | 成都市华为赛门铁克科技有限公司 | 互联网协议多媒体子系统网络、数据传输方法和装置 |
US20140348044A1 (en) * | 2013-05-21 | 2014-11-27 | Ecrio, Inc. | Real-Time Rich Communications Client Architecture |
CN104869101A (zh) * | 2014-02-21 | 2015-08-26 | 华为技术有限公司 | 一种通道建立的方法和设备 |
EP3223578A1 (en) * | 2014-11-21 | 2017-09-27 | Samsung Electronics Co., Ltd. | Method and apparatus for providing session-based web service |
CN105763831A (zh) * | 2014-12-16 | 2016-07-13 | 中国移动通信集团公司 | 一种实现视频会议的方法、装置和系统 |
CN105407369A (zh) * | 2015-11-17 | 2016-03-16 | 青岛海信电器股份有限公司 | 一种基于Web应用的终端通信方法与装置 |
CN105530453A (zh) * | 2015-12-29 | 2016-04-27 | 苏州科达科技股份有限公司 | 用于WebRTC的视频数据发送方法及装置、接收方法及装置 |
CN105554029A (zh) * | 2016-01-27 | 2016-05-04 | 北京邮电大学 | WebRTC与SIP终端媒体互通的方法和媒体网关 |
CN107168856A (zh) * | 2017-05-18 | 2017-09-15 | 北京大生在线科技有限公司 | Chrome的webrtc‑internals工具显示终端应用程序的方法 |
Non-Patent Citations (1)
Title |
---|
袁智: "基于WebRTC的家用远程视频监控软件", 《电脑知识与技术》 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110233856A (zh) * | 2019-06-28 | 2019-09-13 | 北京云中融信网络科技有限公司 | 报文处理方法、装置及计算机可读存储介质 |
CN110233856B (zh) * | 2019-06-28 | 2022-04-05 | 北京云中融信网络科技有限公司 | 报文处理方法、装置及计算机可读存储介质 |
CN112580145A (zh) * | 2020-11-30 | 2021-03-30 | 浙江万里学院 | 一种基于物联网大数据动力总成轻量化设计方法 |
CN112580145B (zh) * | 2020-11-30 | 2024-10-01 | 浙江万里学院 | 一种基于物联网大数据动力总成轻量化设计方法 |
CN112702624A (zh) * | 2020-12-22 | 2021-04-23 | 山东鲁能软件技术有限公司 | 一种短视频播放效率的优化方法、系统、介质及设备 |
CN113194125A (zh) * | 2021-04-19 | 2021-07-30 | 天津市滨海新区环境创新研究院 | 基于物联网平台的丢包重传方法及系统 |
US12003660B2 (en) | 2021-12-31 | 2024-06-04 | Avila Technology, LLC | Method and system to implement secure real time communications (SRTC) between WebRTC and the internet of things (IoT) |
Also Published As
Publication number | Publication date |
---|---|
CN108173863B (zh) | 2021-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108173863A (zh) | 建立适用于物联网设备的轻量级WebRTC系统的方法和系统 | |
CN104137563B (zh) | 在无线显示系统中的宿设备处的基于应用认知的定制缓存 | |
CN104054068B (zh) | 用于远程桌面协议的改进的带宽优化 | |
JP6106775B2 (ja) | ダウンローディング及びストリーミングをサポートするパケット受信方法 | |
JP3512776B2 (ja) | 通信網におけるビットストリーム送受信装置及びその方法 | |
TWI357243B (en) | Buffer level signaling for rate adaptation in mult | |
Li et al. | Research based on OSI model | |
CN105530453B (zh) | 用于WebRTC的视频数据发送方法及装置、接收方法及装置 | |
WO2015147590A1 (en) | Broadcast and broadband hybrid service with mmt and dash | |
US11792130B2 (en) | Audio/video communication method, terminal, server, computer device, and storage medium | |
US20230083441A1 (en) | Managing subpacket transmission and reception for advanced interactive services | |
WO2018018627A1 (zh) | 一种数据传输方法、系统及接收装置 | |
RU2003130091A (ru) | Способ и устройство для обеспечения уровней с множеством показателей качества обслуживания в соединениях беспроводной передачи пакетов данных | |
WO2010081328A1 (zh) | 一种数据传输方法和传输系统、及数据发送端 | |
CN104270594B (zh) | 数据包发送与接收的方法及设备 | |
KR20170097548A (ko) | 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치 | |
CN105681342A (zh) | 一种基于h264的多路视频会议系统的抗误码方法及系统 | |
CN106921843A (zh) | 数据传输方法及装置 | |
CN105897687A (zh) | 一种传输数据的方法和设备 | |
CN105611424B (zh) | 基于rudp的音视频可靠传输qos方法、接收端及系统 | |
Suherman et al. | Increasing uplink broadband video streaming protocol performance in WiMAX network | |
CN103188403A (zh) | 语音网关在线监听方法 | |
CN112887497B (zh) | 通信方法、装置和计算机存储介质 | |
CN109274980A (zh) | 一种用于快速直播的数据传输方法 | |
CN102282886A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
CP03 | Change of name, title or address |
Address after: 518000 6th floor, building 3, Nanyou 4th Industrial Zone, Nanshan Avenue, Nanshan District, Shenzhen City, Guangdong Province Patentee after: Shenzhen Sanjiang Intelligent Control Technology Co.,Ltd. Address before: 518054 6th floor, building 3, Nanyou 4th Industrial Zone, Nanshan Avenue, Nanshan District, Shenzhen City, Guangdong Province Patentee before: SHENZHEN FANHAI SANJIANG TECHNOLOGY DEVELOPMENT Co.,Ltd. |
|
CP03 | Change of name, title or address |