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

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

相关推荐
换个昵称都难15 小时前
webrtc 拥塞控制GCC 和PCC
webrtc
Cxiaomu17 小时前
React接入WebRTC实时视频实践
react.js·音视频·webrtc
AndyHuang197619 小时前
WebRTC 强制 Relay 模式下 TCP 重连失败深度排查与优化实战
webrtc
换个昵称都难19 小时前
webrtc pacing 平滑发包模块
webrtc
换个昵称都难21 小时前
webrtc 音频混音介绍
音视频·webrtc
换个昵称都难2 天前
webrtc QOS-RemoteBitrateEstimator接收端带宽估计(1)
webrtc
换个昵称都难2 天前
webrtc QOS-RemoteBitrateEstimator接收端带宽估计-四个实例(2)
webrtc
都在酒里2 天前
【极致低延时】香橙派部署 MediaMTX 实现 WebRTC 推流,延时仅 500-800ms,比局域网 ffmpeg 拉流快近 10 倍!(附踩坑全记录)
linux·arm开发·ffmpeg·webrtc·orangepi·嵌入式软件
换个昵称都难2 天前
WebRTC QoS 实战:从原理到弱网优化
开发语言·php·webrtc
小哈机器人2 天前
Phantom Bridge:一个基于WebRTC的ROS2远程可视化与遥操作工具
机器人·webrtc·数据可视化