This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
介绍
ZLMediaKit支持GB28181的 ps-rtp推流,支持的编码格式分别为 h264/h265/aac/g711/opus。
在收到GB28181推流后,ZLMediaKit会依次做以下事情:
- rtp排序去重。
- rtp解析成ps或ts。
- ps或ts解析成
h264/h265/aac/g711/opus。 - 输入到复用器,生成rtsp/rtmp/ts/fmp4等格式,以便转换成其他协议或容器。
简单使用
ZLMediaKit默认开启10000端口用于接收UDP/TCP的GB28181推流,由于国标推流不好测试,ZLMediaKit同时也支持rtp_mpegts推流,代码会自适应判断是否为ps还是ts。 所以如果大家没有摄像头的情况下,可以用FFmpeg简单测试,基本上体验跟国标推流并无二致。
- ffmpeg推流命令:
ffmpeg -re -i www/record/robot.mp4 -vcodec h264 -acodec aac -f rtp_mpegts rtp://127.0.0.1:10000
上图中,这个推流的rtp ssrc为BFC2C622(16进制打印),这个流的app为rtp, stream_id为BFC2C622,您可以根据wiki来组合成url并播放这个流。
需要指出的是,国标推流的app固定为rtp,你只能通过代码来修改它,stream_id为rtp流的ssrc,这个是随机的,在FFmpeg中貌似没法控制。
另外,每次推流时,请更换ssrc,否则ZLMediaKit发现推流端ip和端口变化后,会直接丢弃rtp包(现象如此issue);这样做的目的是为了防止两个设备使用同一个ssrc推流时互相干扰。
高阶使用
在推流给10000端口时,您可能发现有个缺陷,就是stream_id是ssrc,比较抽象,可能还没法控制。
那么我们能否自定义stream_id? 答案是肯定的,ZLMediaKit通过restful api可以动态开启国标收流端口(同时支持udp/tcp模式)。
在使用openRtpServer接口动态开启国标收流端口后,这个端口只能产生一个流,也就是说,一个摄像头需要一个服务器端口用于接收国标推流。
- 以下是演示范例(postman工具调用openRtpServer接口创建随机端口):
- 然后启动FFmpeg推流
ffmpeg -re -i www/record/robot.mp4 -vcodec h264 -acodec aac -f rtp_mpegts rtp://127.0.0.1:50077
调试文件生成
如果你的MediaServer能收到国标推流,但是未出现媒体注册相关日志,那么有可能是流有些异常,你可以修改配置文件rtp_proxy.dumpDir指定调试文件导出目录,
这样ZLMediaKit会把国标流导出到该文件夹,就像这样:
你可以直接用ffplay播放mp2/video后缀的文件,rtp后缀的文件,你可以用测试工具test_rtp调试,或者你可以把它分享给其他人帮你分析原因。
让ZLMediaKit往其他国标服务器推流
你可以使用restful api让ZLMediaKit生成国标流并往其他服务器推送,支持其他任何已注册的流转国标流。
- postman调用startSendRtp接口推送国标流:
- 上图中是推送国标流给自己,当然你也可以推送给其他服务器,支持udp/tcp方式推流。
性能
GB28181的推流性能测试,请参考:#961
丢包问题调试
如果在测试GB28181 UDP推流时,频繁打印以下日志:
请查看此issue,特别提示,wifi情况下,由于无线网络干扰严重,丢包问题很可能确实是网络质量差导致的。
相关文章推荐阅读
WVP+ZLMediaKit+MediaServerUI实现摄像头GB28181推流播放录制
测试文档
使用教程
- 代码依赖与版权声明
- 快速开始
- vcpkg安装zlmediakit
- 服务器的启动与关闭
- GB28181教程
- 推流播放测试
- RESTful 接口
- RESTful 接口 postman自动生成
- Web Hook 接口
- 配置文件详解
- 播放URL规则
- 按需拉流
- 按需推流
- 播放鉴权
- 推流鉴权
- 怎样创建直播流
- webrtc编译与使用
- webrtc信令交互格式
- 怎么开启https相关功能
相关文档和资源
- zlmediakit独家特性
- zlmediakit的hls高性能之旅
- 高并发实现原理
- RTSP推流流程
- 流媒体相关技术介绍
- 直播延时的本质
- rtmp对H265/opus的支持
- ssl自签名证书测试
- 视频会议相关资源



