AVDTP(Audio/Video Distribution Transport Protocol,音视频分发传输协议)

  1. 是 A2DP(高级音频分发协议)的底层承载协议;

  2. 底层依赖 面向连接的 L2CAP 信道;

  3. 作用:承载立体声音乐媒体数据流 + 音频链路控制信令;

  4. 区分对照:

    AVDTP:传输音频媒体数据包(音乐声音)

    AVCTP:承载 AVRCP 播放控制指令(播放 / 暂停 / 切歌 / 音量)

    两条协议相互独立,使用两条不同 L2CAP 信道,可以同时工作。

AVDTP( A/V Distribution Transport Protocol)就是音视频分布传输协议,主要用于传输音频/视频数据。在整个协议栈的架构 图如下:

img

AVDTP的底层是L2CAP层

AVDTP一共有以下几个组件:

img

1.Signalling(信令模块)

负责所有 AVDTP 控制命令、响应的交互,也就是表格中所有AVDTP_XXX指令收发,用于音频会话的建立、配置、启停、销毁。

2.Stream Manager(媒体流管理)【核心】

  • 媒体包封装、时间戳、序列号维护;

  • 抖动缓冲管理;

  • 丢包统计,并向上层 A2DP 反馈网络质量;

  • 媒体数据流调度。

3.Recovery(重传恢复组件)

可选功能,提供媒体数据包重传机制,改善无线丢包带来的爆音、卡顿。

4.Adaptation Layer(适配层)

  • 支持多路复用:一条 L2CAP 传输通道 (TCID) 承载多条独立音频会话 (TSID);

  • 头部压缩,降低空中包负载开销,节省带宽

    Signal 信令指令分类

    能力发现与配置阶段(会话建立前置)

指令名编码核心作用
AVDTP_DISCOVER (0x01)0x01音源 (Sink) 查询耳机 / 音箱 (Source) 支持的音频流端点 (SEP) 数量与标识,是 A2DP 连接第一步
AVDTP_GET_CAPABILITIES (0x02)0x02查询单个 SEP 的基础音频能力:支持的编码 (SBC/AAC/aptX)、采样率、声道、码率
AVDTP_GET_ALL_CAPABILITIES (0x0C)0x0C获取完整扩展能力,包含高级编码参数、保护机制、延迟配置
AVDTP_SET_CONFIGURATION (0x03)0x03下发协商好的音频配置(编码、采样率),绑定本地 SEP 与远端 SEP,建立逻辑音频流
AVDTP_GET_CONFIGURATION (0x04)0x04读取当前已生效的音频流配置参数
AVDTP_RECONFIGURE (0x05)0x05播放中途动态修改音频参数(切换采样率、编码格式)

音频流启停控制阶段

指令名编码核心作用
AVDTP_OPEN (0x06)0x06打开音频传输通道,准备发送音频数据包,链路进入就绪状态
AVDTP_START (0x07)0x07正式开始传输音频媒体数据包,耳机开始出声(对应手机点击播放)
AVDTP_SUSPEND (0x09)0x09暂停音频传输,通道保留(对应手机暂停,可快速恢复播放)
AVDTP_CLOSE (0x08)0x08关闭音频传输通道,释放媒体流资源(切歌、退出音乐 APP 触发)

异常与辅助控制

指令名编码核心作用
AVDTP_ABORT (0x0A)0x0A强制中断当前音频链路,用于链路异常、严重丢包时快速重置会话
AVDTP_SECURITY_CONTROL (0x0B)0x0B音频流加密 / 安全参数交互,安全连接场景使用
AVDTP_DELAYREPORT (0x0D)0x0D延迟上报:耳机上报音频缓冲延迟,手机动态调整音画同步偏移(影音场景防口型不同步)
Reserved (0x00)0x00保留值,无业务定义,禁止使用

完整 A2DP 标准交互时序

  1. 两台设备建立 BR/EDR ACL 物理连接;

  2. 通过 SDP 服务发现 查询 A2DP 服务,获取 AVDTP 对应的 L2CAP PSM,创建 AVDTP 专用 L2CAP 信道;

  3. AVDTP_DISCOVER:查询对端 SEP 音频端点;

  4. AVDTP_GET_ALL_CAPABILITIES:互相查询支持的编码格式(SBC/AAC/aptX/LDAC 等);

  5. AVDTP_SET_CONFIGURATION:协商统一音频参数,创建逻辑音频流;

  6. AVDTP_OPEN:开启音频通道;

  7. AVDTP_START:开始持续发送压缩音频媒体包,音乐播放;

  8. 操作分支:

    • 暂停音乐:AVDTP_SUSPEND(通道保留,可快速恢复)

    • 切歌 / 停止播放:AVDTP_CLOSE

    • 链路严重异常:AVDTP_ABORT强制销毁会话

9.影音同步场景:耳机周期性发送 AVDTP_DELAYREPORT 上报缓冲延迟。

img

 

延迟原因分析

img

img

音频延迟产生来源

整套蓝牙音频总延迟由多个环节叠加构成:

  1. Source 端(手机)延迟

    PCM 音频采集 → 音频编码 (SBC/AAC) → AVDTP 封装排队缓冲;

  2. 空中传输延迟

    蓝牙基带调度、重传纠错、2.4G 射频干扰丢包;

  3. Sink 端(耳机)延迟【占比最高】

    射频接收 → L2CAP 重组 → AVDTP 抖动缓冲 (jitter buffer) → 音频解码 → DAC 数模转换;

抖动缓冲是最关键可调参数:缓冲开大抗卡顿、延迟升高;缓冲缩小降低延迟,但容易出现丢包爆音。

易混淆协议区分

  1. AVDTP + A2DP

    A2DP 是上层 Profile 规范;AVDTP 是底层传输协议,负责

    音频媒体数据流(音乐声音)。

  2. AVCTP + AVRCP

    AVRCP 是音视频遥控 Profile;AVCTP 为底层传输协议,负责

    控制指令(播放 / 暂停 / 切歌 / 音量)。

  3. 通信特点:

    • 音频数据流(AVDTP 媒体包):单向传输 Source → Sink;

    • AVDTP 信令、AVRCP 控制指令:双向请求 - 应答交互。

抓包调试快速定位经验

  1. 抓包看到 AVDTP_START 之后,才会出现大量媒体音频数据包;

  2. 播放无声:优先检查 SET_CONFIGURATION 是否协商成功、编码格式两端是否匹配、是否发送OPEN + START;

  3. 视频影音不同步:核查耳机是否周期性上报 DELAYREPORT;

  4. 音乐频繁卡顿爆音:查看是否大量出现重传、或者频繁收到AVDTP_ABORT链路重置指令。

 

 

 

Logo

社区规范:仅讨论OpenHarmony相关问题。

更多推荐