前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >WebRTC直播技术(一)-初探WebRTC

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

作者头像
IMWeb前端团队
发布2019-12-03 16:09:50
2.4K0
发布2019-12-03 16:09:50
举报
文章被收录于专栏:IMWeb前端团队IMWeb前端团队

本文作者:IMWeb jaychen 原文出处:IMWeb社区 未经同意,禁止转载

什么是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链接的建立。具体将放在下一篇详细讲解。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-06-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 什么是WebRTC
  • 兼容性
  • 主要的API
  • 结构图
  • 信令(signaling)
  • SDP握手
相关产品与服务
NAT 网关
NAT 网关(NAT Gateway)提供 IP 地址转换服务,为腾讯云内资源提供高性能的 Internet 访问服务。通过 NAT 网关,在腾讯云上的资源可以更安全的访问 Internet,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问,最大支持1000万以上的并发连接数;NAT 网关还支持 IP 级流量管控,可实时查看流量数据,帮助您快速定位异常流量,排查网络故障。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档