Commit Graph

3917 Commits

Author SHA1 Message Date
ljx0305
1dec350dcd
修正on_rtp_server_timeout hook时获取的端口非真实端口 (#2297)
在调用openRtpServer接口时,如果传入的端口为0(随机端口), 那么在触发on_rtp_server_timeout hook时的端口为0
2023-03-15 14:54:18 +08:00
Derek Liu
6008ae157a
修复addFFmepgSource接口参数非法时无法清除记录表的bug (#2305)
捕获addFFmepgSource接口参数dst_url解析错误的抛错,通过错误回调返回返回错误,清除s_ffmpegMap表中的无效KEY
2023-03-14 19:38:24 +08:00
xia-chu
70ad9cb0b6 设置webrtc端口缺省配置为0(不开启) 2023-03-13 21:00:00 +08:00
TempoTian
5ae34d666e
提高 rtmp tcUrl 解析兼容性 (#2303 #2298) 2023-03-13 20:42:31 +08:00
xia-chu
b9fa5f9b5e 实例汇报时间改成60分钟一次
同时新增程序启动日期、是否开启编译ffmpeg选项
2023-03-13 20:29:18 +08:00
ahaooahaz
37cb29fa8e
increase sdp rel-addr length limit: #2330 #2302 2023-03-13 17:38:08 +08:00
xia-chu
96e1cf8146 优化cpu类型判断宏 2023-03-12 18:45:37 +08:00
xia-chu
46ba4894db 更新三方库 2023-03-12 18:13:27 +08:00
xia-chu
d818cad3c0 修复低版本gcc编译器lambda不支持可变长度模板参数捕获导致的编译问题:#2295 2023-03-12 09:39:49 +08:00
xia-chu
843e3423cf 新增实例上报功能: #2294 2023-03-12 00:14:22 +08:00
xia-chu
4617b6faa0 更新readme功能描述 2023-03-11 21:24:56 +08:00
mtdxc
15dc854e94
修复http multi form上传文件名相关bug(#2293) 2023-03-11 21:08:39 +08:00
xia-chu
44dde7a939 更新zltoolkit 2023-03-11 21:02:32 +08:00
xia-chu
1bab0b8e31 修复WebSocket线程安全问题,同时新增内置客户端、服务端心跳机制。 2023-03-11 11:08:14 +08:00
xia-chu
c2a8d46a64 提高c sdk mk_media对象线程安全 2023-03-11 11:02:20 +08:00
xia-chu
ba4296e180 修复断连续推情况下线程迁移导致崩溃的bug:#2283
如果一个MultiMediaSourceMuxer对象上挂载了很多个RtpSender对象,
这些对象会绑定MultiMediaSourceMuxer的OwnerPoller(归属线程),
在断连续推发生时,对应的MultiMediaSourceMuxer对象OwnerPoller线程
将发生变更,导致与RtpSender对象的线程不一致。
2023-03-11 10:34:58 +08:00
xia-chu
9188ed1613 更新zltoolkit 2023-03-11 10:28:56 +08:00
xia-chu
4cc2982a2c 重写jitter buffer算法,修复seq回环时可能丢包的bug 2023-03-11 10:17:31 +08:00
xia-chu
c301ecd207 限定nack rtt时间有效值范围 2023-03-11 10:16:44 +08:00
ljx0305
1cc0f51c07
replace ffmpeg deprecated api avpicture_fill to av_image_fill_arrays (#2279) 2023-03-09 15:24:32 +08:00
xiongguangjie
cba46e2c87 Merge remote-tracking branch 'origin/master' 2023-03-08 19:34:01 +08:00
xiongguangjie
a7c7470d46 compitable for rtc ipv6 candidate and ice-lite sdp global session 2023-03-08 19:33:52 +08:00
ziyue
23296ae5fa 加大参数冗余,提高webrtc抗丢包能力 2023-03-07 10:37:44 +08:00
ziyue
d05c9d5f51 重写jitter buffer长度控制算法,提高webrtc/rtp抗丢包能力 2023-03-06 21:04:50 +08:00
xiongguangjie
d6e9a4fb90 remove PSParser mistake comment 2023-03-06 19:33:34 +08:00
xiongziliang
9fdb3de8b2 优化rtp排序抖动缓存算法,提高webrtc/rtsp抗丢包性能 2023-03-06 00:31:11 +08:00
xiongziliang
4942a0f574 优化nack重传rtt间隔时间估算逻辑 2023-03-05 21:54:27 +08:00
xiongziliang
3bc75d6ba8 注释过多的日志 2023-03-05 20:55:57 +08:00
xiongziliang
280ee30aac 优化webrtc nack响应速度且精简代码 2023-03-03 22:13:59 +08:00
ziyue
11870fb18e 更新zltoolkit 2023-03-03 15:25:25 +08:00
ziyue
8ab3e0a4d4 初始化selectedTuple为nullptr, 修复webrtc ice建连状态错误 2023-03-03 15:25:15 +08:00
ziyue
56d6eb0f28 批量替换tab为4个空格 2023-03-03 15:24:12 +08:00
baiyfcu
a5c3db4ee1 修复逻辑判断不严禁XSS攻击,server在windows debug运行时拒绝服务攻击:#2213 2023-03-03 14:44:59 +08:00
mtdxc
4783ac0808
修复webrtc多候选地址无法来回切换的bug (#2266)
最后一个连通的候选地址会被赋值并锁定为_selected_session,如果之前的候选地址再发送数据,将通过_selected_session回复,导致无法切换为旧的候选地址。
2023-03-03 11:18:21 +08:00
gongluck
91efab281e
c sdk添加安装动态库到bin目录 (#2259) 2023-02-28 23:00:59 +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
dc8508c58f 完善c sdk对象描述元信息,防止隐式指针转换错误
void* 类型指针很容易存在隐式转换错误,用户无法察觉
2023-02-26 21:45:14 +08:00
xiongziliang
8f108395a5 rtp服务器过滤非rtp包: #2247
防止非法数据干扰后续处理逻辑对rtp ssrc/pt等的绑定
2023-02-26 21:13:49 +08:00
ziyue
a981ce8cb3 优化webrtc nack算法:#2249 2023-02-25 00:19:00 +08:00
ziyue
a15053ff01 更新作者列表 2023-02-25 00:18:51 +08:00
Talus
46842e6f29
修复WebRTC播放导致媒体延迟注销问题 (#2246)
因WebRtcPlayer中使用RtspMediaSource的共享指针,特定情况下引起媒体注销无法触发的问题。

- 重现步骤
    在ZL的webrtc demo页面推流
    浏览器打开如下html
    webrtc.html
    关闭推流器页面,推流器停止推流
    webrtc.htm浏览器console->network将观察到:即使推流停止,但webrtc sdp请求一直能成功获取sdp,且流媒体一直不注销

- 原因
        因为每个WebRtc 播放 SDP请求都会产生 WebRtcPlayer,产生RtspMediaSource的共享指针,产生强引用。
        而DTLS超时释放需要一定的时间,WebRtcPlayer销毁需要超时。如果请求sdp的时间足够短,强引用会一直存在。将永远无法触发媒体注销

- 场景
        webrtc播放存在重试,但是udp不通。DTLS无法创建
        有人对ZLM执行恶意攻击,短时间内不断请求SDP但是不建立WebRTC通信
2023-02-20 16:23:29 +08:00
ziyue
1f2ef82b46 新增支持获取gop大小与间隔信息: #1570
getMediaList/getMediaInfo接口、on_media_changed hook新增支持字段如下:
{
    "codec_id" : 0,
    "codec_id_name" : "H264",
    "codec_type" : 0,
    "fps" : 0.0,
    "frames" : 1119, #累计接收帧数,不包含sei/aud/sps/pps等不能解码的帧
    "gop_interval_ms" : 1993, #gop间隔时间,单位毫秒
    "gop_size" : 60, #gop大小,单位帧数
    "height" : 556,
    "key_frames" : 21, #累计接收关键帧数
    "ready" : true,
    "width" : 990
}
2023-02-20 16:11:10 +08:00
alexliyu7352
2f8dab66c5
http地址支持相对路径 (#2223)
* 部分hls中会出现类似[../]或者[./]的相对地址, 因此写了一个解析的方法

* 有时候上游http协议不规范会导致直接输出eof, 特别是在自动重试机制开启下, 容易造成定时器没办法初始化从而拉不到流但是session一直存在,所以需要做一个判断,如果没数据直接报错
2023-02-20 10:52:00 +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
ziyue
5cdaf982f3 更新zltoolkit,修复udp服务线程安全问题 2023-02-15 11:51:24 +08:00
zx
719b137208
修正macos持续集成运行目录 (#2234)
修改 macos 最后一步运行目录release/linux/Debug/ 改为release/darwin/Debug/ 
参看build log  
https://github.com/ZLMediaKit/ZLMediaKit/actions/runs/4150150582/jobs/7179611556
2023-02-12 22:44:37 +08:00
ziyue
2f090e33cf 新增c sdk api,防止user_data导致的内存泄露 2023-02-11 15:14:18 +08:00
ziyue
5078723236 新增mk_http_body无拷贝创建api 2023-02-11 11:55:06 +08:00