我有以下流媒体应用程序的设置. EMX -EML -S3 -LAMBDA -BEP. 当我try 向mediapackage hls摄入端点发出put请求时,我得到的是201.

def postStreamToMediaPackage(envVariables, fileName, content, contentType):
    mediaPackageUrl = envVariables["url"]
    username = envVariables["username"]
    password = envVariables["password"]
    ingestUrl = f"{mediaPackageUrl.rstrip('/channel')}/{fileName}" # not sure what mediapackage wants.

    response = requests.put(
        ingestUrl, data=content, headers={
            "ContentType": contentType
        }, auth=HTTPDigestAuth(username, password))
    if response.status_code != 201:
        print(
            f"Error ingesting file {fileName} to {ingestUrl}. error: {response.text}")
    return {"ingestUrl": ingestUrl, "fileName": fileName, "status": response.status_code}

但如果我判断媒体包入口访问日志(log),

  • 我可以看到,对于我发送的每个文件,它都会记录两次,一个显示401,另一个显示201.

  • 我还注意到,如果我将根 list 发送到' Channel/{root manifest Name}.m3u8,根 list 会得到404,但任何其他端点都会得到与之前提到的相同的行为 为了测试这一点,我将EML直接连接到BEP并启用了日志(log)记录,可以看到请求以以下方式发送

  • 所有文件均为channel_filename

  • '用于ts文件的Channel_timestamp_order.ts

  • 根 list 为.m3u8

我已经try 了一切努力从mediapackage起源端点获得积极响应,但它总是返回404进行显式.

Mediapackage他的摄入是一个webDav服务器.

有人try 过这样做吗?我找不到任何有用的文档来说明他们对这些的期望.

推荐答案

经过大量的摆弄和修补,我们发现Mediaackage需要以下文件名 struct 才能成功推送.

if fileName == "index.m3u8": # this is your root manifest
  ingestUrl = f"{mediaPackageUrl}.m3u8"
else:
   ingestUrl = mediaPackageUrl.replace('channel', fileName) # for all other resources, you need to feed it to the root endpoint.

Python相关问答推荐

如何强制cv2.electrical画顺时针弧线?

用ctype构建指针链

为什么自定义pytree aux_data对于jnp.数组来说在.jit()之后跟踪,而对于np.数组来说则不是?

正在设置字段.需要为假,因为错误列表索引必须是整数或切片,而不是字符串

仅使用2种 colored颜色 创建热图

为什么我的主页不会重定向到详细视图(Django)

Flask主机持续 bootstrap 本地IP| Python

如何终止带有队列的Python进程?+ 队列大小的错误?

拆分pandas列并创建包含这些拆分值计数的新列

如何根据条件在多指标框架上进行groupby

将HLS纳入媒体包

如果条件为真,则Groupby.mean()

切片包括面具的第一个实例在内的眼镜的最佳方法是什么?

删除字符串中第一次出现单词后的所有内容

使用Python更新字典中的值

如何在表中添加重复的列?

Python Pandas获取层次路径直到顶层管理

* 动态地 * 修饰Python中的递归函数

在Python中计算连续天数

重置PD帧中的值