如何通过 python sdk 下载传递内容(视频)?
Posted
技术标签:
【中文标题】如何通过 python sdk 下载传递内容(视频)?【英文标题】:How to delivery content (video) by download with python sdk? 【发布时间】:2021-10-25 15:12:27 【问题描述】:我是一名 python 开发人员,在 microsoft azure 服务方面缺乏经验。
对于客户端,我必须允许使用 azure 媒体服务(视频流)下载视频。我确实在文档 (https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-deliver-asset-download) 中找到了有关该主题的信息,但我想使用 python 到达那里(所以要么是其余的 azure api,要么是 python sdk)。
我开始相信这是不可能的。
我需要你的帮助。
【问题讨论】:
【参考方案1】:如果文件是使用 Azure 媒体服务 SDK 上传的,则上传的视频将存储为 Assest 文件。这样可以更轻松地将视频流式传输到不同的设备。
要流式传输或下载资产,您首先需要通过创建定位器来“发布”它。定位器提供对资产中包含的文件的访问。
媒体服务支持两种类型的定位器:
-
OnDemandOrigin 定位器,用于流式传输媒体(例如,MPEG DASH、HLS 或 Smooth Streaming)
访问签名 (SAS) 定位器,用于下载媒体文件。
创建定位器后,您可以构建用于流式传输或下载文件的 URL。
以下是使用 Rest API 的指南:https://docs.microsoft.com/en-us/azure/media-services/previous/media-services-rest-get-started
注意:您要将视频直接上传到 Azure 存储?如果是这种情况,我的建议是使用 Azure 媒体服务 SDK
上传视频,而不是直接将视频上传到 Azure 存储Azure 媒体服务有很好的文档,可以帮助您解决其他问题:http://azure.microsoft.com/en-us/develop/media-services/resources/
【讨论】:
【参考方案2】:您需要做的一切都应该通过 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-Samples/media-services-v3-dotnet
但请记住,所有 Azure SDK 都是从 REST API Swagger(开放 API)自动生成的 - 所以它们都使用完全相同的实体,并在线上使用相同的 JSON 结构 - 所以如果你知道什么REST API 正在做什么以及实体是什么 - 您可以轻松地在语言之间移植事物。不过有助于先了解 Python!
您提到您想下载一些东西——这需要使用 Python 的存储 SDK。媒体服务仅使用 Azure 存储帐户。这意味着您可以使用 SAS URl 访问容器来上传和下载内容。查看 Python 的存储示例以了解在那里做什么。 https://pypi.org/project/azure-storage-blob/
【讨论】:
以上是关于如何通过 python sdk 下载传递内容(视频)?的主要内容,如果未能解决你的问题,请参考以下文章