1

对于我的场景,我们当前的应用程序开始用 html5 编码,并且 angularjs 与 web api 通信。我有一个似乎无法找到端到端示例的工作流程场景。我想允许我网站的用户将视频和图像上传到 Azure 媒体服务。我发现了几个似乎将数据从网页移动到 blob 存储然后复制到 azure 媒体服务的示例。

  1. 有没有办法将文件直接上传到媒体服务,而不是使用临时和永久的 blob 容器(与 AMS 绑定),因为这种方法似乎迫使我拥有一个额外的存储容器,或者有没有办法移动文件到 blob 存储,然后通过 IAssetFile 将 blob 文件链接到 AMS?
  2. 有人可以提供一个最终示例来演示从 Web 前端上传到最终在 AMS 中的文件的流程吗?
  3. 一旦到那里,有没有办法确保用户可以观看但不能下载视频?
4

3 回答 3

6

1.有没有办法将文件直接上传到媒体服务:

  • 媒体服务 SDK 要求您首先在我们的系统中创建一个资产对象。该资产对象由 Storage 中的容器支持。您可以创建一个空的 Asset 对象,并请求一个只写的 SAS URL(我们在我们的 API 中将它们称为“定位器”)以将您的内容直接上传到其中。你可能想看看这个 AngularJS 模块,看看它是否有效。http://ngmodules.org/modules/angular-azure-blob-upload

2.有人可以提供一个结束示例来演示从 Web 前端上传到最终在 AMS 中的文件的流程吗?

  • 您的 Web API/前端应首先使用媒体服务 SDK 创建空资产。创建后,手动创建一个只写 SAS URL 并将其交还给您的 Angular 客户端。然后,Angular 客户端可以使用客户端 javascript 库使用 SAS URL 和用于 azure-blob 上传的模块直接上传到 blob/container,如下所示:http: //ngmodules.org/modules/angular-azure-blob -上传

3. 到了那里,有没有办法确保用户可以观看但不能下载视频?

  • 上传视频后,您应该从资产的定位器集合中删除只写 SAS“定位器”。这样,任何人都不能再用它来写了。
  • 此时您可以创建一个流式定位器。用户将只能通过我们的流媒体服务流式传输文件。您的文件必须以我们可以支持流式传输的格式进行编码,因此您可能必须首先启动编码作业以将其转换为正确的格式和编码设置(具有 H264 和 AAC 音频的 MP4 文件)。如果您想从媒体服务流式传输,您需要确保在您的帐户上启用了至少 1 个流式传输预留单元。此外,如果您希望保护您的文件,您可以查看我们的内容保护服务,该服务将为您的资产提供即时 AES 128 或 PlayReady DRM 加密。您可以将其与 JWT 令牌和 Active Directory 集成,以在您的用户能够在客户端解密视频之前对其进行身份验证/身份验证。
于 2015-03-09T20:45:25.990 回答
0

我对 Azure 媒体服务不太熟悉,但是在查看本指南http://azure.microsoft.com/en-us/documentation/articles/media-services-rest-get-started/之后,在我看来你可以在 Azure 媒体服务上创建资产并将其链接到 blob。这意味着您将只有一个 blob 容器。

于 2015-03-07T00:28:39.913 回答
0

AMS 为包括上传、编码、发布在内的所有媒体处理能力提供了 Rest API。GitHub 中有一个示例项目(邮递员收藏)可以玩。这个示例项目还附有一篇写得很好的文章。请在下面找到链接。

https://github.com/Azure-Samples/media-services-v3-rest-postman

https://docs.microsoft.com/en-us/azure/media-services/latest/stream-files-tutorial-with-rest

希望这会有所帮助

于 2020-06-24T23:14:05.770 回答