WebRTC, IOS 和直播

2022-05-24 18:17:30 浏览数 (1)

来源:Global Video Tech Meetup 主讲人:Colin Biggin 内容整理:王珅 本次分享的主讲人为来自 Stage TEN 的 Colin Biggin,主讲人分三个部分介绍了相关内容,首先介绍了 WebRTC 的基本情况,包括目前 WebRTC 的业界使用情况以及 WebRTC 使用的视频编解码器、音频编解码器等等。然后主讲人进一步介绍了在两个 iOS 设备之间实现 WebRTC 连接的过程,最后通过一个实例展示了实时流媒体的有趣性。

目录

  • WebRTC介绍
  • iOS上的WebRTC
  • 实时流媒体的乐趣

WebRTC介绍

主讲人首先介绍了他自己,Colin Biggin 从 2008 年开始作为 iOS 程序员一直在 AppStore 上开发应用程序,在 AppStore 上开发超过 70 个应用程序。2014 年入职 Stage TEN,与 YouTube、Google、TVO、Khan Academy 均有合作。

然后主讲人首先介绍第一部分:什么是 WebRTC?

一般而言,WebRTC 的定义是这样的:WebRTC 是一个免费的开放项目,通过简单的 API 为浏览器和移动应用程序提供实时通信(RTC)功能。WebRTC 组件已被优化以更好地服务于这一目的。

主讲人提出,实际上 WebRTC 是:

  • 低延迟的媒体;
  • 音频/视频编解码器;
  • 网络协商。

而目前都有谁在使用 WebRTC 呢?

  • 谷歌会议 Google Meet;
  • Microsoft Teams;
  • Facebook Messenger;
  • Zoom(部分使用);
  • Stage TEN。

而哪些浏览器支持 WebRTC 呢?

  • 谷歌浏览器;
  • 火狐浏览器;
  • 苹果 Safari 浏览器;
  • Microsoft Edge;
  • Yandex 浏览器。

视频编解码器包括:

  • VP8;
  • VP9;
  • H264;
  • AV1(即将推出!)。

音频编解码器则包括:

  • iSAC(强大的、带宽自适应的、宽频和超宽频的语音编解码器);
  • iLBC(免费窄带语音编解码器);
  • 以及一些其他的音频编解码器。

网络则包括了以下几个部分:

  • 信令层;
  • NAT (网络地址转换);
  • STUN (Session Traversal Utilities for NAT);
  • TURN(在 NAT 周围使用中继的穿越);
  • ICE & Trickle ICE (互动连接建立)。

网络示意图

iOS上的WebRTC

在第二部分主讲人介绍了在两个 iOS 设备上实现通信的过程。现在我们有两个 iOS 设备,它们需要进行通信,因此在他们之间需要一个信号服务器,使得它们知道如何进行沟通和相互交换信息,也就是 Websockets。

Singalling

通常在中间有一个 WebRTC 服务器。最常见的两种是 Janice 和 gizzi。但这些服务器是你的 WebRTC 流要进入的地方,所以你的 RTP 数据包用于音频和视频。然后它在那里基本上都会被灵活地传送到各种客户端。

Intermediate WebRTC server

从黑色的 iOS 设备发送到白色的 iOS 设备的过程如下:

1st Offer

1st Answer

建立连接

现在大多数通信是双向的,因此你必须做相反的事情:

2nd offer/answer

2-way connected

实时流媒体的乐趣

最后主讲人演示了一个实例展示了实时流媒体的乐趣。

附上演讲视频:

http://mpvideo.qpic.cn/0bc3fqaa4aaa2maa6z2v6vrfalgdbywaadqa.f10002.mp4?dis_k=4e18b144fca88b8d72b8ae9207a5e877&dis_t=1653387393&vid=wxv_2351259177286991872&format_id=10002&support_redirect=0&mmversion=false

0 人点赞