前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >基于 AWS Lambdas 的实时分布式编码

基于 AWS Lambdas 的实时分布式编码

作者头像
用户1324186
发布2021-12-31 19:10:50
4780
发布2021-12-31 19:10:50
举报
文章被收录于专栏:媒矿工厂

目录

  • 动机
  • 传统实时转码模型
  • 分布实时转码模型
  • 分布实时转码的实施
  • Demo 演示
  • 挑战
  • 总结

动机

我们的生活中通常需要编码,那为什么我们需要自适应码率或 ABR?因为我们的观众是庞大的来自全球的,有各种设备,为了给所有这些设备和网络连接提供最佳的体验,我们需要能够提供不同的副本,不同的分辨率和比特率的编码,然后让设备将选择最合适的。

传统实时转码模型

如今,对于直播来说,最常用的架构是使用单一主机来创建分发所需的 ABR 阶梯。这是一个简单而良好的方法,但它存在一些问题:可扩展性、灵活性、可靠性。

  • 线性转码的可扩展性问题

当我们要求转码机提供更多它能处理的内容时,机器开始转码的速度就会变慢,这对直播来说是个定时炸弹。播放器会开始停滞不前,而且(取决于实现方式)该机器会出现 OOM 或丢弃数据。简而言之:糟糕的用户体验。

  • 线性转码的灵活性问题

当流开始时,我们可以评估什么是每个通道的最佳编码参数,但在这一点上,重新评估这些编码参数可能是相当困难的。想象一下这样的情况:当流开始时,我们的资源有限,我们决定应用快速编码预设(所以质量低)以节省一些 CPU 容量,但几分钟后我们就有了大量的空闲资源,在这种情况下,更新这些编码参数是相当困难的。

  • 线性转码的可靠性问题

我们有一台机器管理所有的流媒体转码,如果这台机器坏了,我们就会失去流媒体。重复转码阶段可以减轻这种风险,但有一些同步的挑战。

分布实时转码模型

在这种方法中,转码是以小的时间块进行的。第一步是将连续的输入流切成小块(可播放),然后我们可以将这些小块发送给无状态转码器,最后这些转码器可以为每个单独的小块产生渲染。

分布式实时转码的优势有以下几点:

  • 可靠性。如果任何转码器机器发生故障,流媒体不会受到影响。该块是可以重试的,或者我们可以对重要的流进行双重转码。
  • 可扩展性。你不需要购买更大的机器来使用更复杂的编解码器/更高的分辨率 - 帧率,只需使用更多的编解码器(实时转码的水平缩放)。
  • 灵活性。你可以每隔几秒钟重新评估你的决定,所以你可以在任何时候更新编码设置以满足任何标准。
  • 可部署性。你可以在任何时候部署任何转码机而不影响流媒体,这种能力是蕴含在架构中的。

分布式实时转码的问题在于:

  • VBV 的解码器缓冲区大小:你需要管理解码器的缓冲区大小,因为当你开始编码的时候,你不会有之前的数据。
  • GOP 大小。转码时间将与此成正比,所以如果你有兴趣提供一些目标延迟,你需要能够控制(限制)输入 GOP 大小。记住最短的可播放单位是 GOP。此外,你还需要封闭的 GOPs。
  • 音频启动。在一些音频编解码器中,你需要前一个片段的最后一个样本,以便能够正确地解码当前片段的音频。
  • 延迟。如果你打算使用你的转码机不能实时处理的编码器/分辨率(例如 AV1 4K),那么你应该期待增加延迟。但在这种情况下,我认为是完全可以的,因为你不能在线性方法中做到这一点,现在你完全可以做到这一点,付出的代价是“只是”延迟。

分布实时转码的实施

第三个橙色块的功能就是终止安全协议,我们使用特定的协议。所有这些操作在计算上都很简单,按照前面的编码配置将原始更改转码为不同的质量。

Demo 演示

demo演示视频:

http://mpvideo.qpic.cn/0bc3fiaegaaa3qaoozwjz5qvakwdimvaaqya.f10002.mp4?dis_k=139883058e210ac527117615033da12f&dis_t=1640948784&vid=wxv_2198027484498100227&format_id=10002&support_redirect=0&mmversion=false

挑战

  • 编码器速率控制
    • 下一个数据块 N 不知道上一个数据块(N-1),那么我们需要对编码器速率-控制算法施加一些限制,以确保解码缓冲区的大小在控制范围内。
  • 可变场景复杂性
    • 不同复杂度的场景需要不同的编码时间,在这种方法中我们需要可预测的(或有限的)编码时间。
  • 可变的输入 GOP 大小
    • 可变的输入 GOP 大小是这个方法的巨大问题,因为大块的转码时间应该是可预测的(或有限的)。
  • 音频提示
    • 为了正确地解码音频,在一些编解码器中,我们需要来自前几块的样本。

总结

  • 分布式是很好的选择;
  • 需要可靠的基础工具来,如存储、可靠的提示;
  • 只是概念证明,目前不可商用。

附上演讲视频:

http://mpvideo.qpic.cn/0bc3l4aaaaaauyakjowjojqvax6dabpqaaaa.f10002.mp4?dis_k=67699c006821b8257e8ef87926a179b5&dis_t=1640948784&vid=wxv_2198027536205479944&format_id=10002&support_redirect=0&mmversion=false

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-12-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 媒矿工厂 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 动机
  • 传统实时转码模型
  • 分布实时转码模型
  • 分布实时转码的实施
  • Demo 演示
  • 挑战
  • 总结
相关产品与服务
云直播
云直播(Cloud Streaming Services,CSS)为您提供极速、稳定、专业的云端直播处理服务,根据业务的不同直播场景需求,云直播提供了标准直播、快直播、云导播台三种服务,分别针对大规模实时观看、超低延时直播、便捷云端导播的场景,配合腾讯云视立方·直播 SDK,为您提供一站式的音视频直播解决方案。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档