ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

webrtc学习

2021-01-13 14:58:29  阅读:172  来源: 互联网

标签:协议 UDP 音视频 学习 传输 RTP 数据 webrtc


什么是webrtc

​ WebRTC,名称源自网页实时通信(Web Real-Time Communication)的缩写,是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输,支持网页浏览器进行实时语音对话或视频对话。WebRTC包含的这些标准使用户在无需安装任何插件或者第三方的软件的情况下,创建点对点(Peer-to-Peer)的数据分享和电话会议成为可能。

webrtc核心组件

音视频引擎:OPUS、VP8 / VP9、H264
传输层协议:底层传输协议为 UDP
媒体协议:SRTP / SRTCP
数据协议:DTLS / SCTP
P2P 内网穿透:STUN / TURN / ICE / Trickle ICE
信令与 SDP 协商:HTTP / WebSocket / SIP、 Offer Answer 模型

webrtc使用的协议

SDP
SDP是WebRTC的重要组成部分,它是用于描述媒体通信会话的协议。它不提供媒体数据,但用于各种音频和视频编解码器对等方之间的协商、网络拓扑和其他设备信息。它还需要易于传输。简单地说,我们需要一个基于字符串的配置文件,其中包含有关用户设备的所有信息,这就是SDP关心的地方。
SDP是点对点连接的第一部分,点对点必须在信令信道的帮助交换SDP数据,以建立连接。

数据传输采用的最基本的协议是UDP,对于直播中低延迟的要求,UDP更能胜任。
基于UDP使用的协议分类:
1.传输音视频数据相关协议:DTLS、RTP/RTCP;
2.传输自定义应用数据相关协议:DTLS、SCTP;

协议介绍:
1.加密信道建立(UDP、DTLS)
对WebRTC应用来说,不管是音视频数据,还是自定义应用数据,都要求基于加密的信道进行传输。DTLS 有点类似 TLS,在UDP的基础上,实现信道的加密。

1.通信双方:通过DTLS握手,协商生成一对密钥;
2.发送方:对数据进行加密;
3.发送方:通过UDP传输加密数据;
4.接收方:对加密数据进行解密;

2.音视频数据传输(RTP/RTCP)
先看一下RTP协议和RTCP协议的定义:
1.RTP(Realtime Transport Protocol):实时传输协议,主要用来传输对实时性要求比较高的数据,比如音视频数据。
2.RTCP(RTP Trasport Control Protocol):RTP传输控制协议,跟RTP在同一份RFC中定义,主要用来监控数据传输的质量,并给予数据发送方反馈。

所以RTP用来传输音视频数据,RTCP用来传输(质量)控制数据;比如监控传输的质量,并在会话双方之间进行同步,方便WebRTC根据传输质量进行动态调整,比如传输的速率、视频的码率等。

3.自定义应用数据传输(SCTP)
SCTP(Stream Control Transmission Protocol):流控制传输协议。

webrtc信令

在互联网中,想连接到另一个点,必要要知道那个点在web的什么位置,一旦设备通过互联网找到彼此,他们就可以开始交换彼此支持的协议和编解码器数据。
其中包含几个步骤:
1.首先将所有网络相关信息传到信令服务器
2.服务器帮忙交换到对端
3.对端拿到你的信息

标签:协议,UDP,音视频,学习,传输,RTP,数据,webrtc
来源: https://blog.csdn.net/weixin_43968447/article/details/112546447

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有