# psmux-gb28181 **Repository Path**: coder_lw/psmux-gb28181 ## Basic Information - **Project Name**: psmux-gb28181 - **Description**: GitHub 上找的国标封装库程序 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 5 - **Created**: 2022-09-01 - **Last Updated**: 2022-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 1 项目概述 --- PS打包在实际项目中很难直接调试,而SIP很容易抓包调试,实际中经常有人问PS如何打包,而各自的实现也不尽相同,在对接时经常会遇到困扰,我们将PS打包部分独立出来以求更多的人完善。 例子中有VLC播放的SDP。打开本机的7000端口, 播放RTP payload 96的PS流。 海康,大华,东方网力等大部分平台都测试过。 2 示例代码:
--- Gb28181PsMux PsMuxer;
添加两个流
StreamIdx h264Idx = PsMuxer.AddStream(PSMUX_ST_VIDEO_H264);
StreamIdx g711Idx = PsMuxer.AddStream(PSMUX_ST_PS_AUDIO_G711A);
const int psFrameMax = 1024\*1024;
char* psFrameOutBuf = new char[psFrameMax];
int psFrameSize = 0;
封装音频,psFrameSize为实际ps包的大小
int r = PsMuxer.MuxAudioFrame(g711buf, g711len, pts, dts, g711Idx, psFrameOutBuf, &psFrameSize, psFrameMax);
if(r == MUX_OK && psFrameSize > 0){
...
}

PsMuxer.MuxH264SingleFrame(h263buf, h264len, pts, dts, g711Idx, psFrameOutBuf, &psFrameSize, psFrameMax);
if(r == MUX_OK && psFrameSize > 0){
...
}