1

我是一名 python 开发人员,在 microsoft azure 服务方面缺乏经验。

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

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

我需要你的帮助。

4

2 回答 2

0

使用 Python SDK,您需要做的所有事情都应该完全可以实现。

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

仅将官方 Python SDK 客户端用于媒体服务。

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

pip install azure-mgmt-media

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

我们团队中没有一个人是 Python 专家,而且我们似乎没有对那个 repo 做出很多贡献 - 所以它远没有我们这里的 .NET 示例那么全面 - https://github.com/Azure -样本/媒体服务-v3-dotnet

但请记住,所有 Azure SDK 都是从 REST API Swagger (Open API) 自动生成的——所以它们都使用完全相同的实体,并在线上使用相同的 JSON 结构——所以如果你知道 REST API正在做什么以及实体是什么 - 您可以轻松地在语言之间移植事物。不过有助于先了解 Python!

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

于 2021-08-26T17:39:21.303 回答
0

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

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

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

  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/

于 2021-08-26T10:51:17.917 回答