前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >EasyGBS中基于 RTP 的音视频数据 PS 封装

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

原创
作者头像
TSINGSEE青犀视频
修改2021-10-14 14:19:09
6450
修改2021-10-14 14:19:09
举报
文章被收录于专栏:TSINGSEE青犀视频TSINGSEE青犀视频

在国标GB28181协议中,视频传输基本都由两个模块构成,EasyGBS包含两个模块:信令服务和流媒体服务。本节主要为大家解释下流媒体服务中关于音视频数据的PS封装。

PS封装介绍:

PS是Program Stream(程序流或节目流)的简称。程序流将一个或多个分组但有共同时间基准的基本数据流(PES)合并成一个整体流。它是为可靠稳定的储存媒介如光盘而设计的。一般来说,采用MPEG2-HD格式的高清数码摄像机一般以"MPEG2-PS"来保存文件;而采用AVCHD格式的高清摄像机则通常以".M2TS"或".MTS"保存文件。

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

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

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

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

针对本文档规定的几种视音频格式,PSM 中流类型(stream_type) 的取值如下: a) MPEG-4 视频流::x10; b) H.264 视频流:0x1B; c) SVAC 视频流:0x80; d) G.711 音频流:0x90; e) G.722.1 音频流:0x92; f) G.723.1 音频流:0x93; g) G.729 音频流:0x99; h) SVAC 音频流:0x9B。

PS 包封装的其他具体技术规范详见 ISO/IEC13818-1:2000。 PS 包的 RTP 封装格式参照 IETF RFC2250,RTP 的主要参数设置如下: a) 负载类型(payloadtype) :96; b) 编码名称(encoding name) :PS; c) 时钟频率(clockrate) :90 kHz; d) SDP 描述中“m”字段的“media”项:video。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档