前言
本文件按照 GB/T 1.1—2020《标准化工作导则 第1部分:标准化文件的结构和起草规则》的规定起草。
本文件采信世界超高清视频产业联盟社会团体发布的 T/UWA 009.2 ⁃2—2025《三维声技术规范 第 2⁃2 部分:应用指南 媒体格式》。
请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别专利的责任。
本文件由全国信息技术标准化技术委员会(SAC/TC 28)提出并归口。
本文件起草单位:中国电子技术标准化研究院、华为技术有限公司、咪咕文化科技有限公司、上海交通大学、杭州当虹科技股份有限公司、腾讯科技(深圳)有限公司、深圳创维显示科技有限公司、北京数字电视国家工程实验室有限公司、广东博华超高清创新中心有限公司、深圳市奥拓电子股份有限公司、康佳集团股份有限公司、深圳市洲明科技股份有限公司、京东方精电有限公司、苏州大学。
本文件主要起草人:李婧欣、刘帅、韩建、徐异凌、王雪辉、毕蕾、李大龙、徐遥令、李思远、彭辉、苏运全、李永杰、夏丙寅、朱梦尧、李康敬、陈珊、沈思宽、张曼华、刘玲、赵霞飞。
引言
T/UWA 009.2⁃2—2025《三维声技术规范 第 2⁃2 部分:应用指南 媒体格式》于 2025 年 6 月 11 日由世界超高清视频产业联盟正式发布并实施,旨在定义 GB/T 46271—2025 规定的三维声编码位流文件的封装格式、文件配置约束,实现三维声编码位流文件的存储和传输,以更好地满足网络媒体、数字电影、广播电视、广播流媒体、实时通信、虚拟现实和增强现实、视频监控、数字存储媒体等应用需求,推动GB/T 46271—2025 的应用实施。
信息技术三维声技术媒体格式
1 范围
本文件规定了符合 GB/T 46271—2025 的三维声文件的封装格式、配置约束和传输要求。
本文件适用于音视频录制、播放等应用中三维声媒体文件的生成、接收与验证。
2 规范性引用文件
下列文件中的内容通过文中的规范性引用而构成本文件必不可少的条款。其中,注日期的引用文件,仅该日期对应的版本适用于本文件;不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
GB/T 33475.3—2018 信息技术 高效多媒体编码 第3部分:音频
GB/T 33475.6 信息技术 高效多媒体编码 第6部分:智能媒体传输
GB/T 46271—2025 信息技术 三维声技术 编码、分发与呈现
ISO/IEC 13818⁃1 信息技术 运动图像及其伴音信息的通用编码 第1部分:系统(Information technology—Generic coding of moving pictures and associated audio information—Part 1: Systems)
ISO/IEC 14496⁃12:2026 信息技术 音视频对象的编码 第12部分:ISO 基本媒体文件格式(In formation technology—Coding of audio⁃visual objects—Part 12: ISO base media file format)
ISO/IEC 23000⁃19:2024 信息技术 多媒体应用格式 第19部分:片段媒体通用媒体应用格式[Information technology—Multimedia application format (MPEG⁃A)—Part 19: Common media application format (CMAF) for segmented media] ISO/IEC 23009⁃1 信息技术 基于 HTTP 的动态自适应流媒体 第1部分:媒体呈现描述和片段格式[Information technology—Dynamic adaptive streaming over HTTP (DASH)—Part 1: Media presentation description and segment formats]
IETF RFC 3550:2003 实时传输协议(RTP:A Transport Protocol for Real⁃Time Applications)
IETF RFC 6381 “Bucket”媒体类型的‘Codecs’和‘Profiles’参数(The ‘Codecs’ and ‘Profiles’ Parameters for “Bucket” Media Types)
IETF RFC 8216 基于 HTTP 的实时流媒体[HTTP Live Streaming (HLS)]
IETF RFC 8866 会话描述协议(SDP: Session Description Protocol)
3 术语和定义
GB/T 33475.3—2018、GB/T 46271—2025 界定的以及下列术语和定义适用于本文件。
3.1
编码位流 coded bitstrea
音频信号的编码表示。
[来源:GB/T 46271—2025,3.1]
3.2
保留 reserved
可能在将来的标准扩展中被用到,在文件格式或传输信令中的暂时未被使用的字段。
[来源:GB/T 33475.3—2018,3.1,有修改]
3.3 初始化片段 initialization segment
包含有媒体流解码所必需元数据的片段。
3.4 表示 representation
封装有一个或多个具有描述性元数据媒体成分(编码的音频、视频等)的结构化数据集合。
3.5 轨道 track
文件中一系列相关样本的集合。
3.6 媒体呈现描述 media presentation description
用于提供流媒体服务规范化描述媒体呈现的文件。
3.7 片段 segment
媒体呈现描述中的 HTTP 统一资源定位符引用的媒体单元。
3.8 媒体片段 media segment
符合一定的媒体格式、可播放的片段。
注:播放时需要与其前面的 0 个或多个片段以及初始化片段配合。
3.9 媒体资源 asset
任何与唯一标识符联系用作构建一个多媒体演示的多媒体数据实体。
3.10 样本 sample
在非提示轨道中,一个单独的音频帧、时间连续的一个音频帧序列或时间连续的一段压缩音频。
在提示轨道中,定义一个或多个流式分组构成的音频。
注:一个轨道中任何两个样本不能具有相同的时间戳。
3.11 切换集 switching set
同一媒体内容多个可切换的编码版本的集合。
4 缩略语
下列缩略语适用于本文件。
CMAF:通用媒体应用格式(Common Media Application Format)
DASH:基于 HTTP 的动态自适应流媒体(Dynamic Adaptive Streaming over HTTP)
FLV:闪存视频(Flash Video)
HOA:高阶立体声场信号(Higher Order Ambisonics)
HTTP:超文本传输协议(Hypertext Transfer Protocol)
ISO BMFF:ISO 基本媒体文件格式(ISO Base Media File Format)
MIME:多用途互联网邮件扩展类型(Multipurpose Internet Mail Extensions)
MP:媒体呈现(Media Presentation)
MPD:媒体呈现描述(Media Presentation Description)
MTU:最大传输单元(MaximumTransmission Unit)
PES:分组化基本流(Packetized Elementary Stream)
PMT:节目映射表(Program Map Table)
RTP:实时传输协议(Real⁃time Transpor Protocol)
SAP:流访问点(Stream Access Point)
SDP:会话描述协议(Session Description Protocol)
SMT:智能媒体传输(Smart Media Transport)
STD:系统目标解码器(System Target Decoder)
TS:传输流(Transport Stream)
T⁃STD:传输系统目标解码器(Transport System Target Decoder)
UTC:协调世界时(Coordinated Universal Time)
XML:可扩展置标语言(Extensible Mark⁃up Language)
5 Audio Vivid 文件格式
5.1 Audio Vivid 基本流
5.1.1 概述
Audio Vivid 指 GB/T 46271—2025 规定的音频编码技术。Audio Vivid 基本流即 Audio Vivid 编码位流,为符合 GB/T 46271—2025 的音频信号的编码表示。
5.1.2 Audio Vivid 音频编码特性
Audio Vivid 编码系统支持声道信号编码、对象信号编码、HOA(包含 FOA)信号编码、元数据编码。
Audio Vivid 编码器由多种编码工具构成,包括通用全码率音频编码工具、无损音频编码工具和元数据编码工具。
5.1.3 基本流结构
根据 Audio Vivid 的编码特性,Audio Vivid 的基本流结构包括通用全码率音频编码位流和无损音频编码位流。
5.1.4 基本流格式
Audio Vivid 基本流格式为 AATF,应符合 GB/T 46271—2025 中附录 A 的规定。
5.2 Audio Vivid 配置信息
5.2.1 Audio Vivid 通用全码率音频编码特有配置
5.2.1.1 语法
Audio Vivid 通用全码率音频编码内容的特有配置应符合以下语法。
class Avs3AudioGASpecificConfig {
unsigned int(4) sampling_frequency_index;
unsigned int(3) nn_type;
unsigned int(1) reserved;
unsigned int(4) content_type;
if (content_type==0) {
unsigned int(7) channel_num_index;
unsigned int(1) reserved;
} else if(content_type==1) {
unsigned int(7) number_objects;
unsigned int(1) reserved;
} else if(content_type==2) {
unsigned int(7) channel_num_index;
unsigned int(1) reserved;
unsigned int(7) number_objects;
unsigned int(1) reserved;
} else if(content_type==3) {
unsigned int(4) hoa_order;
}
unsigned int(16) total_bitrate;
unsigned int(2) resolution;
if (content_type==3) {
unsigned int(2) reserved;
} else {
unsigned int(6) reserved;
}
}
5.2.1.2 语义
Audio Vivid 通用全码率音频编码内容的特有配置语义描述如下:
sampling_frequency_index:应符合 GB/T 46271—2025 中附录 A 的规定;
nn_type:应符合 GB/T 46271—2025 中附录 A 的规定;
content_type:表示音频内容类型,见表 1;
channel_number_index:应符合 GB/T 46271—2025 中附录 A 的规定;
number_objects:表 示 音 频 对 象 数 量 ,为 GB/T 46271—2025 的 附 录 A 中 object_channel_number +1;
hoa_order:表示 HOA 阶数,为 GB/T 46271—2025 的附录 A 中 order+1;
total_bitrate:表 示 总 码 率 ,单 位 为 千 比 特 每 秒(kbit/s),根 据 content_type 的 值 计 算 方 式 不 同 ,见表 2;
resolution:应符合 GB/T 46271—2025 中附录 A 的规定。
| content_type值 | 音频内容类型 | 映射关系 |
| 0 | 声道信号 | coding_profile值为0时 |
| 1 | 对象信号 | coding_profile值为1且soundBedType值为0时 |
| 2 | 声道信号和对象信号混合 | coding_profile值为1且soundBedType值为1时 |
| content_type值 | 音频内容类型 | 映射关系 |
| 3 | HOA信号 | coding_profile值为2时 |
| 4~15 | 保留 | |
其中,coding_profile 和 soundBedType 应符合 GB/T 46271—2025 中附录 A 的规定。
| content_type值 | total_bitrate计算方式 |
| 0 | GB/T 46271—2025的A.2中声道信号bitrate_index对应的比特率值 |
| 1 | GB/T 46271—2025的A.2中对象信号bitrate_index_per_channel对应的比特率值×number_objects |
| 2 | GB/T 46271—2025的A.2中声道信号bitrate_index对应的比特率值+对象信号bitrate_index_per_channel对应的比特率值×number_objects |
| 3 | GB/T 46271—2025的A.2中HOA信号bitrate_index对应的比特率值 |
| 4~15 | 保留 |
5.2.2 Audio Vivid 无损音频编码特有配置
5.2.2.1 语法
Audio Vivid 无损音频编码内容的特有配置应符合以下语法。
class Avs3AudioLLSpecificConfig {
unsigned int(4) sampling_frequency_index;
if (sampling_frequency_index==0xF) {
unsigned int(24) sampling_frequency;
}
unsigned int(1) anc_data_index;
unsigned int(3) coding_profile;
unsigned int(8) channel_number;
unsigned int(2) resolution;
unsigned int(16) addition_info_length;
if (addition_info_length > 0) {
bit(8*addition_info_length) addition_info;
}
unsigned int(2) reserved;
}
5.2.2.2 语义
Audio Vivid 无损音频编码内容的特有配置语义描述如下:
sampling_frequency_index:应符合 GB/T 46271—2025 中附录 A 的规定;
sampling_frequency:应符合 GB/T 46271—2025 中附录 A 的规定;
anc_data_index:应符合 GB/T 46271—2025 中附录 A 的规定,取值应为 0;
coding_profile:应符合 GB/T 46271—2025 中附录 A 的规定;
channel_number:应符合 GB/T 46271—2025 中附录 A 的规定;
resolution:应符合 GB/T 46271—2025 中附录 A 的规定;
addition_info_length:指示 addition_info 的长度,以字节为单位;
addition_info:指示 Avs3AudioLLSpecificConfig 配置中的额外信息。
5.3 ISO 基本媒体文件格式扩展
5.3.1 Audio Vivid 解码器配置数据盒
5.3.1.1 定义
数据盒类型:‘dca3’
容器:‘av3a’类型的样本入口
强制性:强制包含于‘av3a’类型的样本入口
数量:一个
Audio Vivid 解码器配置数据盒 CA3SpecificBox 包含 5.2 中定义的音频编码特有配置。
5.3.1.2 语法
Audio Vivid 解码器配置数据盒应符合以下语法。
class CA3SpecificBox extends Box('dca3') {
unsigned int(4) audio_codec_id;
if (audio_codec_id == 2) {
Avs3AudioGASpecificConfig() Avs3AudioGAConfig;
}
else if (audio_codec_id == 1) {
Avs3AudioLLSpecificConfig() Avs3AudioLLConfig;
}
}
5.3.1.3 语义
Avs3AudioSpecificGAConfig 在 5.2.1 中定义,Avs3AudioSpecificLLConfig 在 5.2.2 中定义。audio_codec_id 语义描述应符合 GB/T 46271—2025 的附录 A。
5.3.2 Audio Vivid 样本入口
5.3.2.1 定义
样本入口类型:‘av3a
容器:Sample Description Box (‘stsd’)
强制性:封装 Audio Vivid 编码位流的轨道应包含一个‘av3a’样本入口
数量:一个
AATF 类型的 Audio Vivid 编码位流在文件中应被存储为‘av3a’类型的音频轨道,其轨道样本入口中应包含一个 CA3SpecificBox 数据盒。
5.3.2.2 语法
class AVS3ATSampleEntry() extends AudioSampleEntry ('av3a'){
CA3SpecificBox config
}
5.3.2.3 语义
CA3SpecificBox 提供 Audio Vivid 编码位流的解码配置信息。
CA3SpecificBox 提供并扩展了对 ChannelCount,SampleSize,SampleRate 的描述。
本文件规定解码器应忽略 AudioSampleEntry 中的 ChannelCount,SampleSize,SampleRate。
5.3.3 Audio Vivid 样本格式
若音频轨道的样本入口类型为‘av3a’,则其轨道中的每个样本对应一个 aatf_frame(),其中aatf_frame()的定义应符合 GB/T 46271—2025 中附录 A 的规定。
6 CMAF 轨道和媒体配置
6.1 通则
Audio Vivid 的 CMAF 轨道格式应符合 ISO/IEC 23000⁃19:2024 中 9.2 指定的通用音频 CMAF 轨道格式,同时应符合第 5 章中指定的 Audio Vivid 轨道格式以及第 6 章中的约束。
CMAF 轨道的品牌标识定义为‘ca3a’。
6.2 CMAF 轨道约束
6.2.1 通则
任何符合 Audio Vivid 媒体配置文件的 CMAF 轨道都应符合:
a) 5.3 中定义的 Audio Vivid 轨道;
b) ISO/IEC 23000⁃19:2024 中定义的通用视频 CMAF 轨道格式,包括:
• 每个 presentation 应对应一个唯一的 presentation_id;
• 每个 Audio Vivid Sample 只能包含一帧且只有一帧 aatf_frame()。
6.2.2 样本描述数据盒(‘stsd’)
Audio Vivid 轨道中的 SampleDescriptionBox 应包含符合 ISO/IEC 14496⁃12:2026 规定的一个音频样本入口。
满足 Audio Vivid 特有数据盒 CMAF 轨道音频样本入口 的语法和取值应符合 5.3 中定义的AVS3ATSampleEntry (‘av3a’)样本入口。
6.3 CMAF 切换集约束
6.3.1 通则
对于符合 Audio Vivid 媒体配置文件的 CMAF 切换集,适用以下约束:
a) CMAF 切换集中的每个 CMAF 轨道应符合 6.2 中定义的 CMAF 轨道约束;
b) CMAF 切换集中的每个 CMAF 轨道应符合 ISO/IEC 23000 ⁃ 19:2024 中 7.3.4 规定的通用
CMAF 切换集约束要求;
c) 单一初始化 Audio Vivid CMAF 切换集应符合 6.3.2 中定义的约束。
6.3.2 单一初始化 CMAF 切换集约束
Audio VividCMAF 切换集应符合如下单一初始化约束:
a) ISO/IEC 23000⁃19:2024 中 7.3.4 规定的通用 CMAF 切换集约束要求;
b) ISO/IEC 23000⁃19:2024 中 7.3.4.2 规定的通用单一初始化约束;
c) CMAF 头部中的音频样本的 audio_codec_id 保持不变。
6.4 音频编解码参数
呈现应用程序应使用符合 IETF RFC 6381 规定的参数发送 Audio Vivid CMAF 轨道和 CMAF 切换集的音频编解码器配置和级别。
Audio Vivid 媒体配置的 MIME 类型的“编解码器”参数应符合 10.4.3 的规定。
7 DASH 传输
7.1 通则
本章规定了 Audio Vivid 编码位流通过符合 ISO/IEC 23009⁃1 规定的“基于 HTTP 的动态自适应流媒体传输协议”进行传输时的 MPD 与片段格式。
7.2 定义了 DASH 片段格式,用于封装 Audio Vivid 数据的 DASH 片段格式应符合第 5 章规定的Audio Vivid 编码位流的文件格式,其样本入口类型应支持‘av3a’。
7.3 定义了 Audio Vivid 编码位流的 MPD 编码器参数。
7.4 定义并使用了一些新的 XML 元素和属性,并给出了其命名空间及规则。
7.2 DASH 片段格式
7.2.1 初始化片段
每个 DASH 初始化片段应包含一个 CA3SpecificBox 解码器配置记录。
7.2.2 媒体片段
每个 DASH 媒体片段应包含一个或多个 GB/T 46271—2025 规定的音频编码数据。
每个 DASH 媒体片段中的第一个媒体样本应符合以下任意一个约束:
a) 每个 Audio Vivid 样本只能包含一帧且只有一帧 aatf_frame();
b) 每个 Audio Vivid 样本的 audio_codec_id 保持不变;
c) 每个 Audio Vivid 样本的 SAP 的类型,在 ISO/IEC 14496⁃12:2026 中附录 I 定义取值为 1。
7.2.3 索引片段
Audio Vivid 索引片段应满足以下约束:
a) 每个子片段由一个 ISO/IEC 14496 ⁃12:2026 中 8.16.3 定义的‘sidx’类型的片段索引数据盒索引;
b) ‘sidx’数据盒指示引用的子片段的 starts_with_SAP 取值为 1,SAP_type 取值为 1。
7.3 DASH MPD 编码器参数
Audio Vivid 编码位流在 MPD 中的@codecs 属性使用 10.4.3 中定义的 MIME 类型‘codecs’参数。
7.4 DASH MPD 描述符
7.4.1 @mimeType 属性
@mimeType 属性应设置为“audio/mp4”。
7.4.2 @audioSampleRate 属性
音频采样率的属性源于 CA3SpecificBox 的 sampling_frequency_index。
7.4.3 @startWithSAP 属性
@startWithSAP 属性应设置成 1。
7.4.4 AudioChannelConfiguration 描述符
@schemeIdUri 属性设置为“urn:avs:avs3:p7:2024:audio_channel_configuration”,用于描述编码位流包含的音频配置。
@value 属性值为 3 个字节,计算方式如下。
a) 如果 AVS3 音频编码位流在 MPD 中@codecs 属性为‘av3a.01’,则@value 的属性值为:
• 第 1 个字节为 0xF0;
• 第 2 个字节等于 5.2.2.1 中 channel_number 的值;
• 第 3 个字节为 0。
b) 如果 AVS3 音频编码位流在 MPD 中@codecs 属性为‘av3a.02 ’,则@value 的属性值为:
• 第 1 个字节的高 4 位为 0xF,低 4 位等于 5.2.1.1 中 content_type 的值,其中,content_type 的取值范围为 0~3;
• 第 2 个字节:如果第 1 个字节等于 0xF0、0xF2 或者 0xF3,则第 2 个字节最高 1 位等于 0,低7 位等于 5.2.1.1 中 channel_number_index 的值,否则,如果第 1 个字节等于 0xF1,第 2 个字节等于 5.2.1.1 中 object_channel_number + 1 的值;
• 3 个 字 节 :如 果 第 1 个 字 节 的 值 等 于 0xF2,则 第 3 个 字 节 的 值 等 于 5.2.1.1 中 object_channel_number + 1 的值,否则,第 3 个字节的值等于 0。
8 传输流和节目流
8.1 通则
本章规定了适用于 Audio Vivid 编码位流传输流的编码结构与参数。
Audio Vivid 流满足以下约束:
a) Audio Vivid 流应是 ISO/IEC 13818⁃1 中的一个节目元素,基本流的 stream_type 字段值应等于‘0xD5’;
b) Audio Vivid 应使用 AATF 的封装格式,即封装成 aatf_frame();
c) Audio Vivid 流的常见编码参数,如 audio_codec_id 应使用 Audio Vivid 流描述符标识。如果存在与 Audio Vivid 流相关联的 Audio Vivid 流描述符,则该描述符应包含在节目映射表中相应基本流条目的描述符循环中。
8.2 PES 分组流标识
Audio Vivid 应作为 PES_packet_data_bytes 携带在 PES 分组数据包中,并通过节目映射表中分配的 stream_type 字段值(0xD5)标识。
Audio Vivid 的 PES 数据包应满足以下约束:
a) PES 分组的 stream_id 取值‘1111 1101’(extended_stream_id);
b) PES 分组包头中 stream_id_extension_flag 取值‘0’,stream_id_extension 字段的取值‘100 1111’用于表示 Audio Vivid;
c) elementary stream 在 PES payload 是字节对齐,即 Audio Vivid 的首字节位于 PES payload 的首字节中;
d) 一个 PES 包可包含一帧或多帧 aatf_frame()。
8.3 节目和节目元素描述符
8.3.1 注册描述符
PMT 中应包含 registration_descriptor()。registration_descriptor()的定义应符合 ISO/IEC 13818⁃1的规定,其中,registration_descriptor()的 tag 值应为 0x05,Audio Vivid 的 format_identifier 应为 0x41⁃56 53⁃41(‘AVSA’)。
8.3.2 Audio Vivid 流描述符语法
AVS3_Audio_descriptor()位于 PMT 中的 ES_info_length 字段后面。其语法见表 3。
| 语法 | 位数 | 助记符 |
| AVS3_audio_descriptor() | — | — |
| { | — | — |
| descriptor_tag | 8 | uimsbf |
| descriptor_length | 8 | uimsbf |
| audio_codec_id | 4 | uimsbf |
| sampling_frequency_index | 4 | uimsbf |
| if(audio_codec_id==1) { | — | — |
| if(sampling_frequency_index==0xf) { | — | — |
| sampling_frequency | 24 | uimsbf |
| } | — | — |
| anc_data_index | 1 | bslbf |
| coding_profile | 3 | uimsbf |
| reserved | 4 | bslbf |
| channel_number | 8 | uimsbf |
| } | — | — |
| if(audio_codec_id==2) { | — | — |
| 语法 | 位数 | 助记符 |
| nn_type | 3 | uimsbf |
| reserved | 1 | bslbf |
| content_type | 4 | uimsbf |
| if(content_type==0) { | — | — |
| channel_num_index | 7 | uimsbf |
| reserved | 1 | bslbf |
| }else if(content_type==1) { | — | — |
| object_channel_number | 7 | uimsbf |
| reserved | 1 | bslbf |
| }else if(content_type==2) { | — | — |
| channel_num_index | 7 | uimsbf |
| reserved | 1 | bslbf |
| object_channel_number | 7 | uimsbf |
| reserved | 1 | bslbf |
| }else if(content_type==3) { | — | — |
| hoa_order | 4 | uimsbf |
| reserved | 4 | bslbf |
| } | — | — |
| total_bitrate | 16 | uimsbf |
| reserved | 4 | bslbf |
| } | — | — |
| total_bitrate | 16 | uimsbf |
| } | — | — |
| resolution | 2 | uimsbf |
| reserved | 6 | bslbf |
| for (i=0; itemp | — | — |
| addition_info[i] | 8 | bslbf |
| } | — | — |
| } | — | — |
8.3.3 Audio Vivid 流描述符中各字段的语义
descriptor_tag:Audio Vivid 描述符的 tag 应为 210(0xD2)。
descriptor_length:Audio Vivid 描述符的长度。
audio_codec_id:应符合 GB/T 46271—2025 的附录 A。
anc_data_index:应符合 GB/T 46271—2025 的附录 A,本部分取值应为 0。
coding_profile:应符合 GB/T 46271—2025 的附录 A。
sampling_frequency_index:应符合 GB/T 46271—2025 的附录 A。
sampling_frequency:应符合 GB/T 46271—2025 的附录 A。
bitrate_index:应符合 GB/T 46271—2025 的附录 A。
channel_number:应符合 GB/T 46271—2025 的附录 A。
nn_type:应符合 GB/T 46271—2025 的附录 A。
content_type:表示音频内容类型,见表 4。
| content_type值 | 音频内容类型 | 映射关系 |
| 0 | 声道信号 | coding_profile值为0时 |
| 1 | 对象信号 | coding_profile值为1且soundBedType值为0时 |
| 2 | 声道信号和对象信号混合 | coding_profile值为1且soundBedType值为1时 |
| 3 | HOA信号 | coding_profile值为2时 |
| 4~15 | 保留 | |
channel_num_index:应符合 GB/T 46271—2025 的附录 A。
object_channel_number:应符合 GB/T 46271—2025 的附录 A。
hoa_order:表示 HOA 阶数,等于 GB/T 46271—2025 的附录 A 中 order+1。
total_bitrate:表示总码率,单位为千比特每秒(kbit/s),根据 content_type 的值计算方式不同,见表 5。
| content_type值 | total_bitrate计算方式 |
| 0 | GB/T 46271—2025的A.2中声道信号bitrate_index对应的比特率值 |
| 1 | GB/T 46271—2025的A.2中对象信号bitrate_index_per_channel对应的比特率值×(object_channel_number +1) |
| 2 | GB/T 46271—2025的A.2中声道信号bitrate_index对应的比特率值+对象信号的bitrate_index_per_channel对应的比特率值×(object_channel_number +1) |
| 3 | GB/T 46271—2025的A.2中HOA信号bitrate_index对应的比特率值 |
| 4~15 | 保留 |
resolution:应符合 GB/T 46271—2025 的附录 A。
addition_info:可选字段,附加信息。
8.4 Audio Vivid T⁃STD 模型拓展
8.4.1 T⁃STD 模型
Audio Vivid T⁃STD 模型拓展中访问单元 AU(Access Unit)表示使用 AATF 封装格式的一个音频帧。对于包含 Audio Vivid 的传输流应符合 T⁃STD 模型,见图 1。

标引符号说明:
t(i) —— 传输流的第 i个字节进入系统目标解码器的时间,单位为秒(s);
TBn 基本流 n 的传输缓存;
Bn 基本流 n 的主缓存;
Rxn ——从 TB 到 Bn 的传输速率;
An(j) — Audio Vivid 基本流的第 j个存储单元;
tdn(j) 在系统目标解码器中解码的时间,单位为秒(s);
Dn 基本流 n 对应的解码器;
Pn(k) 基本流 n 中第 k 个呈现单元;
tpn(k) 基本流 n 中第 k 个呈现单元对应的时间,单位为秒(s)。
图 1 面向 Audio Vivid 的 T⁃STD 模型拓展
8.4.2 缓存管理
Audio Vivid T⁃STD 模型扩展中 TBn 到 Bn 的传输速率按公式(1)计算。
Rxn =1.2 timesRmax timesN(1)
式中:
Rmax Audio Vivid 单通道最大速率;
N 基本流中包含的音频通道总数。
表 6 给出了 Audio Vivid T⁃STD 模型拓展中对应取值。
| 通道数量 | 取值/(bit/s) |
| 1~8 | 2 000 000 |
| 9~16 | 3 686 400 |
| 17~48 | 11 059 200 |
| 49~128 | 29 491 200 |
Audio VividT⁃STD 模型扩展中主缓存按公式(2)和公式(3)计算。
Bn = Bmux + Bdec + Boh(2)
Bmax =0.004 timesRmax timesN(3)
式中:
Bmux 额外复用缓存;
Bdec 基本流存储单元缓存,取值为 6 144 bits;
Boh PES 包头缓存,取值为 528 bytes。
Audio Vivid T⁃STD 模型拓展中对应取值见表 7。
| 通道数量 | Bn/bytes |
| 1~8 | 7 440 |
| 9~16 | 14 352 |
| 17~48 | 42 000 |
| 49~128 | 111 120 |
8.4.3 缓存延时
Audio Vivid 传输流 STD 延时应满足:对于所有 j 对应存取单元 An(j) 中的所有字节 i,对应 td(n j)
-t(i)≤10(s) 。
8.4.4 缓存管理条件
缓存管理条件满足:
a) TB n 不应上溢,且应在每一秒中至少有一次处于清空状态;
b) Bn 既不应上溢,也不应下溢。
9 SMT 传输
9.1 通则
Audio Vivid 编码位流基于 SMT 传输文件传输时应遵循如下约束:
a) Audio Vivid 编码位流符合第 5 章中基于 ISO BMFF 的文件封装格式;
b) Audio Vivid 文件封装符合 GB/T 33475.6 的要求,以通用封装单元的形式通过 SMT 进行传输;
c) Audio Vivid 文件传输过程中使用的信令消息,符合 SMT 中信令消息的定义以及本部分的扩展定义。
9.2 Audio Vivid 媒体资源描述符
9.2.1 定义
Audio Vivid 媒体资源描述符用于指示 Audio Vivid 编码位流的编码类别、编码档次、存储模式等信息。Audio Vivid 媒体资源描述符在 SMT 的 MP 表中进行扩展,用于解决 Audio Vivid 在 SMT 协议下灵活传输与个性化消费的需求。
9.2.2 语法
Audio Vivid 媒体资源描述符语法见表 8。
| 语法 | 值 | 比特数 | 备注 |
| Audio_info_descriptor() { | — | — | — |
| descriptor_tag | — | 16 | uimsbf |
| 语法 | 值 | 比特数 | 备注 |
| descriptor_length | — | 16 | uimsbf |
| audio_format_type | — | 4 | uimsbf |
| audio_codec_id | — | 4 | uimsbf |
| coding_profile | — | 3 | uimsbf |
| average_bitrate_flag | — | 1 | bslbf |
| hoa_order_flag | — | 1 | bslbf |
| channel_number_flag | — | 1 | bslbf |
| object_info_flag | — | 1 | bslbf |
| reserved | ‘1’ | 1 | uimsbf |
| if(average_bitrate_flag==1) | — | — | — |
| average_bitrate | — | 16 | uimsbf |
| else { | — | — | — |
| max_bitrate | — | 16 | uimsbf |
| min_bitrate | — | 16 | uimsbf |
| } | — | — | — |
| if(hoa_order_flag){ | — | — | — |
| max_hoa_order | — | 8 | uimsbf |
| } | — | — | — |
| if(channel_number_flag){ | — | — | — |
| max_channel_number | — | 8 | uimsbf |
| } | — | — | — |
| if(object_info_flag){ | — | — | — |
| max_object_channel_number | — | 8 | uimsbf |
| } | — | — | — |
| bit_depth_resolution | — | 8 | uimsbf |
| sample_rate | — | 24 | uimsbf |
| } | — | — | — |
9.2.3 语义
Audio Vivid 媒体资源描述符语义描述如下。
descriptor_tag:用于标识描述符的类型。
descriptor_length:指示描述符的长度,单位为字节。
audio_format_type:指示 Audio Vivid 编码位流的类别。该字段取值为 0 表示位流为 Audio Viv id AASF 存储格式的位流;该字段取值为 1 表示位流为 Audio Vivid AATF 传输格式的位流。
audio_codec_id:指示音频媒体资源的编码类别。对于 Audio Vivid 位流;该字段取值为 0 时表示媒体资源为通用高码率音频编码数据;取值为 1 表示媒体资源为无损音频编码数据;该字段取值为 2 表示媒体资源为通用全码率音频编码数据;其余取值保留。
coding_profile:指示音频媒体资源的编解码档次。该字段取值为 0 表示音频媒体资源的编解码遵循基本框架;该字段取值为 1 表示音频媒体资源的编解码遵循对象元数据编码框架;该字段取值为 2 表示音频媒体资源的编解码遵循 HOA 数据编码框架。
average_bitrate_flag:取值为 0 时表示音频媒体资源不具备平均码率;取值为 1 时表示音频媒体资源具备平均码率。
max_bitrate、average_bitrate、min_bitrate 分别指示音频媒体资源的最大码率、平均码率、最小码率,以 kbps 为单位。
hoa_order_flag:取值为 1 时表示当前描述符中指示 HOA 阶数;取值为 0 时表示当前描述符中不指示 HOA 阶数。
channel_number_flag:取值为 1 时表示当前描述符中指示声道数;取值为 0 时表示当前描述符中不指示声道数。
object_info_flag:取值为 1 时表示当前描述符中指示声音对象信息;取值为 0 时表示当前描述符中不指示声音对象信息。
max_hoa_order:指示当前媒体资源支持的最大 HOA 阶数。
max_channel_number:指示当前媒体资源支持的最大声道数。
max_object_channel_number:指示当前媒体资源包含的全部对象支持的最大声道数量。
bit_depth_resolution:指示音频输入信号的量化比特数。
sample_rate:指示音频输入信号的采样频率。
9.3 交互反馈信令表
9.3.1 定义
交互反馈消息提供沉浸式媒体消费时,服务器与客户端之间的交互反馈。当沉浸式媒体消费中的服务器与客户端之间需发送交互反馈信息时,使用此消息进行会话。一个交互反馈消息信令中可包含一个或多个交互反馈信令表。交互反馈信令表中包含了服务器和客户端之间交互反馈的信息,不同类型的交互反馈信令表用于指示不同类型的交互反馈信息。
对于 Audio Vivid 编码位流的媒体资源,若其包含可交互的声音对象,则用户对于声音对象的交互操作可通过交互反馈信令表进行反馈,其中声音对象的交互反馈信令表的字段取值应遵循如下约束:
a) table_type 取值为 3;
b) asset_group_flag 取值为 0。
9.3.2 语法
交互反馈信令表语法见表 9。
| 语法 | 值 | 比特数 | 类型 |
| interaction_feedback_table(){ | — | — | — |
| table_id | — | — | uimsbf |
| 语法 | 值 | 比特数 | 类型 |
| Version | — | — | uimsbf |
| Length | — | — | uimsbf |
| table_payload { | — | — | — |
| table_type | — | — | uimsbf |
| timestamp | — | — | uimsbf |
| message_source | — | 8 | — |
| asset_group_flag | — | 1 | — |
| reserved | — | 1 | uimsbf |
| if(asset_group_flag) { | — | — | — |
| asset_group_id | — | 6 | — |
| } | — | — | — |
| else{ | — | — | — |
| asset_id() | — | 8 | — |
| } | — | — | — |
| if(table_type == 3){ | — | — | — |
| coordinate_type | — | — | — |
| if(coordinate_type == 0) { | — | — | — |
| ClientPosition() | — | 8 | uimsbf |
| } | — | — | — |
| if(coordinate_type == 1) { | — | — | — |
| azimuth | — | — | — |
| elevation | — | 8 | uimsbf |
| distance | — | 8 | uimsbf |
| } | — | — | — |
| } | — | — | — |
| } | — | — | — |
| } | — | — | — |
9.3.3 语义
table_type 指示交互反馈信令表携带的信息类型。其取值含义见表 10。
| 取值 | 描述 |
| 0 | 全景视频用户位置变动信息 |
| 1 | 容积视频用户位置变动信息 |
| 2 | 自由视角视频用户位置变动信息 |
| 3 | 音频声音对象交互信息 |
| 4..255 | 未定义 |
交互反馈信令表语义描述如下。
Timestamp:指示当前交互产生的时间,使用 UTC 时间。
message_source:指示消息源,0 表示交互反馈消息是客户端发往服务器,1 表示交互反馈消息是服务器发往客户端。该值此处置 0。
asset_group_flag:指示当前消费内容是否属于一个媒体资源组。取值为 1 表示客户端当前消费内容属于一个媒体资源组;取值为 0 表示客户端当前消费内容不属于媒体资源组。
asset_group_id:指示客户端当前消费内容的媒体资源组标识符。
asset_id:指示客户端当前消费内容的媒体资源标识符。
coordinate_type:指示用户交互位置的坐标类型,该字段取值为 0 表示交互位置以笛卡尔坐标系指示;该字段取值为 1 表示交互位置以球面坐标系指示。
ClientPosition():指示全局坐标系下用户交互位置的 x、y、z 坐标,其具体定义如下:
aligned(8) class ClientPosition () {
signed int(16) position_x;
signed int(16) position_y;
signed int(16) position_z;
}
其中,position_x 指示用户实时位置相对起始位置沿着 x 轴位移,取值范围为(-215,215 − 1),单位为毫米(mm);
position_y 指示用户实时位置相对起始位置沿着 y 轴位移,取值范围为(-215,215 − 1),单位为毫米(mm);
position_z 指示用户实时位置相对起始位置沿着 z 轴位移,取值范围为(-215,215 − 1),单位为毫米(mm)。
azimuth:指示用户交互位置的方位角。
elevation:指示用户交互位置的高度。
distance:指示用户交互位置的距离。
10 RTP 传输
10.1 RTP 负载
10.1.1 概述
Audio Vivid 基于 RTP 协议进行传输时,通过 RTP 封装将音频帧封装为若干个 RTP 包,每个 RTP包由 RTP Header 和 RTP payload 组成。
10.1.2 封包规则
RTP payload 封包规则应符合以下任何一个约束:
a) RTP 的 payload 携带的 Audio Vivid 编码格式为 aatf_frame();
b) 如果一个 aatf_frame()的长度超过了 MTU,按照 IETF RFC 3550:2003 中 6.1 的跨包规则来进行传输,即将该 aatf_frame()按照其长度之与 MTU 的倍数进行分割成多个 MTU 进行传输。
对于上述分割的 MTU,使用 RTP Header 字段里的 Marker (M)bit 来指明当前该 MTU 分帧是否是最后一帧。
10.2 RTP 头
10.2.1 概述
IETF RFC 3550:2003 的 5.1 中定义的 RTP Header 结构定义见图 2,对于字段 Payload Type(PT), Marker(M) bit, Timestamp,其扩展定义见 10.2.2。

10.2.2 RTP 头扩展
Payload Type(PT):Audio Vivid 的 PT 值采用动态范围分配,即 PT 值属于[96,127]范围。
Marker (M)bit:M 指定 aatf_frame()包的边界。 M 等于 1 意味该 RTP 包包含一个完整的aatf_frame(),或者 aatf_frame()的最后一个分包。
Timestamp:时间戳默认为 90 kHz。
10.3 SDP 定义
10.3.1 概述
SDP 会话描述协议(Session Description Protocol)用于在媒体会话中传递媒体流信息,并允许会话描述的接收者参与会话,在支持 RTP 的扩展时,除满足 IETF RFC 8866 所述的规则,需对 10.3.2 中的字段进行扩展定义。
10.3.2 SDP 字段定义
“m=”的 media name 对应 MIME 媒体名字 audio。
“a=rtpmap”的 encoding name 对应 MIME 子名字 AV3A⁃AATF,表示媒体流为 Audio Vivid 位流。
“a=rtpmap”的 clock rate 对应必需参数 rate。
可选参数 codec⁃nn⁃id、config、bitrate 都是“a=fmtp”的属性。
10.4 MIME 类型
10.4.1 通则
当使用 IETF RFC 6381 定义的 MIME 类型的‘codecs’参数时,如果 MIME 类型对应本文件定义的文件格式,‘codecs’参数值应符合 Audio Vivid 编码位流格式,其样本入口类型应支持“av3a”。
10.4.2 MIME 参数定义
MIME 媒体名字:audio
MIME 子名字:AV3A⁃AATF
必需参数:
rate:RTP 时间戳的尺度,可以与音频的采样率相同,没有指定的话,默认是 90000。
可选参数:
codec⁃nn⁃id:以十六进制两个字节表达,第一个字节(MSB)含义对应于 GB/T 46271—2025 中附录 A 定义的 audio_codec_id,第二个字节则用来表示该编码器里的 nn_type 类型(对应于GB/T 46271—2025 附录 A 定义的 nn_type),如果编码器不包含神经网络模型,则该字节的值默认为 0。
示例:codec⁃nn⁃id 使用举例如下。
使用 audio_codec_id 为 1 的无损音频编码器,该编码器不包含神经网络模型,则 codec⁃nn⁃id=0x0100。
使用 audio_codec_id 为 2 的通用全码率编码器,并使用低复杂度神经网络模型(对应 nn_type 为 1),则 codec⁃nn ⁃id=0x020。
config:16 进制的字符串,对应第 5.3.1 中 CA3SpecificBox。
bitrate:音频流的码率,对应第 5.2.1 中 total_bitrate。
10.4.3 MIME 类型的‘codecs’参数
10.4.3.1 通则
当使用 IETF RFC 6381 定义的 MIME 类型的‘codecs’参数时,如果 MIME 类型对应本文件中定义的文件格式,且‘codecs’参数值起始于 5.3.2.1 定义的样本入口类型,则‘codecs’参数的子参数应符合10.4.3.2 的规定。
10.4.3.2 Audio Vivid 编码参数
Audio Vividcodecs 参数定义如下:
codecs = 'av3a.audio_codec_id'
示例:
codecs= 'av3a.02'
表示 audio_codec_id 为 2。
11 RTMP 传输
11.1 概述
RTMP 使用的文件格式是 FLV,需要 FLV 格式进行扩展来支持 Audio Vivid 编码码流。
11.2 AUDIODATA 定义
AUDIODATA 的 定 义 见 表 11,Audio Vivid 的 SoundFormat 为 9,则 将 FLV 中 的 reserved 扩 展 为Extended Format,在 AudioTagBody 前增加 SoundFormatEx,值为 17,用来指定 Audio Vivid。
| AudioTagHeader | ||
| 域 | 类型 | 内容 |
| SoundFormat | UB[4] | 9=Extended Format |
| SoundRate | UB[2] | Audio Vivid 中取值为 3 |
| SoundSize | UB[1] | For Audio Vivid, Always 1 |
| SoundType | UB[1] | For Audio Vivid, Always 1 |
| SoundFormatEx | If SoundFormat=9UB[16] | 如果 SoundFormat=9, 增加 SoundFormatEx 字段。17 = Audio Vivid其余为保留值 |
| AudioPacketType | IF SoundFormat==9 且 SoundFormatEx==17UI8 | The following values are defined(SoundFormat==9 且 SoundFormatEx==17):0: Audio Vivid sequence header information1: Audio Vivid Frame Data |
11.3 AudioTagBody 定义
AudioTagBody 的 定 义 见 表 12,如 果 AudioTagHeader 中 SoundFormat 为 9 且 SoundFormatEx 为17, AudioTagBody 包含 AVS3AUDIODATA。
| AudioTagBody | ||
| 域 | 类型 | 内容 |
| SoundData | IF SoundFormat==9且SoundFormatEx==17AVS3AUDIODATA | 新增AVS3AUDIODATA数据结构0:Audio Vivid sequence header information1:Audio Vivid Frame Data |
11.4 AVS3AUDIODATA 定义
AVS3AUDIODATA 的定义见表 13。
| AVS3AUDIODATA | ||
| 域 | 类型 | 内容 |
| Data | IF AudioPacketType==0CA3SpecificBox()IF AudioPacketType==1aatf_frame() | CA3SpecificBox()结构应符合本文件5.3中CA3SpecificBox()的定义aatf_frame()结构应符合GB/T 46271—2025中附录A的规定 |
12 HLS 传输
12.1 通则
Audio Vivid 编码码流在 HLS 协议中的扩展应符合 IETF RFC 8216,对切片文件格式以及 HLS M3U8 做扩展。
12.2 切片文件格式
Audio Vivid 编码码流的切片格式使用两种格式:
a) MPEG TS:用于封装 Audio Vivid 数据的 TS 切片格式应符合第 8 章的规定;
b) fMP4:用于封装 Audio Vivid 数据的 MP4 切片格式应符合第 5 章的规定。
12.3 HLS M3U8 扩展
12.3.1 通则
HLS M3U8 扩展规范应符合 IETF RFC 8216 所定义的扩展部分属性。
12.3.2 CODECS
Audio Vivid 编码码流的 CODECS 参数应符合 10.4.3 的规定。
示例:#EXT⁃X⁃STREAM⁃INF:BANDWIDTH=3464568,CODECS=“avc1.640028, av3a.02”
example.m3u8
表示带有 audio_codec_id 为 2 的 Audio Vivid 的 HLS 流。
12.3.3 CHANNELS
Audio Vivid 编码码流的 CHANNELS 参数见 7.4.4 AudioChannelConfiguration 描述符。

评论