当前位置: 首页 > news >正文

音视频学习(三十五):aud

概念

AUD(Access Unit Delimiter)访问单元分隔符
AUD 是在视频编码(特别是 H.264/AVC)中定义的一种 NALU(网络抽象层单元) 类型,用于指示视频流中一帧(访问单元)的边界。

它是一个特殊的 NAL 单元,其作用是:

  • 明确表示一帧视频数据的开始。
  • 提供解析边界,方便解码器正确解码每一帧。

技术细节

  • NAL unit type: 9

  • 通常是可选的(对某些流媒体协议或容器格式来说)

  • 内容示例(十六进制): 00 00 00 01 09 F0

应用场景

场景作用
视频解码同步有助于解码器快速同步帧,尤其是在随机访问/关键帧跳转时
流媒体传输(如 RTP / RTMP)提供帧边界提示,有助于流中帧对齐
广播或低延迟直播有时要求明确帧结构,以防解码器出错
调试或封装分析工具(如 ffmpeg, VLC)通过 AUD 检测视频流中帧的划分情况
封装为 Annex-B 格式的裸流增强流的可移植性和通用解码兼容性

AUD 和 WebRTC 的关系

  1. WebRTC 默认不需要 AUD
    • WebRTC 主要使用 RTP + SRTP + SDP 来封装和传输媒体,帧边界依靠 RTP Header 和 payload 处理,而不是依赖像 AUD 这样的显式帧分隔。
    • WebRTC 解码器通常内建解析能力,不依赖 AUD
  2. 但是某些编码器在输出 H.264 流时会包含 AUD
    • 比如使用 FFmpeg + x264 时,如果设置了 -bsf h264_mp4toannexb,就会插入 AUD。
    • WebRTC 某些实现(比如使用硬件解码器的移动端)在处理含 AUD 的 NALU 时可能会出现兼容性问题。
  3. SRS、FFmpeg 转码时 AUD 是否保留可能影响 WebRTC 播放
    • 所以在实际部署时,通常会在转码环节判断是否剔除 AUD。

是否需要 AUD?

应用推荐是否使用 AUD
本地解码 / 播放(MP4/MKV)通常不需要
Annex-B 裸流推送推荐使用
RTP 推流(WebRTC/SIP)通常不需要
流媒体转码系统(如 FFmpeg + SRS)视兼容性决定,部分设备可能需要剔除

Annex-B 格式

Annex-B 是 H.264 裸流的标准封装形式,特点:

  • 每个 NALU 以起始码 0x00000001(或 0x000001)开头
  • 所有 NALU 都是裸的,包括:
    • SPS(NAL type 7)
    • PPS(NAL type 8)
    • IDR/I/P/B 帧(NAL types 5/1/2)
    • AUD(NAL type 9)
00 00 00 01 09 F0       <- AUD
00 00 00 01 67 ...      <- SPS
00 00 00 01 68 ...      <- PPS
00 00 00 01 65 ...      <- IDR

总结

AUD 是 H.264 视频中的一个帧分隔符,用于辅助解码器识别帧起点,但在 WebRTC 等现代实时通信协议中通常不需要,甚至应剔除。

相关文章:

  • DeepSeek 大模型 + LlamaIndex + MySQL 数据库 + 知识文档 实现简单 RAG 系统
  • from tensorflow.keras.models import Model中Model报红;以及动态链接库(DLL)初始化例程失败
  • TensorFlow和PyTorch学习原理解析
  • 创新项目实训开发日志3
  • 维度建模工具箱 提纲与总结
  • Spring如何通过XML注册Bean
  • Ldap高效数据同步- Delta-Syncrepl复制模式配置实战手册(上)
  • 第 4 篇:平稳性 - 时间序列分析的基石
  • Github 热点项目 Jumpserver开源堡垒机让服务器管理效率翻倍
  • 前端笔记-Axios
  • 云原生与AI的关系是怎么样的?
  • Unreal Engine中FRotator与FQuat在赛车游戏方向盘控制中的协同应用解析
  • Android Kotlin+Compose首个应用
  • SpringBoot整合JWT Token:构建安全无状态认证体系的最佳实践
  • 把dll模块注入到游戏进程的方法_远线程注入
  • 目标检测篇---R-CNN梳理
  • linux驱动框架——i2c驱动模块的probe过程
  • 重构便携钢琴专业边界丨特伦斯便携钢琴V30Pro定义新一代便携电钢琴
  • 120.在 Vue3 中使用 OpenLayers 实现清空删除所有图层功能
  • AI驱动下的企业学习:人力资源视角下的范式重构与价值觉醒
  • 视频·世界读书日|林乾:碎片化阅读或影视综艺≠知识
  • 最高法:抢票软件为用户提供不正当优势,构成不正当竞争
  • 外媒:罗马教皇方济各去世
  • 陈杨梅:为爸爸寻我19年没有放弃而感动,回家既紧张又期待
  • 95后男中音胡斯豪敲开芝加哥抒情歌剧院大门
  • 本周看啥|孤独的美食家,蛮好的人生