AWS WebRTC:获取信令服务节点和ICE服务节点

建立WebRTC的第一步是获取信令服务节点和ICE服务节点。

前提条件是有访问AWS的密钥,主要是ak,sk,token,我这边是业务云有接口可以返回这些信息,所以我直接从业务云获取。

先介绍一下什么是ak,sk,token:

ak,AWS_ACCESS_KEY_ID,AWS访问密钥;

sk,AWS_SECRET_ACCESS_KEY,AWS安全访问密钥;

token,AWS_SESSION_TOKEN,会话令牌,即临时凭证,最长有效期是12小时(43200秒)

它们三个是什么关系?

比如一个人进入一栋大楼,首先需要有进入大楼的许可就是ak;进入大楼后需要进行安检就是sk;进入大楼后不能一直在大楼里呆着需要有一个停留时间,就是session token。

ak,sk,token的内容格式如下:

python 复制代码
    "ak": str1,
    "sk": str2,
    "token": long_str3,

除了密钥信息外,还需要region和arn,这两个也是业务云返回,内容格式如下:

python 复制代码
region = "cn-*****-*"
arn = arn:aws:kinesisvideo:[region]:[account-number]:channel/[channel-name]/[number]

有了这些信息后就可以通过boto3获取信令服务节点和ICE服务节点了:

python 复制代码
import boto3

ak = str1
sk = str2
token = long_str3
region = "cn-*****-*"
arn = arn:aws:kinesisvideo:[region]:[account-number]:channel/[channel-name]/[number]

session = boto3.Session(
    aws_access_key_id=ak,
    aws_secret_access_key=sk,
    region_name=region,
    aws_session_token=token
)

client = session.client('kinesisvideo')

response = client.get_signaling_channel_endpoint(
    ChannelARN=arn,
    SingleMasterChannelEndpointConfiguration={
        'Protocols': ['WSS', 'HTTPS'],
        'Role': 'VIEWER'
    }
)

endpoint_https = response["ResourceEndpointList"][0]["ResourceEndpoint"]
endpoint_wss = response["ResourceEndpointList"][1]["ResourceEndpoint"]

print(response)
print(endpoint_https)
print(endpoint_wss)

以上相关信息替换成从aws获取到的信息。

获取到的节点信息为:

python 复制代码
https://*-*****.kinesisvideo.cn-*****-*.amazonaws.com.cn
wss://*-*****.kinesisvideo.cn-*****-*.amazonaws.com.cn

这两个节点各有自己的用处,后面慢慢讲解。

相关推荐
OpenLoong 开源社区8 天前
打破 NAT 限制,零侵入跨网络通信:基于 WebRTC 的透明 TCP 隧道跨网络通信方案
网络协议·tcp/ip·开源·webrtc·openloong开源社区
探鸽小钛11 天前
4G 终端 ES8311 - 挂断一次,下次说话就没声了之解决办法
物联网·音视频·嵌入式·esp32·webrtc
草根大哥12 天前
AI 编程实践之自建视频CDN
音视频·webrtc·低延迟直播·视频cdn·低延迟cdn
EasyCVR12 天前
应急指挥怕延迟?聊聊视频汇聚/视频融合/视频分析EasyCVR平台WebRTC低延迟方案
音视频·webrtc·easycvr
TrueDei13 天前
WebRTC ICE 候选变成 mDNS 地址导致连接失败:原因分析与解决方案
webrtc
中屹指纹浏览器svip16 天前
WebRTC泄露是什么,怎么关闭?
webrtc
海边捡石子17 天前
从零设计一个通用智能电话平台:FreeSWITCH + ESL + AI 实战架构
人工智能·架构·webrtc
音视频牛哥17 天前
不换摄像机,也能接入 WebRTC?SmartMediaKit RTSP/RTMP 转 WHIP 技术实践
音视频·webrtc·smartmediakit·rtsp转whip·rtmp转whip·whip推流·rtsp转webrtc播放
直播技术开发交流19 天前
Android 端 WHIP 协议推流技术实践:相机/录屏/多路转发WHIP实现测试
webrtc·android whip·rtsp转whip·毫秒级实时媒体流·whip低延时推送·whip推送实现·rtsp转webrtc
程序员阿明21 天前
docker搭建视频流服务go2rtc,webRTC
docker·容器·webrtc