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
相关文章
|
3月前
|
编解码
RTP传输AAC
RTP传输AAC
36 1
|
3月前
|
编解码 Linux C语言
实现一个传输h.264的rtsp服务器
实现一个传输h.264的rtsp服务器
51 0
|
3月前
|
编解码 Linux C语言
实现一个传输aac音频的rtsp服务器
实现一个传输aac音频的rtsp服务器
37 0
|
7月前
|
编解码 监控 网络协议
GB/T28181-2016基于RTP的视音频数据封装和技术实现
首先我们先回顾下相关技术规范,看看基于RTP的音视频数据PS封装。
GB/T28181-2016基于RTP的视音频数据封装和技术实现
|
7月前
|
网络协议 前端开发 开发工具
GB28181基于TCP协议的视音频媒体传输探究及实现
我们先看看官方规范针对TCP协议的视音频传输描述: 实时视频点播、历史视频回放与下载的 TCP媒体传输应支持基于RTP封装的视音频PS流,封装格式参照IETFRFC4571。
|
7月前
|
网络协议 前端开发 开发工具
GB28181-2022相对2016版“基于TCP协议的视音频媒体传输要求“调整
GB28181-2022针对“基于TCP协议的视音频媒体传输”实时点播、历史视频回放与下载中,TCP媒体传输重连机制,做了说明。
|
7月前
|
网络协议 前端开发 开发工具
GB/T28181-2022相对2016版“基于TCP协议的视音频媒体传输要求“规范解读和技术实现
GB/T28181-2022和GB/T28181-2016规范,有这么一条“更改了附录 D 基于 TCP 协议的视音频媒体传输要求(见附录 D,2016 年版的附录 L)。”。
196 0
|
存储 编解码 网络协议
音视频基础(网络传输): RTMP封包
RTMP 概念 与 HTTP(超文本传输协议)同样是一个基于 TCP 的 Real Time Messaging Protocol(实时消息传输协议)。由 Adobe Systems 公司为 Flash 播放器和服务器之间音频、视频和数据传输开发的一种开放协议 。在国内被广泛的应用于直播 领域。HTTP 默认端口为 80,RTMP 则为 1935。
196 0
音视频基础(网络传输): RTMP封包
|
编解码 网络性能优化 网络协议
|
数据采集 传感器 编解码
【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )
【Android RTMP】RTMPDump 封装 RTMPPacket 数据包 ( 关键帧数据格式 | 非关键帧数据格式 | x264 编码后的数据处理 | 封装 H.264 视频数据帧 )
219 0