> 技术文档 > AWS WebRTC:我们的业务模式

AWS WebRTC:我们的业务模式

拉流、卡录基本流程

设备端(摄像机) 与 App端 是通过 AWS KVS WebRTC 信令服务进行“点对点连接”的,真正的媒体数据(音视频)是通过 WebRTC 的 ICE 通道(P2P 或 TURN)直接传输的,而不是经过 KVS 中转。

 [Viewer] <---> [AWS Signaling Service] <---> [Master] ↘ ↙ ↘------- ICE / STUN --------↙  (P2P or TURN) ↔↔↔↔↔ 视频/音频数据传输 ↔↔↔↔↔
  • 信令(SDP/ICE)交换:通过 AWS KVS 的 Signaling Channel
  • 媒体(音视频)数据传输:通过 WebRTC 的 RTP 通道,不走 KVS 存储服务
  • WebRTC 模式下,KVS 提供“信令通道”服务,用于帮助 Master 和 Viewer 建立连接。

Webrtc可以传送实时画面,也可以播放本地文件,我们业务中的设备将视频录制在本地,之后借助webrtc,给app播放本地视频,这是卡录的实现。

媒体数据传输

  • 视频流(RTP)直接在 Master 和 Viewer 之间传输
  • 若网络条件不允许 P2P,AWS 的 TURN 服务器会作为中继(还是不经过 KVS 存储)
  • 无论是 P2P 还是 Relay(TURN 中继),Master 和 Viewer 之间传输媒体数据时,使用的都是 RTP 通道。

补充说明

那么什么时候才走到 AWS KVS 的“Media 服务”?

如果设备端使用的是KVS Producer SDK(使用 PutMedia 或 PutFrame)进行持续推流,使用 HLS / DASH 播放回放链接,才会用到 AWS KVS 的核心存储服务。

云录模式

我们的云录事件业务场景是:
1、设备(云台摄像机)触发事件开始录制;
2、生成事件封面图上报到s3;
3、生成m3u8文件;
4、上报ts文件和m3u8;
5、事件录制中持续上报ts和覆盖m3u8,直到事件结束;
6、业务云提供接口给app端,app端下载ts文件和m3u8文件进行播放。

具体流程请参考下篇文章:
https://blog.csdn.net/zhang_jiamin/article/details/149328779?spm=1011.2415.3001.5331