Commit Graph

293 Commits

Author SHA1 Message Date
u7ko4
e3cad7f8fa
支持绑定到指定网卡 (#3760) 2024-08-01 11:03:26 +08:00
xia-chu
81aef25583 整理startSendRtp相关接口,新增支持udp被动模式
startSendPassive接口指定is_udp为1时则为开启udp被动模式, 被动模式下需要对方先发数据给zlmediakit,然后才能回复rtp数据;
同时在被动模式指定src_port时,不再等待对方连接成功后再返回(而是直接返回成功和端口号,失败通知请监听on_send_rtp_stopped hook)。
2024-07-28 23:37:13 +08:00
xia-chu
9463d1291d 修复编译警告 2024-07-21 19:47:36 +08:00
xia-chu
66065f5359 修复rtp推流协议为空的bug 2024-07-21 19:17:12 +08:00
张传峰
aad98be5ef
ehome协议推流花屏问题 (#3720)
https://github.com/ZLMediaKit/ZLMediaKit/issues/3710

当前修改方式 只检测一次  由于第一个数据是256字节需要检测两次 ;现在修改方式是检测3次, 如果失败就不是ehome。后续不需要检测
2024-07-17 11:40:10 +08:00
张传峰
0eb38635ce
国标推流一直打印 'Already existed a same track' (#3713)
https://github.com/ZLMediaKit/ZLMediaKit/pull/3689 
https://github.com/ZLMediaKit/ZLMediaKit/issues/3702#issuecomment-2222326053
2024-07-14 09:27:14 +08:00
waken
9727e03c2e
修复创建单端口udp_server自定义vhost、app为空问题 (#3714 #3702) 2024-07-14 09:26:29 +08:00
zhang2349
c72e576420
rtp server新增支持自定义vhost和app名称 (#3693)
代码来自https://github.com/ZLMediaKit/ZLMediaKit/pull/3446 , 增加了vhost
2024-07-09 10:42:10 +08:00
zhang2349
6c3d362b5a
修正finish是true但track不支持,没有执行addTrackCompleted的问题 (#3689)
加快track类型不支持时媒体的注册速度
2024-07-05 20:55:36 +08:00
xiongziliang
8390d72b78 优化on_publish hook响应太慢导致rtp推流无法秒开的问题
由限制缓存个数改成限制缓存时间长度(10秒)
2024-06-28 22:40:44 +08:00
xiongziliang
2bf16e63e1 保证rtp服务器tcp模式下线程安全 2024-06-22 13:04:06 +08:00
PioLing
d34da06766
bugfix: 修复rtp推流观看人数统计异常的问题 (#3620 #3615) 2024-06-13 11:41:22 +08:00
xia-chu
8159f4e085 bugfix: 修复rtp服务器单端口tcp模式下访问空指针崩溃的问题 2024-06-12 20:18:50 +08:00
xiongziliang
77d2df1695 移除RtpSelector相关逻辑,优化代码结构 2024-06-09 10:52:10 +08:00
waken
79b2aa6adc
openRtpServer接口增加单视频参数,加快单视频流注册速度 (#3342)
only_audio -> only_track
2024-03-05 17:06:31 +08:00
张传峰
ffdc13bfb9
RTP proxy通过UDP收流,调整udp recv socket buffer size成配置 (#3336)
国标推流有些情况需要UDP方式接收流,端口复用同一个UDP端口可能需要根据服务器性能
2024-03-05 10:42:22 +08:00
夏楚
24ad9c9b9e
Support mpegts rtp payload in startSendRtp (#3335) 2024-03-02 16:53:53 +08:00
xiongguangjie
06abbd0eb7
rtp send rtp g711 audio can config duration (#3325)
optimization for this
[issue](https://github.com/ZLMediaKit/ZLMediaKit/issues/3316)
2024-03-02 16:40:13 +08:00
chdahuzi
56bdb14baf
解决流名被替换后,getRtpInfo等接口无法使用新流名的问题 (#3265) 2024-01-27 20:55:57 +08:00
chdahuzi
8d951f06a0
修复rtp udp推流时,调用close_stream延时3秒才注销的bug (#3226) 2024-01-17 18:11:56 +08:00
648540858
a72d87cca7
BugFix: MediaSource unregister after 3 seconds after calling close_streams (#3132)
To avoid frequent creation and destruction of UdpSession,
RtpSession will be destructed 3 seconds after triggering onError.
2023-12-15 16:46:43 +08:00
xia-chu
c0bb7db476 BugFix: crash when FrameMerger::flush
In a lambda expression, temporary stack variables should not be captured; otherwise,
the variables may have become invalid when FrameMerger::flush is called.
2023-12-14 17:28:21 +08:00
waken
9933398614
修复一个关闭GB28181时引发的崩溃问题 (#3118)
fix #3116 #3115
2023-12-13 17:41:57 +08:00
xia-chu
25c99470ee feat: add support of codec plugin 2023-12-10 11:09:04 +08:00
夏楚
64f15202de
Support multi audio/video track 2023-12-09 22:34:22 +08:00
夏楚
bbe8f4a018
release 8.0 2023-12-09 16:23:51 +08:00
xiongziliang
c12a6f0aed 适配ZLToolKit 2023-12-02 19:49:28 +08:00
taotaobujue
7865f2c360
修复udp单端口模式下rtp鉴权失败后无法关闭流的问题(#2985)
如果rtp推流鉴权失败,在udp模式下延时断开连接,等待超时自动关闭,防止频繁创建销毁RtpSession对象,
tcp模式则立即断开链接。
2023-11-15 11:02:12 +08:00
xiongziliang
4ea7565344 修复startSendRtp接口开启rtcp时触发断言异常的bug
此问题由pr(#2924)引入
2023-11-12 19:55:18 +08:00
xbpeng121
884f1d760b
提高对不规范国标TCP推流的兼容性 (#2966)
问题: 建立tcp链接后,并不是从rtp包头开始发数据,所以无法解析出正确的包。
解决方案:在tcp数据报文中搜索0x000001bb(关键帧的system header),找到后偏移固定字节恢复rtp包头。
2023-11-10 21:53:43 +08:00
waken
6888f20d74
新增openRtpServerMultiplex接口,支持创建多路复用RTP服务器端口 (#2954)
#2953
2023-11-09 11:26:13 +08:00
xiongziliang
2628690673 国标udp多端口模式支持收到sr rtcp后回复rr rtcp
确保国标停止rtp推流后也可以仅靠rtcp保活
2023-11-05 13:26:42 +08:00
leibnewton
0a19627d86
修复startSendRtp成功后udp套接字被关闭的问题 (#2468 #2924)
对端端口未打开,udp得到connection refused的错误而关闭。
2023-10-25 15:14:08 +08:00
xia-chu
ebde21a314 修复openRtpServer开启tcp模式后打开端口失败的bug
两次监听同个tcp端口将导致打开tcp模式失败
2023-10-23 20:49:54 +08:00
ljx0305
7ee2d66eaa
统一代码命名风格 (#2910)
openRtpServer时,如果开启tcp模式,从tcp端口池获取
2023-10-19 17:55:30 +08:00
xia-chu
d286ac1d73 NoticeCenter支持安全类型转换,解决监听者参数类型不一致导致的bug 2023-09-02 11:22:28 +08:00
夏楚
00b3c5184a
修复RtpProcess析构中抛异常导致崩溃的问题 (#2714)
WarnP(this) 时会调用get_peer_ip()接口,此接口可能抛异常;
析构中抛异常可导致程序直接退出。
2023-07-29 13:24:07 +08:00
夏楚
5ca4ed53b2
防止析构函数抛异常导致崩溃问题 (#2546) 2023-06-11 22:07:15 +08:00
Johnny
0232caf068 add MediaTuple 2023-05-30 11:01:27 +08:00
dengjfzh
18dbbc8d19
降低TCP RTP 2字节头被误判为EHOME头的风险 (#2502)
当TCP RTP包大小为256字节时,可能触发RtpSplitter::onSearchPacketTail误判为EHOME格式。
这个修改一旦检测到数据不是EHOME格式,则后续不再进行尝试,以减小误判的风险。
2023-05-27 22:27:10 +08:00
dengjfzh
032a2ac91d
修复TCP RTP 2字节头被误判为4字节头的问题 (#2499)
当RFC4571封装的RTP包大小在0x2400到0x24ff之间时,会被误认为是RTSP Interleaved
封装的数据。因为0x24正好是'$'的ASCII码,而RtpSplitter::onSearchPacketTail通过'$'来识别RTSP
Interleaved数据。暂时没有想到什么好的办法能够百分之百的正确区分RFC4571数据和RTSP
Interleaved数据。增加一个状态变量记录之前的状态,一旦检测到数据不是RTSP
Interleaved格式,则后续不再进行尝试,以减小误判的可能性。
2023-05-26 17:34:47 +08:00
Johnny
bfec1b1e0e fix typo 2023-05-02 20:41:13 +08:00
xia-chu
d2349f01bd 使用static_pointer_cast优化性能 2023-04-28 22:04:38 +08:00
xiongziliang
c8a20f85f6 直接打印SockException类 2023-04-23 00:10:18 +08:00
xiongziliang
de8249592e Session类构造析构跟踪日志统一在底层网络框架打印 2023-04-22 23:58:17 +08:00
xiongziliang
7a95c87a29 优化代码
空构造和析构函数替换为缺省
去除多余分号
2023-04-22 21:59:26 +08:00
xiongziliang
b5a0a2e858 新增动态更新rtp server过滤ssrc接口updateRtpServerSSRC(#2390) 2023-04-21 23:08:48 +08:00
Dw9
978143c86d
rtp级联(ps/ts/es)新增支持gop缓存功能 (#2395)
该修改主要解决rtp级联(调用startSendRtp接口)未做gop缓存导致上级无法秒开的问题。
同时通过RingBuffer对象线程隔离的特性,实现了在断连续推场景下归属线程切换导致的线程安全问题。
用户如未使用rtp级联功能,请修改配置文件关闭GOP缓存(rtp_proxy.gop_cache=0)以便节省内存。

---------

Co-authored-by: 夏楚 <771730766@qq.com>
2023-04-17 12:19:24 +08:00
王成
3a6f660619
新增Assert异常类型,解决国标重复推流不注销问题 (#2393)
Co-authored-by: wangcheng <wangcheng@xwmail.com>
Co-authored-by: xia-chu <771730766@qq.com>
2023-04-14 15:10:48 +08:00
xiongziliang
384c8677ea startSendRtp接口在发送ps时支持只发送音频: #2217 2023-04-01 23:48:57 +08:00