RTMP_PUSH类型的输入带有两个目的地,每个目的地都有预先分配的IP和端口。但是出于可用性的考虑,我需要提供一个带有域名的URL,而不是MediaLive输入端点的IPv4地址。另一个重要的事情是我正在以编程方式创建输入,需要尽快使它们可用。 AWS MediaLive是否提供实现它的方法?
我的第一个想法是在Web服务器上创建一些端点,该端点需要所有必要的参数并返回302重定向到RTMP请求的相应端点,但是我仍然不确定是否可行以及这是否是一种好方法解决问题。
现在,创建频道的过程如下:
import boto3
ML_REGION = 'eu-central-1'
client = boto3.client('medialive', region_name=ML_REGION)
def create_input(cls, name, destinations_names, sec_groups, in_type='RTMP_PUSH'):
return client.create_input(
Destinations=destinations_names,
InputSecurityGroups=[
sec_groups,
],
Name=name,
Type=in_type
)
哪个返回:
{
"ResponseMetadata": {
"HTTPHeaders": {...},
"RequestId": "26b556d2-df7b-11e8-b224-a3bcca6f3675",
"HTTPStatusCode": 201,
"RetryAttempts": 0
},
"Input": {
"State": "DETACHED",
"SecurityGroups": [
"3833595"
],
"Id": "6345906",
"Sources": [],
"Type": "RTMP_PUSH",
"Arn": "arn:aws:medialive:eu-central-1:928636723143:input:6250974",
"AttachedChannels": [],
"Name": "prog",
"Destinations": [
{
"Ip": "52.29.243.126",
"Url": "rtmp://52.29.243.126:1935/a",
"Port": "1935"
},
{
"Ip": "18.184.153.122",
"Url": "rtmp://18.184.153.122:1935/b",
"Port": "1935"
}
]
}
}
使用此响应,我可以存储{stream_name:url}对,并检测对指向我的自定义终结点的请求的适当重定向URL,但这看起来不是一个好的解决方案。而且,甚至不确定RTMP是否可行。