【问题标题】:Advice: Setting up a streaming service that allows users to create rtmp push enpoint from a device建议:设置允许用户从设备创建 rtmp push enpoint 的流服务
【发布时间】:2020-10-21 19:58:15
【问题描述】:

目前,我正在向 EC2 实例流式传输视频、音频或两者。我想以最具成本效益和可扩展的方式做到这一点。该服务的工作方式是任何设备都能够发布到 nginx ec2 实例。因此,从一部手机来看,我可以发布到 x.x.x.x:6000/live/stream1。从同一设备,我可以发布到 x.x.x.x:6000/live/stream2。这些 rtmp 推送端点都不是预定义的服务器端。它们是从设备动态创建的。是否有 AWS 服务可以动态提供此类功能?这不应该要求用户登录任何 AWS 服务来满足我的需要。我已经检查了 AWS Live Streaming with Elemental Media Store 以及 Kinises。媒体商店似乎需要先通过 AWS 设置 RTMP 推送端点,然后设备才能发布流。 Kinesis 似乎需要创建用户帐户,我假设这还将创建一个与用户绑定的端点,用户也可以通过 rtmp 发布。

我不需要创建 Kinesis 的用户帐户,因为我使用不同的服务来管理用户。我只是在寻找从设备创建 rtmp 推送端点并在创建时发布该端点的能力。

感谢任何帮助。

谢谢。

谢谢。

【问题讨论】:

    标签: amazon-web-services amazon-s3 amazon-ec2 amazon-kinesis aws-mediastore


    【解决方案1】:

    当您说从设备创建 RTMP 端点不需要用户登录到任何 AWS 服务以满足您的需求时,您是指最终用户的需求还是您作为平台创建者的需求?

    AWS Elemental Media Services当然不能在没有 AWS 账户的情况下进行配置,当然,这需要身份验证。大多数对 AEMS 端点的 API 调用都需要 AWS v4 身份验证,因此作为管理员没有办法避免这种情况,但您可以创建平台来处理这些步骤最终用户无需任何额外的身份验证机制。

    MediaLive 还要求您在将 RTMP 输入附加到通道之前预定义其应用程序和实例名称,因此这也可能是您的用例的一个缺点。目前,这是 AWS 提供的唯一接受 RTMP 输入的基于媒体的服务,但通过一些努力,您可以构建一个自动创建最终用户指定的应用程序和实例名称的应用程序,以便它“出现”,就好像目的地将接受动态输入一样。

    MediaStore 是一个发起端点,主要用于存储编码内容,供下游 CDN 使用以进行播放。它只接受 RESTful API 调用,所以不幸的是你不能直接推送 RTMP。

    如果您对以上提供的信息有更具体的问题,请告诉我!

    【讨论】:

    • 感谢您的回复,对于刚才的回复,我深表歉意。在我的研究过程中,我开始得出相同的结论,即必须在应用程序内部进行身份验证,但不一定由用户创建。我探索了一些 AWS Amplify 的用法,但不知道如何在应用程序中使用 RestAPI 创建挑战 ID,然后检索创建用于 rtmp 流的端点。那就是我现在正在画一个空白的地方。我对 AWS 及其文档非常陌生;现在对我来说感觉就像大海捞针。大声笑
    • 感谢@Pleirosei 的评论,我首先要熟悉 Amplify 平台之外的服务 API,以避免早期混淆。 AWS 开发工具包是学习如何与 AWS API 交互的良好起点,因为它们处理授权机制并允许您专注于特定的集成目标。您可以在此处了解可用的工具:aws.amazon.com/tools 如果您想与解决方案架构师交谈,请在此处填写此表格:elemental.com/about-us/contact-us
    • 谢谢马修。我将这样做。感谢您的建议和帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-29
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2013-12-11
    相关资源
    最近更新 更多