教程:基于 URL 对远程文件进行编码并流式传输视频 - .NET

媒体服务徽标 v3


正在查找媒体服务 v2 文档?

本教程展示了使用 Azure 媒体服务在各种浏览器和设备上对视频进行编码和流式处理有多轻松。 可以使用 HTTPS、URL、SAS URL 或位于 Azure Blob 存储中的文件路径来指定输入内容。 本主题中的示例对可通过 HTTPS URL 访问的内容进行编码。 请注意,目前,AMS v3 不支持基于 HTTPS URL 的块传输编码。

完成本教程后即可对视频进行流式处理。

播放视频

如果没有 Azure 试用版订阅,请在开始前创建一个试用版订阅

先决条件

下载并配置示例

使用以下命令将包含流式处理 .NET 示例的 GitHub 存储库克隆到计算机:

git clone https://github.com/Azure-Samples/media-services-v3-dotnet-quickstarts.git

该示例位于 AMSV3Quickstarts 下的 EncodeAndStreamFiles 文件夹。

打开下载的项目中的 appsettings.json。 将值替换为在访问 API 中获取的凭据。

备注

还可以在项目的根位置使用 .env 文件格式,这样就只需为 .NET 示例存储库中的所有项目设置环境变量一次。 只需复制 sample.env 文件,然后填写从 Azure 门户中的媒体服务 API 访问页面或从 Azure CLI 获得的信息。 将 sample.env 文件重命名为 .env 以在所有项目中使用它 。

已配置 .gitignore 文件以避免将此文件发布到分叉存储库。

该示例执行以下操作:

  1. 创建一个 转换(首先,检查指定的转换是否存在)。
  2. 创建一个输出 资产,用作编码 作业 的输出。
  3. 创建基于 HTTPS URL 的 作业 输入。
  4. 使用先前创建的输入和输出提交编码 作业
  5. 检查作业的状态。
  6. 创建 流定位符
  7. 生成流式处理 URL。

有关示例代码中的每个功能的内容介绍,请在此源文件中查看相关代码和注释。

运行示例应用

运行应用时,显示使用不同协议播放视频的 URL。

  1. 在 VSCode 中打开 AMSV3Quickstarts。
  2. 按 Ctrl+F5 以通过 .NET 运行 EncodeAndStreamFiles 应用程序。 这可能需要几分钟的时间。
  3. 应用将输出三个 URL。 在下一步中,你将使用这些 URL 来对流进行测试。

Visual Studio 中 EncodeAndStreamFiles 应用输出的屏幕截图,显示了在 Azure Media Player 中使用的三个流式处理 URL。

在此示例的源代码中,可查看 URL 的生成方式。 若要生成 URL,需要连接流式处理终结点的主机名和流式处理定位符路径。

使用 Azure Media Player 进行测试

本文使用 Azure Media Player 测试流式传输。

备注

如果播放器在 Https 站点上进行托管,请确保将 URL 更新为“https”。

  1. 打开 Web 浏览器并导航到 https://aka.ms/azuremediaplayer/

  2. 在“URL:”框中,粘贴运行应用程序时获取的某个流式处理 URL 值 。

    可以粘贴 HLS、Dash 或 Smooth 格式的 URL,Azure Media Player将切换到适当的流协议,以便在你的设备上自动播放。

  3. 按“更新播放器”。 应会开始播放存储库中的视频文件。

Azure Media Player 可用于测试,但不可在生产环境中使用。

清理资源

如果不再需要你的资源组中的任何一个资源(包括为本教程创建的媒体服务和存储帐户),请删除该资源组。

执行以下 CLI 命令:

az group delete --name amsResourceGroup

检查代码

有关示例代码中的每个功能的内容介绍,请在此源文件中查看相关代码和注释。

如需了解更高级的流式处理示例及其详细说明,请参阅上传、编码和流式处理文件教程。

作业错误代码

请参阅错误代码

多线程处理

Azure 媒体服务 v3 SDK 不是线程安全的。 使用多线程应用程序时,应在每个线程上生成一个新的 AzureMediaServicesClient 对象。

后续步骤