你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
用于 .NET 的 Azure 媒体服务库
概述
Microsoft Azure 媒体服务是一个可扩展的基于云的平台,使开发人员能够生成可缩放的媒体管理和传送应用程序。 媒体服务基于 REST API,使用这些 API 可以安全地上传、存储、编码和打包视频或音频内容,以供点播以及以实时传送视频流的形式传送到各种客户端(例如,电视、电脑和移动设备)。
客户端库
借助 Azure 媒体服务 .NET SDK 库可以使用 .NET 针对媒体服务编程。 使用 Azure 媒体服务客户端库可以针对媒体服务 API 进行连接、身份验证和开发。
有关详细信息,请参阅使用 .NET SDK 开始传送点播内容。
直接从 Visual Studio 包管理器控制台或使用 .NET Core CLI 安装 NuGet 包。
Visual Studio 包管理器
Install-Package windowsazure.mediaservices
代码示例
以下代码示例使用媒体服务 .NET SDK 执行下列任务:
- 创建编码作业。
- 获取对 Media Encoder Standard 编码器的引用。
- 指定使用自适应流式处理预设。
- 将一个编码任务添加到该作业。
- 指定要编码的输入资产。
- 创建一个输出资产用于接收编码的资产。
- 提交作业。
/* Include this 'using' directive:
using Microsoft.WindowsAzure.MediaServices.Client;
*/
CloudMediaContext context = new CloudMediaContext(new Uri(mediaServiceRESTAPIEndpoint), tokenProvider);
// Get an uploaded asset.
IAsset asset = context.Assets.FirstOrDefault();
// Encode and generate the output using the "Adaptive Streaming" preset.
// Declare a new job.
IJob job = context.Jobs.Create("Media Encoder Standard Job");
// Get a media processor reference, and pass to it the name of the
// processor to use for the specific task.
IMediaProcessor processor = context.MediaProcessors.Where(p => p.Name == mediaProcessorName)
.ToList().OrderBy(p => new Version(p.Version)).LastOrDefault();
if (processor == null)
{
throw new ArgumentException(string.Format("Unknown media processor", mediaProcessorName));
}
// Create a task with the encoding details, using a string preset.
// In this case "Adaptive Streaming" preset is used.
ITask task = job.Tasks.AddNew("My encoding task", processor, "Adaptive Streaming", TaskOptions.None);
// Specify the input asset to be encoded.
task.InputAssets.Add(asset);
// Add an output asset to contain the results of the job.
// This output is specified as AssetCreationOptions.None, which
// means the output asset is not encrypted.
task.OutputAssets.AddNew("Output asset", AssetCreationOptions.None);
job.Submit();
job.GetExecutionProgressTask(CancellationToken.None).Wait();
示例
- 流式传输受 Apple FairPlay 保护的 HLS 内容
- 使用 .NET SDK 扩展将 Blob 复制到 Azure 媒体服务资产
- 使用 .NET SDK 通过 Azure 媒体服务编码和传送实时流
查看 Azure 媒体服务示例的完整列表。