xiongguangjie
22f5f56130
rtc fix sdp ufag should not contain _ + = - by spec ( #2993 )
...
rtc 中的sdp ufrag 只能有数字与字母组成,不能包含其他符号(根据RFC 5245),包含 _ + = - , 在chromium
项目中有人提出过,详情见( https://crbug.com/1053756 )。chrome 也能正常处理_ + = -
等符号,但是在日志中会有警告如下 `[WARNING:transport_description.cc(32)] '-', '=', '#'
and '-' are not valid ice-char and thus not permitted in ufrag or pwd.
This is a protocol violation that is permitted to allow upgrading but
will be rejected in the future. See https://crbug.com/1053756 `
因此修改
2023-11-19 14:36:03 +08:00
夏楚
ae662fa083
webrtc dtls默认采用https证书,如果https证书不存在则随机生成 ( #2928 )
...
之前默认随机创建dtls证书,导致每次启动证书都不一致,而Firefox要求同主机的dtls证书必须一致,所以导致每次服务重启,Firefox可能拒绝dtls握手。
并且在集群模式下,如果Firefox接入多个不同集群实例的webrtc服务,也可能导致webrtc dtls握手失败。
2023-10-25 17:50:29 +08:00
xia-chu
e3e7495c90
新增webrtc播放器datachannel消息广播机制和接口
2023-09-02 12:53:56 +08:00
xia-chu
39dd886ec1
优化获取播放器列表相关功能
2023-09-02 12:07:42 +08:00
xia-chu
d286ac1d73
NoticeCenter支持安全类型转换,解决监听者参数类型不一致导致的bug
2023-09-02 11:22:28 +08:00
Dw9
81966f2c48
修复未开启sctp时,webrtc datachannel sdp交换相关bug ( #2791 )
...
主要优化如下:
1、通过设置port为0 声明不支持datachannel(而不是inactive)。
2、设置正确的ice用户名和密码,防止ice建联失败。
3、group attribute移除datachannel的mid。
3、datachannel 相关sdp移除rtcp相关描述。
2023-08-29 11:22:30 +08:00
xia-chu
a7d95461ee
过滤掉不支持的webrtc rtp ext,提高webrtc转发兼容性
...
在测试obs simulcast推流时,发现chrome无法正常播放,
分析rtp ext扩展,发现是rtp mid ext未过滤导致,
zlmediakit在回复answer sdp时,已申明不支持mid扩展,
但是obs并未理会还是发送mid扩展。
根据answer sdp过滤rtp ext可兼容此问题。
2023-08-12 15:25:16 +08:00
夏楚
73c8a5faf4
统一设置单字节对齐方式 ( #2716 )
...
__attribute__((packed)) 替换为 #pragma pack(push, 1)
2023-07-29 13:07:22 +08:00
夏楚
5464313b41
修复webrtc推流互斥锁重入死锁bug ( #2713 )
...
simulcast推流时,在onRecvRtp函数中可能触发对totalReaderCount的调用,从而导致死锁。
2023-07-29 13:04:24 +08:00
夏楚
09aa38334e
H264 rtsp sdp生成正确的packetization-mode ( #2691 )
2023-07-22 17:30:39 +08:00
Dw9
eb382c3fc9
修复whip delete_webrtc未注销流 ( #2688 )
...
bug触发条件:
1、obs whip 推流到zlm
2、关闭推流
3、zlm 未注销流
2023-07-22 10:46:17 +08:00
yogo-zhangyingzhe
9e8568e753
添加rtp ext: av1-rtp-spec ( #2609 )
...
Co-authored-by: xia-chu <771730766@qq.com>
2023-07-08 23:28:34 +08:00
夏楚
fad8dd74e7
修复webrtc开启simulcast推流时,统计观看人数线程安全相关bug ( #2640 )
2023-07-08 21:33:07 +08:00
johzzy
03770ff409
Replace the tuple (vhost/app/stream) with MediaTuple. ( #2560 )
2023-06-17 10:28:01 +08:00
xia-chu
af0ebf4633
优化Parser代码命名
2023-06-10 14:55:40 +08:00
Johnny
0232caf068
add MediaTuple
2023-05-30 11:01:27 +08:00
Johnny
f4ee607feb
add RtspMediaSource::Clone
2023-05-30 11:01:27 +08:00
a-ucontrol
51e9313275
Make available the media_info variable for the class inherited from WebRtcSession and HttpSession. ( #2505 #2461 )
2023-05-29 14:48:13 +08:00
Johnny
bfec1b1e0e
fix typo
2023-05-02 20:41:13 +08:00
xia-chu
2708c85d57
修复编译问题
2023-04-28 23:08:59 +08:00
xia-chu
8c049d4e28
实现whip/whep delete相关功能
...
通过whip/whep 回复http头中的Location url进行删除资源
新增delete token随机数实现删除鉴权
2023-04-28 22:36:58 +08:00
xia-chu
d2349f01bd
使用static_pointer_cast优化性能
2023-04-28 22:04:38 +08:00
xia-chu
cdf97e7605
更新zltoolkit,适配最新代码
2023-04-28 22:04:09 +08:00
xiongziliang
c8a20f85f6
直接打印SockException类
2023-04-23 00:10:18 +08:00
xiongziliang
de8249592e
Session类构造析构跟踪日志统一在底层网络框架打印
2023-04-22 23:58:17 +08:00
Johnny
82bc416546
add exchangeSdp
2023-04-21 20:40:37 +08:00
xia-chu
fcb0124f29
适配更新zltoolkit,优化增强网络库:#2397
2023-04-19 13:12:39 +08:00
xia-chu
70ad9cb0b6
设置webrtc端口缺省配置为0(不开启)
2023-03-13 21:00:00 +08:00
ahaooahaz
37cb29fa8e
increase sdp rel-addr length limit: #2330 #2302
2023-03-13 17:38:08 +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
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
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
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
mtdxc
4783ac0808
修复webrtc多候选地址无法来回切换的bug ( #2266 )
...
最后一个连通的候选地址会被赋值并锁定为_selected_session,如果之前的候选地址再发送数据,将通过_selected_session回复,导致无法切换为旧的候选地址。
2023-03-03 11:18:21 +08:00
xiongziliang
c2e1083493
复用rtp/rtcp判断逻辑过滤非rtp包: #2247
2023-02-28 22:23:30 +08:00
ziyue
a981ce8cb3
优化webrtc nack算法:#2249
2023-02-25 00:19:00 +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
Alexandr
8bcc2cddc8
Build without usrsctp
2022-12-30 08:51:37 +03:00
xiongguangjie
96f549ab32
avoid bug for #2159
2022-12-15 19:17:09 +08:00
monktan89
f6a36180b4
修复webrtc转发可能内存越界的bug: #2159
2022-12-14 15:08:59 +08:00
Dw9
9d40c82141
修复手机推rtc,其他协议拉流画面旋转
2022-12-08 21:52:55 +08:00
老衲不出家
f05a9501fa
Unified code style ( #2137 )
2022-12-02 14:43:06 +08:00
monktan89
a12b7c8021
修正代码拼写错误
2022-11-30 18:24:35 +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