WebRTC直播技术(一)-初探WebRTC

什么是WebRTC

  • webrtc 是为浏览器之间提供实时数据传输(Web Real-Time Communication)的javascript API
  • 支持 peer-to-peer 音频、视频、数据流传输能力

兼容性

主要的API

  • getUserMedia : 获取音视频
  • MediaRecorder: 录制音视频
  • RTCPeerConnection: 浏览器之间音视频流连接对象
  • RTCDataChannel: 浏览器数据流连接对象

结构图

信令(signaling)

信令是WebRTC用来协助建立p2p通讯的。主要用于协商双方通讯过程,传递基本信息SDP(会话描述协议)。 例如:打开/关闭连接的指令;视频信息,比如解码器,解码器的设置,带宽,以及视频的格式等;网关信息,比如双方的 IP,port... 一个简单的SDP格式:

具体字段含义可查询: https://datatracker.ietf.org/doc/draft-nandakumar-rtcweb-sdp/?include_text=1

SDP握手

下图为WebRTC通过信令建立一个SDP握手的过程。只有通过SDP握手,双方才知道对方的信息,这是建立p2p通道的基础。

  • 主播端通过 createOffer 生成 SDP 描述
  • 主播通过 setLocalDescription,设置本地的描述信息
  • 主播将 offer SDP 发送给用户
  • 用户通过 setRemoteDescription,设置远端的描述信息
  • 用户通过 createAnswer 创建出自己的 SDP 描述
  • 用户通过 setLocalDescription,设置本地的描述信息
  • 用户将 anwser SDP 发送给主播
  • 主播通过 setRemoteDescription,设置远端的描述信息。

通过SDP握手后,浏览器之间就会建立起一个点对点点直接通讯通道。但是由于我们所处的网络环境错综复杂,用户可能处在私有内网内,使用p2p传输时,将会遇到NAT以及防火墙等阻碍。这个时候我们就需要在SDP握手时,通过STUN/TURN/ICE相关NAT穿透技术来保障p2p链接的建立。具体将放在下一篇详细讲解。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SDNLAB

VXLAN与EVPN的结合使用

EVPN是近几年最热门的网络技术之一。如果你还没听过EVPN,你的网络技能可能已经落伍了,赶紧看看之前的《EVPN简介》吧!EVPN全称是Ethernet VP...

3783
来自专栏小麦苗的DB宝专栏

在Oracle中,如何定时删除归档日志文件?

1、在Oracle用户下,创建归档日志删除文件del_OCPLHR1_arch.sh

1341
来自专栏liukaili_666888999

iOS一些实用demo(会持续更新的)

1265
来自专栏大魏分享(微信公众号:david-share)

非网络专业人士看NSX--浅谈NSX架构和ARP压制

一直以来,网络方面都不是笔者的强项,来了VMware以后,由于工作的需要,经常和客户一起交流NSX,有一些心得,自己也查了一些资料,更请教过我司的网络方面的专...

3429
来自专栏landv

烽火2640路由器命令行手册-11-IP语音配置命令

(1)       用户输入的ID若在dialpeer表中已存在,且模式匹配,则进入dialpeer配置模式对相应dialpeer进行配置修改;

1163
来自专栏FreeBuf

样本分析 | 当“网络冲突”中的诱饵文件被用于真实的攻击事件

Cisco Talos最近发现了知名黑客组织74(又名Tsar Team,Sofacy,APT28,Fancy Bear…)的一种新型恶意行动,具有讽刺意味的是...

24310
来自专栏大数据架构师专家

运维技能武器库

Bootstrapping: Kickstart、Cobbler、rpmbuild/xen、kvm、lxc、Openstack、 Cloudstack、Open...

1152
来自专栏非著名程序员

关于Gif图展示的问题和感想,我只能帮大家这么多了

每天跟我要展示gif图demo的人很多,我有点纳闷,大家不知道很多第三方库都可以加载gif吗?比如Glide和Fresco都可以啊,大家不用它加载gif图吗?我...

2715
来自专栏数据和云

关于 Oracle 存储双活配置和实战

作者简介 ? 任小闯 云和恩墨交付技术顾问,6年以上数据库开发维护工作经历,Oracle 10g OCM,Oracle 11g OCP,曾就职于某互联网行业任数...

3718
来自专栏WeTest质量开放平台团队的专栏

QUIC协议的分析,性能测试以及在QQ会员实践

原文链接:http://wetest.qq.com/lab/view/384.html

5023

扫码关注云+社区