技术专栏
rv1126 GB28181开源服务端播放问题分析及解决
1.问题分析
由于LiveGBS和EasyGBS的试用都到期了,而且为了测试设备端的兼容性和稳定性,找了一个开源的流媒体服务器框架和sip信令服务器框架:ZLM+Wvp-GB28181,但是搭建起来之后,发现rv1126上的应用推流,服务端web前端显示没有成功播放出来,但是用ipc以及用gb28181的拉流直接推流的测试程序,都可以正常播放出来,后来抓包对比发现是gb28181推流程序有个地方不规范导致的,分析过程如下。
1.可以正常播放出来的抓包截图如下:
2.不能正常播放的抓包截图如下:
对比就很容易看出一个差别,就是Seq值,不能正常播放的抓包可以看出,每一帧开始的时候,Seq重置了,Mark标识每帧的最后一个包,而开源服务器刚好会根据rtp包的Seq值进行查重处理,开源流媒体框架的wiki如下:
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等格式,以便转换成其他协议或容器。
2.解决方法
查设备端处理,发现rtp的seq值每一帧都会重置,将seq值由局部变量改为全局即可,如下修改:
//组包rtp
int rtp_packet_count = ((index - 1) / single_packet_max_length) + 1;
for (int i = 0; i < rtp_packet_count; i++)
{
gb28181_make_rtp_header(rtp_header, ctr->rtp_seq, ctr->pts, atoi(ctr->ssrc.c_str()), i == (rtp_packet_count - 1));
int writed_count = single_packet_max_length;
if ((i + 1) * single_packet_max_length > index)
{
writed_count = index - (i * single_packet_max_length);
}
将rtp_seq改成全局,并且每一路不同记录控制即可解决问题。
另外注意:seq每帧都重置的程序,在livegbs和easygbs上都可以正常使用,在一个外网测试服务器上(免费试用),也可以正常使用,暂时不清楚他们的处理,为了规范统一修改了,seq值每包累加。
声明:本文内容由易百纳平台入驻作者撰写,文章观点仅代表作者本人,不代表易百纳立场。如有内容侵权或者其他问题,请联系本站进行删除。
红包
点赞
收藏
评论
打赏
- 分享
- 举报
评论
0个
手气红包
暂无数据相关专栏
-
浏览量:2321次2024-10-18 13:07:07
-
浏览量:2803次2024-09-29 19:03:11
-
浏览量:709次2026-06-25 23:58:44
-
浏览量:1932次2024-10-18 13:05:10
-
浏览量:2039次2024-10-18 13:03:27
-
2020-09-28 11:34:56
-
浏览量:3348次2023-11-13 17:48:03
-
浏览量:7732次2020-08-19 14:55:13
-
浏览量:8157次2020-09-07 14:18:26
-
浏览量:19215次2020-09-28 11:08:13
-
浏览量:4504次2020-07-29 10:00:03
-
浏览量:8608次2020-09-21 16:29:50
-
浏览量:5398次2023-11-24 19:08:58
-
浏览量:1582次2023-12-13 18:50:38
-
浏览量:4485次2023-04-14 09:29:35
-
浏览量:4525次2023-12-25 14:19:43
-
浏览量:4208次2024-05-24 17:53:56
-
浏览量:4054次2024-05-24 18:51:13
-
浏览量:2768次2023-03-20 17:36:05
置顶时间设置
结束时间
删除原因
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
打赏作者
林
您的支持将鼓励我继续创作!
打赏金额:
¥1
¥5
¥10
¥50
¥100
支付方式:
微信支付
举报反馈
举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明
审核成功
发布时间设置
发布时间:
请选择发布时间设置
是否关联周任务-专栏模块
审核失败
失败原因
请选择失败原因
备注
请输入备注

微信扫码分享
QQ好友