

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 网络抽象层 (NAL) 适配标记参考
<a name="producer-reference-nal"></a>

本节包含有关 `StreamInfo.NalAdaptationFlags` 枚举的可用标记的信息。

应用程序中的[基本流](https://en.wikipedia.org/wiki/Elementary_stream)可以采用 **Annex-B** 或 **AVCC** 格式：
+ **Annex-B** 格式用两个字节的零，后跟一三个字节的零，然后是数字 *1（称为**起始码**，例如 00000001*[）来分隔NALUs （网络抽象层单元](https://en.wikipedia.org/wiki/Network_Abstraction_Layer#NAL_units)）。
+ **AVCC** 格式也会换行 NALUs，但每个 NALU 前面都有一个值，该值表示 NALU 的大小（通常为四个字节）。

许多编码器生成 Annex-B 比特流格式。一些更高级别的比特流处理器（例如播放引擎或中的[媒体源扩展 (MSE) 播放器）](https://en.wikipedia.org/wiki/Media_Source_Extensions)在帧中 AWS 管理控制台使用 AVCC 格式。

编解码器私有数据 (CPD)，即 H.264 编解码器的 SPS/PPS （序列参数集/图片参数集），也可以采用 Annex-B 或 AVCC 格式。但是，对 CPD 而言，格式与前面描述的有所不同。

这些标志告诉 SDK 将帧数据和 CPD 改编 NALUs 为 AVCC 或 Annex-B，如下所示：


****  

| 标记 | 适配 | 
| --- | --- | 
| NAL\$1ADAPTATION\$1FLAG\$1NONE | 没有改编。 | 
| NAL\$1ADAPTATION\$1ANNEXB\$1NALS | 将附件 B 改编成 AVC NALUs C。 NALUs | 
| NAL\$1ADAPTATION\$1AVCC\$1NALS | 将 AVCC 改编 NALUs 成附件 B NALUs。 | 
| NAL\$1ADAPTATION\$1ANNEXB\$1CPD\$1NALS | 将编解码器私 NALUs 有数据的附件 B 改编为 AVCC 格式。 NALUs | 
| NAL\$1ADAPTATION\$1ANNEXB\$1CPD\$1AND\$1FRAME\$1NALS | 将编解码器 NALUs 的 Annex-B 和帧私有数据改编为 AVCC 格式。 NALUs | 

有关 NALU 类型的更多信息，请参阅 **RFC 3984** 中的 [Section 1.3: Network Abstraction Layer Unit Types](https://www.ietf.org/rfc/rfc3984.txt)。