GB28181 PS打包纯音频
GB28181音视频这块基本都需要PS,PS的打包和解析非常重要,GB28181文档只给出了打包纯视频或音视频一起打包的的说明,没有给出单独打包纯音频的说明,在实际场景中,特别是语音广播,语音对讲, PS打包纯音频很常见. 有些pts的clock frequency 也不是90000,我遇到过8000的,1000的都有.
GB28181给出的PS打包方式如下:
包头 |
系统头 |
PSM |
PESV |
PESA |
但GB28181标准没给出纯音频的PS打包方式,由于没有说明,实现方式多种多样,下面给出一种比较容易解析的实现方式:
包头 |
系统头 |
PSM |
PESA |
包头(pack header),系统头( system header ), PSM, PES详细描述请参考ISO/IEC 13818-1 .
在PS流中,包头,系统头,PSM, PES包前三个字节都是0x00, 0x00, 0x01。pack header(包头)的start code是0x00, 0x00, 0x01, 0xBA; system header (系统头)的start code是0x00, 0x00, 0x01, 0xBA;PSM(Program Stream map )的start code是0x00, 0x00, 0x01, 0xBC; PES packet的start code是0x00, 0x00, 0x01, 八位的流ID(GB28181中规定视频的流ID是0xE0, 音频的流ID是0xC0)。
另外用PS打包纯音频,SDP描述中"m"字段的"media"项:audio.
rtp payload type 还是96.
rtp时钟频率标准是90hHz, 实际环境中也有其他值,比如1kHz.
下面是一个rtp over udp PS传输纯音频SDP例子:
v=0
s=Play
c=IN IP4 192.168.0.173
t=0 0
m=audio 27360 RTP/AVP 96
a=rtpmap:96 PS/90000
a=sendonly
我的代码对外提供的PS解析接口如下:
// Copyright (C) 1130758427@qq.com/***设置 RTP Receiver Payload 相关信息** @param rtp_receiver_handle, CreateRTPReceiver** @param payload_type, 请参考 RFC 3551** @param encoding_name, 编码名, 请参考 RFC 3551, 如果payload_type不是动态的, 传null就好** @param media_type, 媒体类型, 请参考 RFC 3551, 1 是视频, 2是音频** @param clock_rate, 请参考 RFC 3551** @return {0} if successful*/public native int SetRTPReceiverPayloadType(long rtp_receiver_handle, int payload_type, String encoding_name, int media_type, int clock_rate);/***设置RTP Receiver PS的pts和dts clock frequency** @param rtp_receiver_handle, CreateRTPReceiver** @param ps_clock_frequency, 默认是90000, 用于一些PS流不是用90000打包的时间戳** @return {0} if successful*/public native int SetRTPReceiverPSClockFrequency(long rtp_receiver_handle, int payload_type, int ps_clock_frequency);/***清除RTP Receiver PS解析器配置的PSM, PSM具体清参考PS协议** @param rtp_receiver_handle, CreateRTPReceiver** @return {0} if successful*/public native int ClearRTPReceiverPSMap(long rtp_receiver_handle, int payload_type);/***设置RTP Receiver PS解析器的PSM, 有些PS流解析时需要设置, PSM具体清参考PS协议** @param rtp_receiver_handle, CreateRTPReceiver** @param stream_type, 流类型** @param elementary_stream_id, 流id** @return {0} if successful*/public native int SetRTPReceiverPSMap(long rtp_receiver_handle, int payload_type, int stream_type, int elementary_stream_id);
实际中遇到PS打包纯音频,如果只是求打包成PS,不会太麻烦的按基本规则来就好,解析会比较麻烦了,各种形式都有,解析代码实现上成本高些。
GB28181 PS打包纯音频相关推荐
- GB28181 PS流传输格式详解
1.PS流传输格式预览 1.视频关键帧的封装 RTP + PS header + PS system header + PS system Map + PES header +h264 data 2. ...
- 视频流PS打包方式详解
视频流PS打包方式详解 文章目录 视频流PS打包方式详解 1 PS流概述 2 PS封装格式 2.1 PES格式详解 2.2 PS头封装格式 2.3 PS system header封装格式 2.4 P ...
- 2019年09月VOA慢速英语听力音频打包下载(音频+字幕+文本)
2019年VOA慢速英语听力打包下载 资源介绍 资源链接 资源介绍 Special English又叫"慢速英语",是VOA电台专为全世界非英语国家的初学英语的听众安排的一种简易. ...
- Flutter 学习之打包 - 纯Flutter项目生成Android包
###前言 前面介绍了Flutter中一些基本Widget的使用方法,下面我们来先下实战中是如何构建生成Android包的,本文我们主要介绍纯Flutter项目生成Android包的方法,以及遇到的问 ...
- RTP打包G711音频数据发送
前面博客讲过G711编码,有两种G711A/G711U,主要在安防中应用,是一帧波形编码的音频数据,只是将PCM压缩一半数据量.一般G711,采样率8000,通道数1.所以G711中1B就是一个样本数 ...
- gb28181 ps流文件解析
基础 假定是udp上接收包,端口 5060 ,如果是tcp是要加一些额外得代码, 可以使用jrtplib,或者自己写udpserver 放出udp socket 接收包,当然使用jrtplib等稍微简 ...
- GB28181协议--实时视音频点播(预览)
1.基本要求 根据<GB/T 28181 -2016>第9章关于实时视音频点播的描述,其内容如下: 实时视音频点播的SIP 消息应通过本域或其他域的SIP 服务器进行路由. 转发, 目标设 ...
- android studio打包纯H5项目(集成5+SDK)
下载地址 http://ask.dcloud.net.cn/docs/#//ask.dcloud.net.cn/article/103 我们下载5+SDK直接复制demo出来 可以自行修改名字,上面两 ...
- python 输出纯音频_Python如何录制系统音频(扬声器的输出)?
我从上周就开始找这个了.我也尝试过pyaudio,当我使用它的另一个fork时,系统音频和麦克风音频混合在一起.我找不到任何其他模块来解决这个问题,因此我最终提出了这个问题.在 编辑:import p ...
最新文章
- java正则表达式替换指定字符串_笔记_正则表达式替换字符串中特定范围内的字符。...
- Java 堆内存优化
- 【C++】vs无法更新DoDataExchange方法问题解决
- upload-labs_pass21_CTF逻辑老饶了
- .NET Core实战项目之CMS 第七章 设计篇-用户权限极简设计全过程
- java多线程编程_阿里P8熬到秃头肝出来的:Java多线程+并发编程核心笔记
- python_递归原理
- 【kafka】Consumer is not subscribed to any topics
- 华为手机如何调时间显示_华为手机不亮屏也能显示时间日期?10秒就能设置,原来这么简单...
- struct类型重定义 不同的基类型_C++学习大纲:联合类型
- hdu 5977 Garden of Eden(点分治+状压)
- 给blog 增加文件下载统计
- 公式字符串转换为公式或结果
- html5 切换语言,Vue项目中使用国际化, 并配置动态切换语言的方法
- react-native学习小结
- jspstudy oracle,SQL不走索引的几种常见情况
- API接口测试用例设计
- python 基础代谢率计算_Python入门案例(三):BMR(基础代谢率)计算器
- oracle迁移价格,oracle 迁移的一般方法
- 抖音搬运视频热门技巧 剪辑后会修改视频md5