Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[技术咨询] 咨询描述(必填) 国标28181语音对讲在win10上编译的最新版本ZL可以对讲,在linux系统上遇到两款设备不兼容,startsendRTPforPassive这个接口win10和linux上底层网络库有什么区别吗 #3366

Closed
MengFanLu1 opened this issue Mar 12, 2024 · 6 comments

Comments

@MengFanLu1
Copy link

咨询的功能模块

  • startsendRTPforPassive这个接口win10和linux上底层网络库有什么区别吗

咨询的具体内容和问题

  • 国标28181语音对讲在win10上编译的最新版本ZL可以对讲,在linux系统上遇到两款设备不兼容,startsendRTPforPassive这个接口win10和linux上底层网络库有什么区别吗

注意事项

  • 技术咨询前请先认真阅读readme, wiki,如有必要,您也可以同时搜索已经答复的issue,如果没找到答案才在此提issue

  • 技术咨询不属于bug缺陷,要求用户先star(收藏)本项目,否则会直接关闭issue

@xiongguangjie
Copy link
Member

这个没区别,

@xia-chu
Copy link
Member

xia-chu commented Mar 18, 2024

是不是对方无法处理粘包问题啊?你去掉了头2个字节的rtp长度字段?

@MengFanLu1
Copy link
Author

是不是对方无法处理粘包问题啊?你去掉了头2个字节的rtp长度字段?

是的

@xia-chu
Copy link
Member

xia-chu commented Mar 18, 2024

这个不是zlm问题 这个本来就是对方用错误的设计干错误的事
TCP是流协议 本身就可能随机粘包或分包 只有小白工程师才会设计不带分隔符或者无长度字段的tcp协议。
这是海康的耻辱 竟然犯这种错误。

@xia-chu
Copy link
Member

xia-chu commented Mar 18, 2024

不过海康也干过tcp发送缓冲区溢出覆盖的bug 海康搞国标的这群人 应该跟rtsp的不是同一批人 真的很多低级错误

@xia-chu
Copy link
Member

xia-chu commented Mar 22, 2024

打上这个补丁可以:

Index: src/Rtp/RtpSender.cpp
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
diff --git a/src/Rtp/RtpSender.cpp b/src/Rtp/RtpSender.cpp
--- a/src/Rtp/RtpSender.cpp	(revision 5a137f8b8ed3aafce7f05dd0b0291554738a14ae)
+++ b/src/Rtp/RtpSender.cpp	(date 1711080268683)
@@ -203,7 +203,7 @@
 void RtpSender::onConnect(){
     _is_connect = true;
     //加大发送缓存,防止udp丢包之类的问题
-    SockUtil::setSendBuf(_socket_rtp->rawFD(), 4 * 1024 * 1024);
+    SockUtil::setSendBuf(_socket_rtp->rawFD(), 1500);
     if (!_args.is_udp) {
         //关闭tcp no_delay并开启MSG_MORE, 提高发送性能
         SockUtil::setNoDelay(_socket_rtp->rawFD(), false);

@xia-chu xia-chu closed this as completed Mar 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants