如何为AWS MediaLive RTMP_PUSH输入目标设置自定义域名?

时间:2018-11-03 15:39:20

标签: python amazon-web-services dns video-streaming boto3

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是否可行。

0 个答案:

没有答案