GB28181-基于RTP的视音频数据封装

简介: GB28181文档摘抄

基于RTP的视音频数据PS封装

基于RTP的PS封装首先按照ISO/IEC 13818-1:2000 将视音频流封装成PS包,再将PS包以负载的方式封装成RTP包

进行PS封装时,应将每个视频帧封装为一个PS包,且每个关键帧的PS包中应包含系统头(System Header)和PSM(Program Stream Map),系统头和PSM放置于PS包头之后、第一个PES包之前。

典型的视频关键帧PS包结构如图C.1所示,其中PESV为视频PES包,PESA为音频PES包,视频非关键帧的PS包结构中一般不包含系统头和PSM。PS包中各部分的具体数据结构参见ISO/IEC13818-1:2000 中的相关描述。

    --------------------------------------------------------------
    |  PS包头   |  System Header |   PSM   |   PESV   |   PESA   |
    --------------------------------------------------------------
    图C.1 典型的视频关键帧PS包结构

系统头应包含对PS包中码流种类的描述,其中视频和音频的流ID(stream_id)取值如下:

  • 视频流ID: 0xE0
  • 音频流ID: 0xC0

针对本文档规定的几种音频格式,PSM中流类型(stream_type)的取值如下:

  • MPEG-4 视频流:0x10
  • H.264 视频流:0x1B
  • SVAC 视频流:0x80
  • G.711 音频流:0x90
  • G.722.1 音频流:0x92
  • G.723.1 音频流:0x93
  • G.729 音频流:0x99
  • SVAC 音频流:0x9B

PS包封装的其他具体技术规范详见ISO/IEC 13818-1:2000

PS包的RTP封装格式参照IETF RFC2250,RTP的主要参数设置如下:

  • 负载类型(payload type):96
  • 编码名称(encoding name):PS
  • 时钟频率(clock rate): 90 kHz
  • SDP描述中“m”字段的 “media”项:video

基于RTP的视音频基本流封装

该方式直接将视音频数据以负载的方式封装成RTP包

MPEG-4 视频流的RTP封装

MPEG-4视频流的RTP封装格式应符合IETF RFC 3016协议中相关规定
MEPG-4视频流RTP包的负载类型(Payload Type)标识号选定:从IETF RFC 3551-2003表5中的动态范围(96~127)中选择,建议定为97

H.264视频流的RTP封装

H.264的RTP载荷格式应符合IETF RFC 3984中的相关规定
H.264视频流RTP包的负载类型(Payload Type)标识号选定:从IETF RFC 3551-2003表5中的动态范围(96~127)中选择,建议定为98

SVAC视频流的RTP封装

SVAC的RTP载荷格式应符合IETF RFC 3984中的相关规定
SVAC视频流RTP包的负载类型(Payload Type)标识号选定:从IETF RFC 3551-2003表5中的动态范围(96~127)中选择,建议定为99

音频流的RTP封装

语音比特流宜采用标准的RTP协议进行打包

在一个RTP包中,音频载荷数据应为整数个音频编码帧,且时间长度在20ms~180ms之间。音频载荷数据的RTP封装参数如下:

  1. G.711的主要参数
    G.711 A律语音编码RTP包的负载类型(Payload Type)的参数规定如下(见IETF RFC 3551-2003中的表4):

    • 负载类型(PT):8
    • 编码名称(encoding name): PCMA
    • 时钟频率(clock rate):8kHz
    • 通道数: 1
    • SDP描述中“m"字段的"media"项:audio
  2. SVAC音频的主要参数
    SVAC语音编码RTP包的负载类型(Payload Type)的参数规定如下:

    • 负载类型(PT):20
    • 编码名称(encoding name):SVACA
    • 时钟频率(clock rate):8kHz
    • 通道数: 1
    • SDP描述中"m"字段的"media"项:audio
  3. G.723.1的主要参数
    G.723.1语音编码RTP包的负载类型(Payload Type)的参数规定参照IETF RFC 3551-2003表4中的G.723,具体如下:

    • 负载类型(PT):4
    • 编码名称(encoding name): G723
    • 时钟频率(clock rate):8kHz
    • 通道数: 1
    • SDP描述中“m"字段的"media"项:audio
  4. G.729的主要参数
    G.729语音编码RTP包的负载类型(Payload Type)的参数规定如下(见IETF RFC 3551-2003中的表4):

    • 负载类型(PT):18
    • 编码名称(encoding name): G729
    • 时钟频率(clock rate):8kHz
    • 通道数: 1
    • SDP描述中“m"字段的"media"项:audio
  5. G.722.1的主要参数
    G.722.1语音编码RTP包的负载类型(Payload Type)的参数规定参照IETF RFC 3551-2003表4中的G.722,具体如下:

    • 负载类型(PT):9
    • 编码名称(encoding name): G722
    • 时钟频率(clock rate):8kHz
    • 通道数: 1
    • SDP描述中“m"字段的"media"项:audio
相关文章
|
编解码 监控 数据格式
【开源视频联动物联网平台】GB/T28181和SIP的区别
【开源视频联动物联网平台】GB/T28181和SIP的区别
881 1
|
存储 开发者
国标GB28181协议客户端开发(二)程序架构和注册
国标GB28181协议客户端开发(二)程序架构和注册
1561 0
|
存储 算法 C++
深入理解ffmpeg视频播放以及音视频同步:时间基与样本处理
深入理解ffmpeg视频播放以及音视频同步:时间基与样本处理
1573 1
|
网络协议 Java Linux
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
本文介绍了PyAV库,它是FFmpeg的Python绑定,提供了底层库的全部功能和控制。文章详细讲解了PyAV的安装过程,包括在Windows、Linux和ARM平台上的安装步骤,以及安装中可能遇到的错误和解决方法。此外,还解释了时间戳的概念,包括RTP、NTP、PTS和DTS,并提供了Python代码示例,展示如何获取RTSP流中的各种时间戳。最后,文章还提供了一些附录,包括Python通过NTP同步获取时间的方法和使用PyAV访问网络视频流的技巧。
4721 4
PyAV学习笔记(一):PyAV简介、安装、基础操作、python获取RTSP(海康)的各种时间戳(rtp、dts、pts)
mpeg-ps GB28181 ps封装
mpeg-ps GB28181 ps封装
556 0
|
关系型数据库 分布式数据库 数据库
基于PolarDB Ganos的实时时空计算:电子围栏篇
文章着重介绍了PolarDB Ganos如何应用于实现实时电子围栏计算。这是一种依赖于位置技术来创建虚拟地理边界的解决方案,广泛应用于交通安全、应急管理、营销推广等多个领域。通过与阿里云实时计算Flink版产品的集成,PolarDB Ganos能够高效地进行空间计算和数据分析,显著提高了地理围栏应用的实时性和准确性。文章还提供了使用Ganos进行电子围栏计算的实际步骤、性能测试及优化建议,并强调了PolarDB Ganos在提高数据处理效率和降低成本方面的优势。
|
网络协议 测试技术 网络性能优化
Android系统 以太网吞吐量和丢包测试
Android系统 以太网吞吐量和丢包测试
1553 1
|
编解码 UED
音视频同步的方法:深入探索基于FFmpeg的音视频同步策略(一)
音视频同步的方法:深入探索基于FFmpeg的音视频同步策略
2582 1
|
编解码
RTP传输AAC
RTP传输AAC
626 1