如何使用 python sdk 通过下载传送内容(视频)?

How to delivery content (video) by download with python sdk?

我是一名 python 开发人员,对 Microsoft Azure 服务缺乏经验。

对于客户端,我必须允许使用 azure 媒体服务(视频流)下载视频。我确实在文档 (https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-deliver-asset-download) 中找到了有关该主题的信息,但我想使用 python 到达那里(所以其余的 azure api 或 python sdk ).

我开始相信这是不可能的。

我需要你的帮助。

如果文件是使用 Azure 媒体服务 SDK 上传的,则上传的视频将存储为 Assest 文件。这将使将视频流式传输到不同设备变得更加容易。

要流式传输或下载资产,您首先需要通过创建定位器来“发布”它。定位器提供对资产中包含的文件的访问。

媒体服务支持两种类型的定位器:

  1. OnDemandOrigin 定位器,用于流式传输媒体(例如,MPEG DASH、HLS 或 Smooth Streaming)
  2. 访问签名 (SAS) 定位器,用于下载媒体文件。

创建定位器后,您可以构建用于流式传输或下载文件的 URL。

这是使用 Rest API 执行此操作的指南:https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-rest-get-started

注意:您是将视频直接上传到 Azure 存储吗?如果是这种情况,我建议不要将视频直接上传到 Azure 存储,而是使用 Azure 媒体服务 SDK

上传视频

Azure 媒体服务有很好的文档,可以帮助您解决其他问题:http://azure.microsoft.com/en-us/develop/media-services/resources/

使用 Python SDK,您需要做的一切都应该是完全可能的。

不推荐直接使用REST API!它没有 Azure 资源管理 API 需要的任何内置重试策略。您可能会在生产中遇到问题 - 除非您知道自己在做什么并推出自己的重试逻辑。

仅对媒体服务使用官方 Python SDK 客户端。

此外,REST API 上面的 link 指向旧版 v2 API - 现在不要使用它。此处仅使用最新的 v3 SDK 客户端 -

pip 安装 azure-mgmt-media

我们这里有数量有限的 Python 示例,展示了如何使用客户端 SDK Python - https://github.com/Azure-Samples/media-services-v3-python

我们团队中的

None 人是 Python 专家,我们似乎没有对该回购做出很多贡献 - 因此它远不及我们的 . NET 示例 - https://github.com/Azure-Samples/media-services-v3-dotnet

但请记住,所有 Azure SDK 都是根据 REST API Swagger(打开 API)自动生成的 - 因此它们都使用完全相同的实体,并使用相同的 JSON 在线结构 - 所以如果你知道 REST API 在做什么以及 Entites 是什么 - 你可以轻松地在语言之间移植东西。不过先了解 Python 会有所帮助!

您提到要下载内容 - 这将需要使用 python 的存储 SDK。媒体服务仅使用 Azure 存储帐户。这意味着您可以使用 SAS URl 访问容器来上传和下载内容。查看 Python 的存储示例,了解在那里可以做什么。 https://pypi.org/project/azure-storage-blob/