【问题标题】:Feed a pre-recorded video to Azure Media services as a live stream将预先录制的视频作为实时流提供给 Azure 媒体服务
【发布时间】:2020-11-29 02:41:47
【问题描述】:

我想做一些对我来说听起来很简单的事情,但我很难找到解决方案。

我有一个预先录制的视频,需要通过 API 启动。我需要通过 RTMP 直播该视频。现在我执行以下操作:

(全部通过代码自动化)

  • 创建一个 azure 现场活动
  • 获取直播活动的输入网址
  • 使用 FFMPG 启动 docker 映像
  • 提供参数(源预录视频和实时编码器的目标输入)
  • 从端点获取输出 URL
  • 将其放入数据库中
  • 有一个 API,我的网络播放器可以查询以了解作业的状态
  • 当我在数据库中的行现在有来自实时编码器的输出 URL 时,启动流

它缝合了非常复杂的东西。而且我很担心这样一个流程中的许多问题:

  • ffmpg 的性能问题
  • 延迟启动所有资源
  • 一个组件在该流中崩溃

最后我只想开始直播并告诉它使用 MP4 而不是等待 RTMP 提要....

选项>

  • Restream.io 让我可以安排任何视频并开始将其流式传输到我的端点。我必须弄乱他们的 API 才能让它工作,我宁愿让一切都保持在天蓝色。

我很确定我在这里遗漏了一件非常简单的事情。任何帮助将不胜感激!

【问题讨论】:

  • 你采取了哪些步骤,做了哪些尝试,哪一步遇到了问题?
  • 同意 Jason,最好能更具体地了解您在这个问题上遇到的问题以及您希望我们回答的问题。 Flow 似乎是正确的,您是否有 FFMPEG 问题或 AMS 中的 Live Event 问题?
  • 也适用于现场活动 - 看看现场活动中的新待机状态。您现在可以在待机模式下启动 LiveEvent,它实际上分配了所有计算并保持在低价空闲状态(仍然计费但比运行状态便宜)。 docs.microsoft.com/en-us/azure/media-services/latest/…
  • 您好,感谢您提供的信息!这非常有用,因为我需要在流开始之前手动设置所有 vMix 和 OBS。这非常有用!

标签: azure azure-media-services


【解决方案1】:

首先要回答人们的问题,我让这个流程运行了 300 多个测试流,每个流从 48 小时长到 30 分钟短流不等。

失败率极高。

  • 媒体服务未能及时启动
  • FFMPEG 丢帧率
  • 您可以想象的非常昂贵的设置
  • 媒体服务和 FFMPEG 之间断开连接。
  • Live Encoder 无法从 FFMPEG 捕获流

另一方面,我的正常流性能(来自 RTMP 源)非常稳定。

  • 10 天 24 小时/7 小时在 10 个端点编码器上进行流式传输(警告,您必须联系 Microsoft 以增加您的 5 个限制)
  • 在全球 350 个城市提供超过 20 TB 的数据,具有出色的性能和极低的延迟。

因此,对于为所有观众提供“实时流”体验的预先录制的视频,我采用了一种非常简单的方式。

当我做需要可变比特率时的选项 1:

  • 在 AWS G4 实例上的 OBS 中自动执行脚本。
  • 通过 api 完全控制(启动、关闭和流式传输)
  • 我推送到 Azure 事件中心的非常详细的错误状态
  • 大量流的失败率为0
  • 缺点:不在我的 Azure 结算帐户中

选项 2 当我这样做时不需要可变比特率:

  • 在 Azure 媒体服务中设置 MP4
  • Json 时间戳作为我的 MP4 的元数据
  • 通过 Javascript 同步我的 Azure 视频播放器,以遵循 MP4 中的当前时间戳,并让我的所有流事件在正确的时刻触发播放器和我的应用程序,供所有人观看。

现在我正在攻击所有 VOD 和 RTMP 上 5 种语言的实时翻译...祝我好运。

干杯!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-02
    • 2011-08-07
    • 2021-09-12
    • 1970-01-01
    • 2014-01-15
    • 2016-09-07
    • 1970-01-01
    相关资源
    最近更新 更多