Commit Graph

279 Commits

Author SHA1 Message Date
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
ljx0305
1dec350dcd
修正on_rtp_server_timeout hook时获取的端口非真实端口 (#2297)
在调用openRtpServer接口时,如果传入的端口为0(随机端口), 那么在触发on_rtp_server_timeout hook时的端口为0
2023-03-15 14:54:18 +08:00
xiongziliang
539d6299f0 rtp服务器单端口模式收到相同ssrc推流时延时关闭RtpSession对象(防止频繁创建销毁对象) 2023-02-28 22:56:29 +08:00
xiongziliang
c2e1083493 复用rtp/rtcp判断逻辑过滤非rtp包: #2247 2023-02-28 22:23:30 +08:00
xiongziliang
8f108395a5 rtp服务器过滤非rtp包: #2247
防止非法数据干扰后续处理逻辑对rtp ssrc/pt等的绑定
2023-02-26 21:13:49 +08:00
xiongziliang
5bcfba1da4 startSendRtpPassive接口新增连接超时参数:close_delay_ms 2023-02-17 23:02:09 +08:00
xiongziliang
8f0ba6988b openRtpServer接口新增only_audio参数,优化语音对讲场景 2023-02-17 22:48:39 +08:00
xiongziliang
44f4e9acd4 openRtpServer udp多端口模式默认绑定发送端地址,防止多路同时推流时ssrc冲突问题 2023-01-08 21:35:50 +08:00
xiongziliang
0374e7a660 startSendRtp接口支持同时接收流:#2109,#2149 2023-01-07 22:36:30 +08:00
ziyue
77e46353ce 新增支持mjpeg es rtp流
mpegts/g711 payload改成固定模式
2022-12-30 18:04:15 +08:00
老衲不出家
f05a9501fa
Unified code style (#2137) 2022-12-02 14:43:06 +08:00
mtdxc
754073918a
Header refactor (#2115)
* 优化MultiMediaSourceMuxer头文件包含

* 将MediaSinkDelegate和Demux移到MediaSink中

* MediaSource头文件重构, 独立出PacketCache.h
精简Frame和Track的头文件

* Rtmp头文件重构

* Rtsp头文件重构

* webrtc头文件重构

* 规范.h头文件包含,并将其移到.cpp中:
- 尽量不包含Common\config.h
- Util\File.h
- Rtsp/RtspPlayer.h
- Rtmp/RtmpPlayer.h

* 删除多余的Stamp.h和Base64包含
2022-11-29 11:07:13 +08:00
ziyue
188ee1f61a 消除编译警告 2022-11-19 09:37:49 +08:00
ziyue
68948288e0 TcpSession/UdpSession统一为Session类 2022-11-19 09:33:10 +08:00
ziyue
255ccb4265 精简rtp服务器相关代码 2022-11-18 16:43:00 +08:00