是否想要生成缩略图、将两个视频拼接在一起、对视频进行子剪辑或将其旋转(诸如此类)? 有关媒体服务示例代码,请参阅
示例
页面。
媒体服务中的术语“编码”适用于将包含数字视频和/或音频的文件从一种标准格式转换为另一种标准格式的过程,其目的是 (a) 减小文件大小,和/或 (b) 生成与各种设备和应用兼容的格式。 此过程也称为视频压缩或转码。 有关概念的进一步讨论,请参阅
数据压缩
及
什么是编码和转码?
。
视频通常通过
渐进式下载
方式或
自适应比特率流式处理
传送到设备和应用。
媒体服务不会对已取消或引发错误的作业计费。 例如,进度已达到 50% 而被取消的作业不会按作业时间的 50% 计费。 你仅为已完成作业付费。
若要通过渐进式下载方式传送内容,可以使用 Azure 媒体服务将数字媒体文件(夹层)转换为
MP4
文件,其中包含已通过
H.264
编解码器编码的视频,以及已通过
AAC
编解码器编码的音频。 此 MP4 文件将写入到存储帐户中的资产。 可以使用 Azure 存储 API 或 SDK(例如
存储 REST API
或
.NET SDK
)直接下载文件。 如果在存储中创建了具有特定容器名称的输出资产,请使用该位置。 否则,可以使用媒体服务
列出资产容器 URL
。
若要准备通过自适应比特率流式处理传送的内容,需以多个比特率(从高到低)编码夹层文件。 为了确保质量的平稳过渡,视频的分辨率会随着比特率的降低而降低。 这会生成所谓的编码阶梯:一个包含分辨率和比特率的表(请参阅
自动生成的自适应比特率阶梯
或使用内容感知型编码预设)。 可以使用媒体服务以多个比特率编码夹层文件。 在此过程中,你将获得一组 MP4 文件和关联的流式处理配置文件,这些文件将写入到存储帐户中的资产。 然后,可以使用媒体服务中的
动态打包
功能,通过
MPEG-DASH
和
HLS
等流式处理协议来传送视频。 这需要创建一个
流定位符
并生成与受支持协议对应的流 URL,然后,可以根据功能将这些内容移交到设备/应用。
若要使用媒体服务 v3 进行编码,需创建
转换
和
作业
。 转换用于定义编码设置和输出的配方,作业则是该配方的一个实例。 有关详细信息,请参阅
转换和作业
。
使用媒体服务进行编码时,可以使用预设来指示编码器应如何处理输入媒体文件。 在媒体服务 v3 中,使用标准编码器对文件进行编码。 例如,可以在编码内容中指定所需的视频分辨率和/或音频信道数量。
可以使用基于行业最佳做法的内置预设之一快速入门,也可以选择针对特定方案或设备要求生成自定义预设。
从 2019 年 1 月开始,使用标准编码器编码以生成 MP4 文件时,将生成一个新的 .mpi 文件并将其添加到输出资产中。 此 MPI 文件旨在提高
动态打包
和流式处理方案的性能。
不应修改或删除该 MPI 文件,也不应在存在(或不存在)此类文件的情况下采用服务中的任何依赖项。
媒体服务支持以下内置编码预设:
BuiltInStandardEncoderPreset
BuiltInStandardEncoderPreset
用于设置内置预设,以便使用标准编码器对输入视频进行编码。
目前支持以下内置预设:
EncoderNamedPreset.AACGoodQualityAudio
:生成一个 MP4 文件,其中仅包含以 192 kbps 编码的立体声音频。
EncoderNamedPreset.AdaptiveStreaming:支持 H.264 自适应比特率编码。 有关详细信息,请参阅
自动生成比特率梯形图
。
EncoderNamedPreset.H265AdaptiveStreaming:类似于 AdaptiveStreaming 预设,但使用 HEVC (H.265) 编解码器。 生成一组符合 GOP 的 MP4 文件,其中包含 H.265 视频和立体声 AAC 音频。 根据输入分辨率、比特率和帧速率自动生成比特率阶梯。 自动生成的预设始终不会超过输入分辨率。 例如,如果输入为 720p,则输出将最高保持 720p。
EncoderNamedPreset.ContentAwareEncoding
:公开一个用于 H.264 内容感知编码的预设。 使用内容感知编码生成一组符合 GOP 标准的 MP4。 在提供任何输入内容的情况下,服务将对输入内容执行初始的轻量分析,并使用结果来确定最佳层数,以及自适应流式处理适合传送的比特率和分辨率设置。 此预设对于中低复杂度的视频特别有效,这些视频的输出文件的比特率将会较低,但质量仍可为观看者带来良好体验。 输出将包含带有交错式视频和音频的 MP4 文件。 此预设仅产生高达 1080P 的高清输出。 如果需要 4K 输出,则可以使用“maxHeight”属性,通过
PresetConfigurations
配置预设。 有关详细信息,请参阅
内容感知编码
。
EncoderNamedPreset.H265ContentAwareEncoding
:公开一个用于 HEVC (H.265) 内容感知编码的预设。 使用内容感知编码生成一组符合 GOP 标准的 MP4。 在提供任何输入内容的情况下,服务将对输入内容执行初始的轻量分析,并使用结果来确定最佳层数,以及自适应流式处理适合传送的比特率和分辨率设置。 此预设对于中低复杂度的视频特别有效,这些视频的输出文件的比特率将会较低,但质量仍可为观看者带来良好体验。 输出将包含带有交错式视频和音频的 MP4 文件。 此预设产生高达 4K HD 的高清输出。 如果需要 8K 输出,则可以使用“maxHeight”属性,通过
PresetConfigurations
配置预设。
EncoderNamedPreset.H264MultipleBitrate1080p
:生成一组 8 GOP 对齐的 MP4 文件(范围从 6000 kbps 到 400 kbps)和立体声 AAC 音频。 起始分辨率为 1080p,之后下降到 360p。
EncoderNamedPreset.H264MultipleBitrate720p
:生成一组 6 GOP 对齐的 MP4 文件(范围从 3400 kbps 到 400 kbps)和立体声 AAC 音频。 起始分辨率为 720p,之后下降到 360p。
EncoderNamedPreset.H264MultipleBitrateSD
:生成一组 5 GOP 对齐的 MP4 文件(范围从 1600 kbps 到 400 kbps)和立体声 AAC 音频。 起始分辨率为 480p,之后下降到 360p。
EncoderNamedPreset.H264SingleBitrate1080p:生成一个 MP4 文件,其中的视频已使用 H.264 编解码器以 6750 kbps 编码,图片高度为 1080 像素,立体声音频已使用 AAC-LC 编解码器以 128 kbps 编码。 如果需要较低的音频比特率,可以在转换中生成自定义编码预设,并调整采样率或通道计数,以着手降低 AAC-LC 的值。
EncoderNamedPreset.H264SingleBitrate720p:生成一个 MP4 文件,其中的视频已使用 H.264 编解码器以 4500 kbps 编码,图片高度为 720 像素,立体声音频已使用 AAC-LC 编解码器以 128 kbps 编码。 如果需要较低的音频比特率,可以在转换中生成自定义编码预设,并调整采样率或通道计数,以着手降低 AAC-LC 的值。
EncoderNamedPreset.H264SingleBitrateSD:生成一个 MP4 文件,其中的视频已使用 H.264 编解码器以 2200 kbps 编码,图片高度为 480 像素,立体声音频已使用 AAC-LC 编解码器以 128 kbps 编码。 如果需要较低的音频比特率,可以在转换中生成自定义编码预设,并调整采样率或通道计数,以着手降低 AAC-LC 的值。
EncoderNamedPreset.H265SingleBitrate720P:生成一个 MP4 文件,其中的视频已使用 HEVC (H.265) 编解码器以 1800 kbps 编码,图片高度为 720 像素,立体声音频使用 AAC-LC 编解码器以 128 kbps 编码。
EncoderNamedPreset.H265SingleBitrate1080p:生成一个 MP4 文件,其中的视频已使用 HEVC (H.265) 编解码器以 3500 kbps 编码,图片高度为 1080 像素,立体声音频使用 AAC-LC 编解码器以 128 kbps 编码。
EncoderNamedPreset.H265SingleBitrate4K:生成一个 MP4 文件,其中的视频已使用 HEVC (H.265) 编解码器以 9500 kbps 编码,图片高度为 2160 像素,立体声音频使用 AAC-LC 编解码器以 128 kbps 编码。
若要查看最新预设列表,请参阅
用于编码视频的内置预设
。
自定义预设
媒体服务完全支持自定义预设中的所有值,可满足特定的编码需求和要求。
StandardEncoderPreset
StandardEncoderPreset
介绍使用标准编码器对输入视频进行编码时要使用的设置。 自定义转换预设时使用此预设。
创建自定义预设时,请注意以下事项:
AVC 内容上的所有高度和宽度值必须是 4 的倍数。
在 Azure 媒体服务 v3 中,所有编码比特率均以每秒比特数为单位。 这与我们的 v2 API 的预设不同,后者使用 千比特/秒作为单位。 例如,如果 v2 中的比特率指定为 128(千比特/秒),则在 v3 中它将设置为 128000(比特/秒)。
在媒体服务 v3 中,预设是 API 本身中的强类型化实体。 可以在
开放 API 规范(或 Swagger)
中找到这些对象的“架构”定义。 也可以在
REST API
、
.NET SDK
(或其他媒体服务 v3 SDK 参考文档)中查看预设定义(例如
StandardEncoderPreset
)。
在 v3 中缩放编码
对于使用 2020-05-01 版本或更新版本的 API 创建的帐户或通过 Azure 门户创建的帐户,不再需要缩放和媒体保留单位。 缩放将会自动进行,并由服务在内部进行处理。
媒体服务不会对已取消或已出错的作业计费。 例如,进度已达到 50% 而被取消的作业不会按作业时间的 50% 计费。 你仅为已完成作业付费。
有关详细信息,请参阅
定价
。
请参阅全面的
编码示例
列表。
获得帮助和支持
如果有任何疑问,可以联系媒体服务,或者使用以下方法之一关注我们的更新:
Stack Overflow
。 使用
azure-media-services
标记问题。
@MSFTAzureMedia
或使用
@AzureSupport
请求支持。
通过 Azure 门户提交支持票证。