AWS WebRTC如何实现拉流?内部是这样实现的
当我们通过手机上的app选择某一个Iot设备,例如,摄像头,想看实时视频的时候,aws都做了什么?最近在搞自研Iot项目,借机整理一下相关流程。
App通过 AWS SDK 发起拉流请求的内部机制是AWS Kinesis Video Streams (KVS) WebRTC 模式中一个非常关键的问题。
一、KVS WebRTC 模式:角色划分
Master(摄像机/设备端):推流者,启动摄像头采集,编码,发流。
Viewer(App/Web端):拉流者,发起连接请求并接收视频流。
二、App 端初始化 Viewer 角色
调用 AWS SDK 初始化一个 WebRTC 连接,设置角色为 VIEWER。
const viewer = new KVSWebRTCViewer({channelName: 'TestChannel',region: 'us-west-2',accessKeyId: 'xxx',secretAccessKey: 'xxx',role: 'VIEWER',
});
三、App 获取信令服务器信息(Signaling Endpoint)
通过调用 AWS API GetSignalingChannelEndpoint,获取信令通道的 URL(WebSocket/MQTT 方式)。
POST /v1/getSignalingChannelEndpoint
→ 返回 WebSocket URL,用于