微信小程序 RTMP 音视频 通话 ffmpeg_WebRTC与微信小程序音视频互通方案设计与实现...

背景

在之前的WebRTC实时音视频通话之语音通话设计与实践中介绍了58 TEG部门基于 WebRTC 的实时音视频通话解决方案。

考虑到腾讯微信的小程序平台提供了音视频通话与直播的支持,如果能打通基于 WebRTC 的实时音视频通话与微信小程序,就能够极大地扩展音视频直播的能力范围,为业务线的产品和服务提供更多更好的选择。

本文主要介绍打通 WebRTC 端和微信小程序端的音视频互通方案,实现在尽量不需要改动 WebRTC 端代码的情况下,添加对主叫和被叫微信小程序端的支持。

基于 WebRTC 的实时音视频方案

58 已搭建了成熟的基于 WebRTC 的实时音视频方案,能够有效地支持多端(iOS/Android/Web)之间的音视频会话。其通过后端的 Room Server 服务来管理会话;某端需要发起音视频会话,首先需要到 Room Server 中注册一个房间,之后基于房间来进行信令的交互;主叫端和被叫端的音视频数据传输通过 PeerConnection 进行。

WebRTC 端的媒体流方案是采用标准的 RTP[1] 和 RTCP[2] 协议。

微信小程序的音视频支持

微信的小程序对外开放了音视频直播[3] 的能力,使用方可以通过 live-pusher 标签实现基于 RTMP[4] 的音视频推流(录制),live-player 标签实现基于 RTMP 的音视频拉流(播放)。

- 微信 App iOS 最低版本要求:6.5.21

- 微信 App Android 最低版本要求:6.5.19

- 小程序基础库最低版本要求:1.7.0

微信小程序的音视频方案是基于 RMTP 流媒体协议的。

互通方案

总体架构

方案的总体架构如下:

微信小程序 RTMP 音视频 通话 ffmpeg_WebRTC与微信小程序音视频互通方案设计与实现..._第1张图片
  1. WebRTC Gateway 作为一个特殊的 WebRTC 端与指定的另一个 WebRTC 端通过 Room Server 交换信令并建立会话
  2. 会话建立后,WebRTC 端与 WebRTC Gateway 直接(P2P)或间接(TURN)交换音视频流
  3. WebRTC Gateway 将 WebRTC 端之音视频流经 Streaming Server 转发至微信小程序端;微信小程序音视频输入流经 Streaming Server 转发至WebRtc 端

其中,WebRTC Gateway 使用成熟的服务来搭建࿰

你可能感兴趣的:(微信小程序,RTMP,音视频,通话,ffmpeg)