【问题标题】:Maximizing Encoding Speed with Windows Azure Media Service Encoding使用 Windows Azure 媒体服务编码最大限度地提高编码速度
【发布时间】:2014-10-15 19:21:26
【问题描述】:

我有一个 android 应用程序(客户端)、asp.net web api web 服务器(服务器)和 Windows Azure 媒体服务 (WAMS) 帐户。

我想要什么: 将 3-30 秒的视频从客户端上传到服务器,并使用 WAMS 对其进行编码,然后尽快通过 HLSv3 进行流式传输。理想情况下,也会生成视频预览图像。尽可能快地类似于 不到一分钟转身。我意识到这可能不现实,但越快越好。

我在哪里:我们将视频作为流上传到服务器,然后将其存储在 Azure blob 存储中。服务器返回客户端表示上传成功。服务器有一个启动编码的操作,然后调用它。我运行了一个基于 H264 Adaptive Bitrate MP4 Set 720p 预设的自定义编码任务,该预设修改为拍摄 640x480 视频并在编码的同时将其裁剪为 480x480。然后我运行一个缩略图作业,生成一个 480x480 的缩略图。根据保留的编码器质量,这可能需要约 5 分钟到约 2 分钟。编码作业时间只有 30-60 秒,其余时间是排队时间、发布时间和通信延迟的混合。

我可以做些什么来改进客户端上传到视频流的周转时间?编码过程的瓶颈在哪里?是否有可以达到的合理最大速度?是否可以调整配置设置以提高流程性能?

【问题讨论】:

    标签: azure encoding azure-storage azure-media-services


    【解决方案1】:

    减少工作数量

    首先想到的是您只对单个缩略图感兴趣,您应该能够通过将以下内容添加到编码预设的 MediaFile 元素来整合您的编码和缩略图作业:

      <MediaFile ThumbnailTime="00:00:00"
        ThumbnailMode="BestFrame"
        ThumbnailJpegCompression="75"
        ThumbnailCodec="Jpeg"
        ThumbnailSize="480, 480"
        ThumbnailEmbed="False">
    

    缩略图将与您的视频流一起出现在输出资产中。

    减少任务中的预设数量

    要考虑的另一件事是,您链接到的预设中定义了多个预设,以便生成不同比特率的音频流。我目前的理解是,这些预设中的每一个都是由编码单元按顺序处理的。

    第一个预设定义了视频流,并且还指定每个视频流应该以 96kbps 的速率混入音频。这意味着您的视频文件将比它们可能需要的大,并且在混合过程中将占用一些时间。

    第二个和第三个预设只是定义要输出的音频流——它们不包含任何视频。其中第一个以 96kbps 输出音频,第二个以 56kbps 输出音频。

    假设您对 96kbps 的固定音频质量感到满意,我建议从视频流和最后一个音频流 (56kbps) 中删除音频 - 这将保存相同的音频流被编码两次,并且音频与视频混在一起。 (鉴于我从您的使用情况中可以看出,您可能无论如何都不需要它)

    这样做的附带好处是您的编码器输出文件大小会略微下降,因此编码成本也会下降。

    工作流程优化

    我唯一想说的另一点是首先将视频文件导入 Azure 的工作流程。您说您正在将它们上传到 blob 存储中 - 我假设您随后将它们复制到 AMS 资产中,以便可以将它们配置为作业的输入。如果正确,您可以通过直接上传到资产来节省一点时间。

    希望对您有所帮助,祝您好运!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-20
      • 2014-01-02
      相关资源
      最近更新 更多