Commit Graph

2268 Commits

Author SHA1 Message Date
xiongguangjie
64553797bd h265 rtp pack avoid 1387 size nal fu-a only one end packet and first satrt end not exist try fix #2425 2023-04-27 19:54:47 +08:00
lijin
38e05ab8cb
添加addStreamProxy对非法url异常捕获处理 (#2412)
确保抛出异常时,原有代理拉流对象被正常移除,后续可以更新正确url
2023-04-24 14:32:34 +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
xiongziliang
bb26fead1e rtmp协议metadata设置title字段 2023-04-21 22:25:06 +08:00
Johnny
ce16a0a9b6 Fix compile warnings 2023-04-21 21:12:42 +08:00
xiongguangjie
30182701f5 fix vlc can't play mp4 of jpeg #2388 2023-04-19 19:40:58 +08:00
xia-chu
f1438986ad 修复stopSendRtp后无法触发无人观看事件的问题 2023-04-18 10:54:49 +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
xiongguangjie
67d8837442 rtp h265 packet like h264 2023-04-06 19:54:59 +08:00
夏楚
599208dd6a
修复全局变量构造先后顺序导致启动崩溃的问题 2023-04-06 16:16:28 +08:00
alexliyu7352
7fcd88d02a
避免hls拉流时m3u8文件出现问题或直播结束后,无限重试 (#2357)
Co-authored-by: xiongziliang <771730766@qq.com>
2023-04-05 20:36:44 +08:00
xiongziliang
384c8677ea startSendRtp接口在发送ps时支持只发送音频: #2217 2023-04-01 23:48:57 +08:00
ljx0305
ca7efd5941
修正ssrc轮回为0时,ssrc重复分配为1的bug(#2327) 2023-03-24 16:19:22 +08:00
mtdxc
98ec6b68d9
HttpRequester支持失败重试功能(#2323) 2023-03-23 14:46:45 +08:00
xiongziliang
dfd37ff350 时间戳处理新增接口支持获取相对时间戳 2023-03-22 21:19:16 +08:00
baiyfcu
950f33bd3f 新增windows中_M_ARM64 _M_ARM _M_X64 CPU指定集识别 2023-03-17 02:04:00 +08:00
baiyfcu
a754a22680 修复在WINDOWS上cpu类型无法判断BUG 2023-03-17 01:31:56 +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
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
xia-chu
96e1cf8146 优化cpu类型判断宏 2023-03-12 18:45:37 +08:00
xia-chu
843e3423cf 新增实例上报功能: #2294 2023-03-12 00:14:22 +08:00
mtdxc
15dc854e94
修复http multi form上传文件名相关bug(#2293) 2023-03-11 21:08:39 +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
4cc2982a2c 重写jitter buffer算法,修复seq回环时可能丢包的bug 2023-03-11 10:17:31 +08:00
ljx0305
1cc0f51c07
replace ffmpeg deprecated api avpicture_fill to av_image_fill_arrays (#2279) 2023-03-09 15:24:32 +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
baiyfcu
a5c3db4ee1 修复逻辑判断不严禁XSS攻击,server在windows debug运行时拒绝服务攻击:#2213 2023-03-03 14:44: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
8f108395a5 rtp服务器过滤非rtp包: #2247
防止非法数据干扰后续处理逻辑对rtp ssrc/pt等的绑定
2023-02-26 21:13:49 +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
b3ba6d4214 完善mk_transcode相关接口 2023-02-11 11:35:37 +08:00
ziyue
f6cba98a8e 修复FrameDispatcher可能导致死锁的问题 2023-02-06 14:19:43 +08:00
xiongziliang
6eb36ec883 获取MediaSource信息相关接口返回帧数相关字段:#1570 2023-02-05 22:04:14 +08:00
xiongziliang
a0955d956a 优化代码风格 2023-02-05 22:00:36 +08:00
xiongguangjie
a52e9d6ba8 fix h264 no idr nal sps pps sei i slices 2023-02-04 18:17:06 +08:00
ziyue
6078ca3e81 修复hls注册抛异常可能导致的bug 2023-02-02 11:21:49 +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
Dw9
3b3a83b524
修复MediaSource在startSendRtp后无法注销的bug (#2187) 2023-01-07 21:31:46 +08:00
ziyue
f5755a17e7 合并 #2183 2023-01-02 12:08:20 +08:00
ziyue
08c47ff4f0 Merge branch 'feature/editable_rtsp_sdp' of github.com:a-ucontrol/ZLMediaKit 2023-01-02 11:59:56 +08:00
ziyue
77e46353ce 新增支持mjpeg es rtp流
mpegts/g711 payload改成固定模式
2022-12-30 18:04:15 +08:00
ziyue
ae950606cb 修复JPEGTrack无法就绪的bug 2022-12-30 18:03:21 +08:00
Ikko Ashimine
fda77f0daf !23 fix typo in RtspSession.cpp
* fix typo in RtspSession.cpp
2022-12-30 17:25:58 +08:00
Alexandr
afa6465178 Changes to MP4Muxer for CodecJPEG 2022-12-30 08:56:57 +03:00
Alexandr
dc26bbf145 protected virtual bool sendRtspResponse(...) 2022-12-30 08:50:30 +03:00
a-ucontrol
eed5f02380
rtsp/rtp 新增支持mjpeg编码 (#2166)
* Trying to send mjpeg via MultiMediaSourceMuxer

* Improved JPEGRtpEncoder::inputFrame code but still not working

* 优化代码

* 完善jpeg相关逻辑

* Micro fix

* FrameJPEG renamed to JPEGFrame according to ZLM style

* Modified  JPEGRtpEncoder::inputFrame and JPEGRtpEncoder::rtp_send_jpeg

* getVideoHeight(), getVideoWidth() and getVideoFps() in JPEGTrack

* mjpeg rtp打包避免内存拷贝/修复mjpeg rtp解包huffman_table size字段错误的bug

* 支持mjpeg pix type

* 优化性能

* add bom header
2022-12-21 15:32:16 +08:00
monktan89
56ccd4332a 提高rtsp播放器兼容性: #2159 2022-12-14 15:08:24 +08:00
xiongziliang
04422b31b6 完善非法url提示:#2129 2022-12-04 16:21:08 +08:00
老衲不出家
f05a9501fa
Unified code style (#2137) 2022-12-02 14:43:06 +08:00
monktan89
68ea5465cc 修复addStreamProxy后,马上startSendRtp,触发的无人观看事件回调是MediaSourceNull的信息,导致无法关闭流bug(#2120) 2022-11-29 11:33:16 +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
xiongziliang
50fa671564 修复析构中调用getOwnerPoller抛异常导致崩溃的bug:#2117 2022-11-26 10:16:47 +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
fc433de9ac 适配webrtc AV1编码: #2091 2022-11-18 16:47:02 +08:00
ziyue
255ccb4265 精简rtp服务器相关代码 2022-11-18 16:43:00 +08:00
ziyue
df14924a99 优化rtmp服务器兼容性: #2078 2022-11-15 20:53:24 +08:00
ziyue
034e29b25a 修复rtsp basic鉴权相关bug: #2087 2022-11-15 20:52:27 +08:00
xiongguangjie
87353534af fix rtp server process removed server not clear 2022-11-14 14:04:57 +08:00
xiongziliang
9bb6a2f828 全面整理转协议相关配置文件 2022-11-12 23:56:28 +08:00
xiongziliang
946945ce7b 优化代码
整理代码
2022-11-12 22:06:09 +08:00
samosirl
6ffbcbfde5
优化Ehome协议兼容性 (#2063) 2022-11-12 21:03:54 +08:00
xiongziliang
b54f50c7c0 修复hls流注销时相关bug:#2082 2022-11-12 09:57:47 +08:00
夏楚
a37268f003 格式化代码 2022-11-12 01:52:49 +00:00
xiongguangjie
bc63142712 add rtp server timeout hook 2022-11-10 16:58:02 +08:00
Aven
af554bc376
update media-server (#2075)
* fix c2065 and c2051 error on windows, and the head file mpeg-ts-proto.h is also deprecated

* update media-server to 357ef88
2022-11-09 17:44:38 +08:00
xiongziliang
44fd6b86bc 完善版本信息 2022-11-06 00:38:14 +08:00
xiongziliang
0053148139 优化MultiMediaSourceMuxer相关代码 2022-11-05 20:47:33 +08:00
ziyue
2b804514e1 修复mp4点播流线程安全检查失败bug 2022-11-01 22:02:28 +08:00
ziyue
5877d3942e RtpServer确保超时回收 2022-11-01 17:54:41 +08:00
ziyue
2cdeddeb2c RtpServer支持udp与tcp模式并存 2022-11-01 17:27:27 +08:00
ziyue
60d96f4f3b 优化FrameDispatcher相关代码 2022-11-01 16:52:52 +08:00
ziyue
d04761c2c6 Merge branch 'FrameDispatcher_addDelegate_refactor' of github.com:mtdxc/ZLMediaKit 2022-11-01 16:36:43 +08:00
ziyue
bfe118d94e 修复RtpProcess析构导致的线程问题 2022-11-01 16:05:23 +08:00
ziyue
f5a032c9a0 Merge branch 'master' of github.com:ZLMediaKit/ZLMediaKit 2022-11-01 14:08:36 +08:00
cqm
dde352542b private FrameWriterInterfaceHelper 2022-11-01 12:03:49 +08:00
cqm
ac3d7bd21f add addDelegate with std::function, remove FrameWriterInterfaceHelper 2022-11-01 12:03:04 +08:00
ziyue
520945c2e9 提高线程安全性 2022-11-01 10:53:38 +08:00
xiongguangjie
d2c64b1f09 Merge remote-tracking branch 'origin/master' 2022-10-31 19:04:04 +08:00
xiongguangjie
613aae8bc3 rtp server only tcp mode is none use udp server 2022-10-31 18:47:42 +08:00
ziyue
918b1fce6c 修复hls/ts拉流崩溃问题:#2057 2022-10-30 23:50:20 +08:00
xiongziliang
9498b96b95 确保rtp推流线程安全性 2022-10-30 21:36:35 +08:00
xiongziliang
80eb6dc402 协议解析最大支持4MB分包: #2026 2022-10-29 22:57:32 +08:00
xiongguangjie
0a71e06d4a united some code style 2022-10-19 14:55:39 +08:00
xiongguangjie
7b87985f74 Merge remote-tracking branch 'origin/master' 2022-10-19 14:27:49 +08:00
xiongguangjie
0d2e035215 rtsp and rtp h264 lowlatency mode config 2022-10-19 14:20:53 +08:00
ziyue
ff6e9f4fc7 修复流注销时,hls无法播完最后一个切片的问题: #1955 2022-10-18 19:23:20 +08:00
ziyue
ac1abb34da 新增媒体流flush机制:#1996 2022-10-16 19:54:17 +08:00
ziyue
80eef693c6 精确mp4录制时长:#1795 2022-10-16 16:44:54 +08:00
xiongguangjie
bbdcc44eb0 mute audio maker avoid uint32_t cycle and 8k aac a frame is 128ms 2022-10-11 16:53:27 +08:00
ziyue
2b64245c14 优化代码 2022-10-08 10:47:09 +08:00
xiongziliang
c790254f46 修复关闭mp4录制不能触发无人观看事件问题:#2010 2022-10-06 13:06:54 +08:00
ziyue
34838b1b26 rtmp点播采用简单握手,发送心跳包,兼容fms服务器: #2007 2022-09-30 13:36:43 +08:00
xiongguangjie
bfebcd62c7 rtp packet sort set init seq 2022-09-28 15:29:11 +08:00
xiongguangjie
9f716dd8b8 fix gb startsendpassive use random port return immediately not wait 2022-09-26 15:50:02 +08:00
夏楚
037dd646d1
Merge pull request #1994 from Dw9/master
修复rtsp 推pcm L16, 空指针的异常
2022-09-26 10:27:30 +08:00
Dw9
6f1a45db8a 修复推rtsp L16崩溃 2022-09-25 12:13:09 +08:00
夏楚
b9a4b3e71a
消除编译警告 2022-09-24 19:07:45 +08:00
ziyue
15affeff1d 优化关闭媒体源相关逻辑: #1963 2022-09-18 20:36:47 +08:00
xiongziliang
12551be33c 提炼ProtocolOption赋值相关逻辑 2022-09-16 23:31:37 +08:00
custompal
08789454c3
rtsp支持指定播放单一track (#1937) 2022-09-13 16:27:00 +08:00
夏楚
4a35ddbddb
Merge pull request #1942 from mtdxc/reduce_code
简化代码
2022-09-09 11:10:55 +08:00
custompal
d853075175
RtpServer新增tcp主动模式支持 (#1938) 2022-09-09 10:56:28 +08:00
cqm
999e0b274e 简化代码:
- MediaSource引入shortUrl和getUrl来简化日志输出
- WebApi引入fillSockInfo
2022-09-07 11:47:15 +08:00
WuPeng
f765e5365b 修正在指定配置文件forwarded_ip_header的值后,无法获取不通过代理播放的客户端IP。 2022-09-06 21:13:11 +08:00
ziyue
4f47b7a5fe 修复getMediaPlayerList获取http-flv播放器列表时崩溃的问题 2022-09-05 14:59:46 +08:00
xiongziliang
5825f8b469 修复错误注释 2022-09-03 16:32:10 +08:00
xiongziliang
06c6654ed5 精简代码 2022-09-03 16:32:10 +08:00
xiongziliang
c8ea6490cd 修复直接拉流代理时同协议流无法注册的问题 2022-09-03 16:32:10 +08:00
xiongziliang
20f1275c58 rtsp拉流、rtp单端口推流新增支持获取丢包率: #1877 2022-09-03 16:32:09 +08:00
PioLing
0948a3df31
支持在addStreamProxy和on_publish中控制单个流是否开启时间戳覆盖 (#1930) 2022-09-03 09:54:09 +08:00
custompal
0d6509ce03 统一部分变量名和代码样式风格 2022-08-30 21:24:25 +08:00
custompal
04aa3ef41f 增加获取媒体流播放器列表功能 2022-08-30 21:05:19 +08:00
xiongzilaing
679c79802f 整理媒体事件相关代码,删除无须重载时的多余代码逻辑 2022-08-28 17:25:56 +08:00
xiongziliang
f0ae5a1bd7 优化日志提示 2022-08-27 11:00:24 +08:00
xiongziliang
0cab9c8d16 rtp发送去除重连机制 2022-08-27 10:59:15 +08:00
xiongziliang
6a4297845f 新增发送rtp被动关闭hook 2022-08-27 10:53:47 +08:00
xiongziliang
c2ab45f78d 完善线程安全设计 2022-08-27 10:17:06 +08:00
rqb500
00acea369e
修复接收rtsp、gb28181等rtp流转为其他协议播放时可能卡顿的bug (#1906)
* 修复获取ntp_stamp时计算溢出的bug
2022-08-26 11:42:40 +08:00
ziyue
44ba971cb6 Merge branch 'master' of github.com:ZLMediaKit/ZLMediaKit 2022-08-23 14:13:36 +08:00
ziyue
208b0865bd 修复全局变量初始化顺序错乱导致崩溃的问题 2022-08-23 14:11:32 +08:00
Xiaofeng Wang
a06b4321be cmake: fix install cxx api headers
Close #1882
2022-08-22 13:11:17 +08:00
xiongziliang
c6a0e3ad66 rtp发送启停支持触发观看人数统计事件 2022-08-20 13:16:25 +08:00
xiongziliang
9f0c15a4f0 startSendRtp接口支持rtcp接收超时主动停止 2022-08-20 12:48:27 +08:00
Dw9
30984d2076
mp4录制支持作为观看者参与播放人数统计 (#1880) 2022-08-16 11:47:24 +08:00
ziyue
6382fcb3be 确保on_publish事件回调时线程安全 2022-08-11 18:36:17 +08:00
ziyue
b34db64961 修复非法aac rtp包导致的除0崩溃问题: #1869 2022-08-10 10:44:34 +08:00
ziyue
795b4dbbd3 修复http文件服务器对特殊字符文件不兼容的bug:#1866 2022-08-10 10:37:49 +08:00
ziyue
099845b329 FMP4Packet时间戳类型改成64位 2022-08-08 17:57:29 +08:00
ziyue
35791aac89 优化代码,去除编译警告,修复拼写错误 2022-08-08 17:36:07 +08:00
ziyue
9c3b8a6a95 时间戳改为64位 2022-08-08 17:13:39 +08:00
ziyue
143580d780 修复编译警告 2022-08-08 15:28:43 +08:00
ziyue
663d167837 格式化代码 2022-08-05 17:55:48 +08:00
ziyue
ba947cb6b5 调整switch case语句缩进 2022-08-05 17:42:17 +08:00
ziyue
f85de2e108 精简复用rtp encoder创建相关代码 2022-08-05 17:36:51 +08:00
ziyue
ec3fe4350a 修复开启时间戳覆盖后崩溃的bug: #1848 2022-08-02 11:06:33 +08:00
Xiaofeng Wang
70c7a7aa57 依赖 ZLMediaKit 的模块需要继承宏定义以及依赖 2022-08-01 17:48:11 +08:00
ziyue
316301e910 确保rtsp直接拉流代理支持GOP缓存: #1843 2022-08-01 11:35:38 +08:00
ziyue
afcf247464 完善mpegts/ps容器对aac音频的兼容: #1801 2022-07-29 18:05:16 +08:00
ziyue
ace989d378 完善rtp server日志打印 2022-07-29 17:57:52 +08:00
ziyue
24db0454a8 不支持的协议直接抛异常, 防止非法推拉流:#1725 2022-07-29 17:32:30 +08:00
ziyue
5babe63cdb 修复Windows编译问题 2022-07-29 15:47:06 +08:00
ziyue
7d8b212a3c 修复rtmp汇报窗口太小导致循环递归的bug:#1839 2022-07-29 12:02:00 +08:00
CharleyWangHZ
2685f3cdc2
Update MediaSource.h 2022-07-28 16:43:03 +08:00
夏楚
76df34de81
Merge pull request #1825 from wasphin/feature/cmake
整理 CMakeLists.txt
2022-07-28 14:27:44 +08:00
dingcan
23e0abde04 Update RtpProcess.cpp 2022-07-27 14:13:54 +08:00
dingcan
0a678661e3 Update RtpProcess.cpp 2022-07-27 10:02:15 +08:00
dingcan
532932fd2d Update RtpProcess.h 2022-07-26 14:44:32 +08:00
dingcan
b8d17565d7 修改代码格式 2022-07-26 14:42:42 +08:00
dingcan
c1b4ccd041 Update RtpProcess.cpp 2022-07-26 11:57:09 +08:00
dingcan
ed6c80cf07 新增rtp udp收流增加丢包率 2022-07-26 11:21:19 +08:00
Xiaofeng Wang
9d3ead61de 整理 CMakeLists.txt 2022-07-25 00:22:30 +08:00
ziyue
ec7fe5cc9a 整理frame相关代码,完善FrameStamp重载函数 2022-07-22 16:20:47 +08:00
ziyue
b19574cea7 防止内存越界 2022-07-18 15:41:18 +08:00
xiongguangjie
b53ad2cc2d for rtsp sdp pt more check 2022-07-17 00:30:12 +08:00
xiongguangjie
3eaf7897a7 rtsp player trust sdp pt ,ingore other pt compatible hik nvr record 2022-07-17 00:26:07 +08:00
xiongguangjie
cffc0743d7 format code use clang-format 2022-07-14 22:49:31 +08:00
xiongguangjie
602b475a3c for rtc send can receive rtcp xr, player can calculate rtt , for metaRTC player send rtcp xr 2022-07-12 19:26:17 +08:00
xiongguangjie
14da5ab2d8
when start send rtp wait key rtp previous drop (#1789) 2022-07-09 22:30:43 +08:00
xiongguangjie
09a8d53150 Merge remote-tracking branch 'origin/master' 2022-07-07 17:46:37 +08:00
xiongguangjie
4108e81d2f avoid multi rtmp player metadata 2022-07-07 17:44:19 +08:00
Dw9
c4988e7cfc 修复mk_track_create创建的track无法初始化复用器的bug(#1784, #1778 ) 2022-07-07 16:56:54 +08:00
xiongziliang
121b78e5dd 推流器主动断开时,避免开启断流续推功能 2022-07-02 15:36:44 +08:00
xiongziliang
7a24a22661 完善推流判断逻辑 2022-07-02 13:13:16 +08:00
xiongguangjie
87dd1c7f7f avoid loopback ffmpeg push stream exit receive deleteStream message after broken pipe 2022-07-02 12:33:32 +08:00
alexliyu7352
9314a6699b
兼容ffmpeg4.x (#1758) 2022-06-29 11:02:43 +08:00
CharleyWangHZ
28350c0d05
Optimize Decoder inheritance relationship (#1760) 2022-06-29 11:01:16 +08:00
xiongguangjie
d622481619 fix multi aac frame in one frame result flv.js play audio error 2022-06-26 00:54:31 +08:00
xiongguangjie
266aaf9e0b fix rtsp and rtmp on_flow_report player or pusher judge error 2022-06-24 09:06:46 +08:00
baiyfcu
9acd1c2b36 修复on_flow_report player状态 2022-06-23 18:08:21 +08:00
Dw9
1c5380eead
Update MP4Recorder.cpp
fix #1679 
_muxer->openMP4 创建非法的文件夹会失败抛出异常  所以_full_path_tmp等都是空字符串
delete_file的时候 就会从此盘符的""(full_path_tmp)目录挨个删除了。 
复现建议新建个盘符...
2022-06-19 17:27:03 +08:00
xiongziliang
d30869d0c9 支持获取http反向代理真实客户端ip: #1388 2022-06-18 22:10:46 +08:00
xiongziliang
6291ee704c http文件服务器修复访问安全漏洞 2022-06-18 21:44:16 +08:00
xiongziliang
d72af3e61a 兼容不规范的rtsp url: #904 2022-06-18 21:19:26 +08:00
xiongziliang
ba0eaf26fc 时间戳跳变最大阈值调整为3秒 2022-06-18 21:08:34 +08:00
xiongziliang
b351f4c7e5 优化日志提示 2022-06-18 21:06:18 +08:00
xiongziliang
7f98f9a750 删除重复的获取gmt offset相关代码 2022-06-18 13:27:23 +08:00
custompal
771844d065
去除rtp_sender_mtx (#1722)
* 去除rtp_sender_mtx
* 无人观看定时器指定为MediaSource对象所属poller以确保读取观看数是线程安全的

Co-authored-by: xiongziliang <771730766@qq.com>
2022-06-18 13:22:57 +08:00
xiongguangjie
fe652e46b4 rtmp session when client stop publish not set push src null avoid judge player or pusher error 2022-06-16 10:57:48 +08:00
xiongguangjie
b22e1cf937 fix g711u or g711a rtp judge error 2022-06-16 10:04:46 +08:00
xiongguangjie
5479820748 const payload type variable start's letter is lower case 2022-06-16 09:59:09 +08:00
xiongguangjie
6a337adc91 for rtp server can config pt 2022-06-15 00:20:53 +08:00
xiongguangjie
f8373302d0 change srt streamid like srs srt streamid 2022-06-11 21:37:41 +08:00
xiongziliang
8fba694473 注释多余代码,消除编译警告 2022-06-11 15:14:14 +08:00
xiongziliang
fd11c53a78 Merge branch 'feature/srt' of github.com:ZLMediaKit/ZLMediaKit 2022-06-11 15:07:58 +08:00
xiongziliang
f6b4eb418f 优化录制相关代码 2022-06-11 14:18:55 +08:00
xiongziliang
97116e1208 完善getOwnerPoller相关逻辑 2022-06-11 13:08:58 +08:00
xiongziliang
b6d3ec5251 完善获取丢包率pull request; 新增MediaSource::getOwnerPoller接口 2022-06-11 12:56:03 +08:00
Leon
be995f9cd2 !17 【功能请求】 /index/api/getMediaList接口 增加LOSS字段用于统计每个轨道丢包率反馈
* update webrtc/WebRtcPusher.h.
* update webrtc/WebRtcPusher.cpp.
* update webrtc/WebRtcTransport.h.
* update webrtc/WebRtcTransport.cpp.
* update src/Common/MediaSource.h.
* update src/Common/MediaSource.cpp.
* update server/WebApi.cpp.
2022-06-11 04:31:06 +00:00
xiongguangjie
89b135400c Merge remote-tracking branch 'origin/master' into feature/srt 2022-06-04 15:47:47 +08:00
xiongziliang
df9a9649b0 Merge branch 'master' of github.com:ZLMediaKit/ZLMediaKit 2022-06-04 11:08:13 +08:00
xiongziliang
b23cbaa0f8 on_publish hook新增continue_push_ms参数,用于断连续推延时控制 2022-06-04 11:06:35 +08:00
xiongguangjie
b9f66ca1ec add srt push string 2022-06-03 20:38:35 +08:00
xiongguangjie
1891c4e391 add srt push type 2022-06-03 15:02:07 +08:00
taojishou
59dcd03b70
修改hls拉流后closestream崩溃的bug (#1678)
* 修改hls拉流后closestream崩溃的bug

Co-authored-by: 夏楚 <771730766@qq.com>
2022-06-01 13:05:49 +08:00
xiongziliang
cea30f8180 修复低版本gcc编译问题:#1667 2022-05-29 22:13:07 +08:00
xiongziliang
ea6ef2779e 新增url判空逻辑 2022-05-29 21:36:34 +08:00
xiongziliang
fd4145a622 完善对rtp负载为空处理逻辑:#1661 2022-05-28 10:34:54 +08:00
xiongziliang
6596eec069 Merge branch 'rtc_audio_delay' of github.com:mtdxc/ZLMediaKit 2022-05-28 10:21:48 +08:00
xiongziliang
93201f40d3 优化日志提示 2022-05-28 09:47:48 +08:00
cqm
3110284302 修复rtc单独播放音频延时高问题 2022-05-27 09:39:03 +08:00
夏楚
e2908e9775
cmake构建时自动生成mk_export头文件,解决msvc链接设备问题 (#1660)
* 解决msvc下链接问题
* CMAKE添加自动生成mk api export头文件
* 兼容非cmake构建时情况

Co-authored-by: baiyfcu <baiyfcu@gmail.com>
2022-05-26 20:30:43 +08:00
ziyue
cb0e5c6c57 全面更新整理c sdk 2022-05-25 15:51:24 +08:00
ziyue
9736badcea 优化编解码相关代码 2022-05-25 15:51:17 +08:00
ziyue
fa70af7cce 移动FFmpeg相关代码 2022-05-25 15:51:02 +08:00
xiongziliang
30dbac2c70 提高对不规范GB28181流的兼容性,防止视频轨道被忽略 2022-05-20 21:52:53 +08:00
xiongguangjie
b61cce85bd
修复拉取srs rtmp 流 play 命令参数类型不对的bug(参考vlc -2000 为number 类型) (#1644) 2022-05-19 19:01:23 +08:00
ziyue
c7d7999f53 兼容gcc4.8编译器 2022-05-18 20:07:54 +08:00
xiongziliang
251fe1f77c 优化随机端口分配逻辑 2022-05-14 23:34:33 +08:00
xiongziliang
8231c5c293 新增GB28181 tcp passive被动发送接口(startSendRtpPassive) 2022-05-14 23:25:22 +08:00
xiongziliang
b4166d5cfe 修复startSendRtp接口发送ipv4 udp地址失败的bug: #1635 2022-05-14 17:14:38 +08:00
xiongziliang
f1555a5501 防止忽略shutdown事件 2022-05-13 23:54:04 +08:00
xiongziliang
3e869c1f1d 修复https 302 跳转http相关bug 2022-05-13 23:24:17 +08:00
xiongziliang
fdbfccb32e hls/http-ts播放器在消费完frame时再触发shutdown事件 2022-05-13 23:22:00 +08:00
xiongziliang
9e6ff0e798 优化头文件引用: #1627 2022-05-13 20:48:22 +08:00
WuPeng
5bc313bafe 增加长期保存hls切片的功能,segKeep=0为不长期保存,segKeep=1为长期保存。此功能部分等效于segNum=0的情况,不同的是这个保留不会在m3u8文件中体现。 2022-05-10 17:32:50 +08:00
ziyue
9861091b18 优先使用ipv4地址 2022-05-10 14:48:05 +08:00
ziyue
45494c020b bug fixed 2022-05-10 10:44:12 +08:00
ziyue
d037acbf62 完善ipv6支持 2022-05-08 17:06:10 +08:00
ziyue
a44334acaf 全面支持ipv6 2022-05-08 16:33:33 +08:00
xiongziliang
a95bf960e0 完善ipv6支持 2022-05-08 09:25:47 +08:00
xiongziliang
d66845425c 完善ipv6网络适配 2022-05-08 00:26:01 +08:00
ziyue
3062ea0e7c 初步支持ipv6: #576, #1406 2022-05-07 20:06:08 +08:00
ziyue
200a193c04 openRtpServer新增ssrc参数修改为追加至函数末尾, 确保代码逻辑一致无歧义: #1572 2022-04-28 17:44:35 +08:00
alexliyu7352
c1d2adebae
rtmp拉流的兼容性改进 (#1595)
* 修复play指令的bug

* 修改MSG_AGGREGATE的时间戳处理逻辑

这里参考了ffmpeg的方式来计算时间戳.

* add bom
2022-04-28 14:13:09 +08:00
xiongziliang
974055fd17 确保推流器主动断开时,不开启断连续推特性: #1559 2022-04-16 21:37:07 +08:00
wangcker
e712639e33
openrtpserver接口新增ssrc参数,强制过滤不属于本端口的视频流,以解决视频串流问题 (#1572) 2022-04-16 15:12:49 +08:00
xiongziliang
24472ee346 修复aac adts头大于7个字节时的兼容性问题 2022-04-16 14:13:55 +08:00
ziyue
5144b84ee7 添加bom头 2022-04-10 23:58:56 +08:00
alexliyu7352
f128b35b18
解决多pps问题
解决某些流因为多pps而导致不能播放的问题.
2022-04-10 23:43:44 +08:00
alexliyu7352
08de795220
Update H264.h 2022-04-10 23:38:42 +08:00
alexliyu7352
a0c1bc13cc
修复多次调用onShutdown的bug (#1552)
当HlsPlayer拉取索引失败后会触发PlayerProxy的重试机制.
但是这里就有一个bug会导致重试次数不准确.
因为HlsPlayer播放失败会调用onShutdown.
然后回调PlayerProxy.
之后如果触发重试, 那么在HlsPlayer析构的时候又会在调用一次onShutdown.
这时候是安全的, 因为_on_shutdown已经被置空.
但是如果重试时又再次失败, 那么首先会调用
onPlayResult
这时候在PlayerProxy中会再次触发重试, 紧接着HlsPlayer析构, 又会调用一次onShutdown, 那么就又会触发一次重试.

修复方法有很多, 最简单的就是直接在
onShutdown中判断如果没有_demuxer就不需要父类的onShutdown方法来释放资源与重连了.
因为针对HlsPlayer来说, 如果重试拉取索引没有成功, 应该没有什么资源需要在onShutdown方法中释放了.

当然更完善的修复应该是在PlayerProxy中增加相关的判断逻辑, 给rePlay一个状态.
确保rePlay执行完成前, 不再执行一次rePlay.

具体哪种方式, 大佬您可以看着办.
2022-04-10 19:09:16 +08:00
xiongziliang
a1b350c9f0 startSendRtp接口udp发送不指定端口时,从端口池获取端口 2022-04-09 10:33:27 +08:00
xiongziliang
a6e82799f5 openRtpServer接口新增re_use_port参数 2022-04-09 10:26:15 +08:00
xiongziliang
6073175e75 Merge branch 'master' of github.com:ZLMediaKit/ZLMediaKit 2022-04-09 10:23:33 +08:00
alexliyu7352
78d32702e2
修复由于识别不出关键帧而导致hls不能切片. (#1551)
2.修复由于丢弃sei帧导致ffplay不能正常播放
2022-04-09 10:22:41 +08:00
xiongziliang
6c0fea4c46 Merge branch 'master' of https://gitee.com/xia-chu/ZLMediaKit 2022-04-07 20:39:34 +08:00
alexliyu7352
75b17b3a6a
避免m3u8文件为chunked时崩溃 (#1543)
* Update HttpChunkedSplitter.h

* 避免m3u8文件为chunked时崩溃

具体问题见
https://github.com/ZLMediaKit/ZLMediaKit/issues/1407

当数据最后小于2个字节时, 应该放弃回调.
做个保险, 避免导致溢出后崩溃.

这个bug很难出现, 但是的确存在. 一些特殊的服务器采用chunked返回的m3u8文件解析时, 有可能会遇到.

* Update HttpChunkedSplitter.cpp

Co-authored-by: 夏楚 <771730766@qq.com>
2022-04-06 14:16:48 +08:00
alexliyu7352
e4262222f4
hls拉流时应该适当重试 (#1541)
* hls拉流时应该适当重试

hls拉取索引文件失败时, 不应该直接上报,而应该内部适当重试几次.
避免由于网络抖动造成的客户端播放不流畅.

* Update HlsPlayer.cpp
2022-04-05 19:49:22 +08:00
alexliyu7352
efc3e78ba0
使用emplace_back优化代码 (#1542)
少了一次构造调用,为什么不用呢?
2022-04-05 19:32:02 +08:00
xiongziliang
8da23da35c 添加utf-8 bom头 2022-04-03 18:38:07 +08:00
xiongziliang
2818e371b8 完善startSendRtp接口 2022-04-03 18:37:22 +08:00
xiongziliang
de0738b1d1 Merge branch 'feature/rawrtpsend' of github.com:ZLMediaKit/ZLMediaKit 2022-04-03 17:34:51 +08:00
alexliyu7352
a7476e436a
修复HlsPlayer播放器BUG
当拉取加密流时, 因为不能正常播放, 所以不会触发playresult.
因此一直不会回调api请求.
2022-04-01 20:59:58 +08:00
xgj
9d532cf16b fix startsendrtp pt error 2022-04-01 19:12:37 +08:00
xgj
61625f458f for webapi startsendrtp can send raw rtp 2022-04-01 18:28:09 +08:00
wendelong
97ea8090ad 修复HLS播放导致程序异常的BUG 2022-03-29 13:43:17 +08:00
xiongziliang
ae99662a3d 修复编译警告 2022-03-27 21:57:05 +08:00
Dw9
822a401f30
优化端口池范围限定逻辑 (#1508) 2022-03-26 10:15:18 +08:00
xiongziliang
a16b6cbc59 mp4切片逻辑提高对音视频交织性差的流的兼容性能 2022-03-20 14:52:15 +08:00
xiongziliang
b127d8c2a9 rtsp/GB28181随机端口,支持端口范围设置 2022-03-13 20:50:25 +08:00
xiongziliang
0f1120b8a6 on_publish hook新增多种选项 2022-03-12 14:34:48 +08:00
xiongziliang
1cf0a0cc20 bug fix 2022-03-12 14:02:12 +08:00
xiongziliang
4dc621e1bb 转协议选项抽象为ProtocolOption对象 2022-03-12 13:24:23 +08:00
xiongziliang
ed661b1cf1 修改无法删除hls目录的bug:#1485 2022-03-12 10:57:39 +08:00
xiongziliang
2d88115b3f 完善http直播url解析规则pr:#1467 2022-03-12 10:04:36 +08:00
xiongziliang
81c0635bf2 Merge branch 'add_schema_query_string' of github.com:mtdxc/ZLMediaKit 2022-03-12 09:53:07 +08:00
alexliyu7352
090593f67c
hls拉取索引文件避免循环重试 (#1474)
当hls拉取索引文件失败时会触发重试.
但是play失败会调用一次rePlay, OnShutdow又会调用一次的rePlay.
由于m3u8文件非常小, 很大可能上短时间马上就会重试成功.
但是由于有两次的rePlay所以很可能再次析构了player, 又循环触发了更多的rePlay.

所以在播放成功后, 应该取消掉定时器
2022-03-12 09:44:47 +08:00
alexliyu7352
4be3c349be
mpeg-ts解析丢弃不完整的包 (#1478)
* 丢弃不正确的包

因为网络抖动或者拉流超时导致ts包不全.
这里丢弃掉有问题的包, 避免客户端解码中断

* Update TSDecoder.cpp

* 格式化代码

Co-authored-by: 夏楚 <771730766@qq.com>
2022-03-12 09:41:15 +08:00
alexliyu7352
276f763c08
hls拉流动态计算切片超时时间 (#1477)
* 动态计算切片超时时间

设置最大超时时间倍数和最小倍数,然后根据上一个切片的下载情况动态增加或者减少切片的超时时间.

* Update HlsPlayer.cpp
2022-03-12 09:39:33 +08:00
alexliyu7352
b4241e12d5
hls拉流新增支持mime类型 (#1476)
一些流服务器输出mime头有可能时audio/x-mpegurl, 所以这点的判断不能写的太死了.
2022-03-12 09:36:28 +08:00
alexliyu7352
2c63916973
http-ts拉流新增支持mime类型(#1475)
ts切片有些mime头并不是只有这两种,
比如youtube的ts切片头就是application/octet-stream
2022-03-12 09:35:22 +08:00
cqm
4cfac989b3 支持?schema=rtmp/ts/fmp4格式 2022-03-03 19:45:47 +08:00
ziyue
d88fe077ed on_publish hook新增originType字段 2022-03-02 18:03:44 +08:00
ziyue
4af83cbe7c 修复ENABLE_MEM_DEBUG时编译失败的问题 2022-03-01 19:00:50 +08:00
xiongziliang
8324a9fe43 修复rtsp推流访问空指针的bug:#1456 2022-02-28 17:20:20 +08:00
xiongziliang
b82cd5a500 确保ntp时间戳获取失败时,webrtc rtp重传缓存列队长度正常 2022-02-27 01:02:54 +08:00
ziyue
b2bb37dc5c http: 修复32位系统下,下载3GB以上文件失败的问题: #1446 2022-02-23 17:03:13 +08:00
ziyue
4a7f5796ba 修复ts文件大于3GB时,获取文件大小异常的问题 2022-02-23 17:01:53 +08:00
ziyue
147ba6147c rtsp/rtp: 过滤干扰的rtp pt, 提高兼容性: #1445 2022-02-22 16:53:05 +08:00
ziyue
a15d59cf23 hls/ts播放器改成绝对时间戳:#1389 2022-02-22 11:45:41 +08:00
ziyue
cb00dbab0f 在track就绪前,强制split frame,防止sps pps未被获取到 2022-02-17 14:32:49 +08:00
ziyue
c997d11bd1 修复mp4点播时,sps pps太长导致获取失败的问题 2022-02-17 14:31:28 +08:00
xiongguangjie
9c45fca761
根据配置禁用mmap缓存 (#1429) 2022-02-17 10:35:10 +08:00
ziyue
304c898a3a 完善http文件获取相关代码 2022-02-16 16:58:13 +08:00
xiongziliang
45d9bcd5f4 ts解析失败时清空split缓存 2022-02-13 22:02:16 +08:00
xiongziliang
2e9d77e8e1 删除多余ts split代码 2022-02-13 21:53:21 +08:00
xiongziliang
83c1f29253 HLS: 解决hls断流重新生成后异常的bug 2022-02-13 21:06:32 +08:00
夏楚
e37982adee
优化hls媒体流注册与无人观看清理机制 (#1421)
* 优化hls媒体流注册与无人观看清理机制

* 优化hls cookie管理

* bug fixed
2022-02-12 16:24:55 +08:00
ziyue
a2b6344861 修复hls m3u8返回content-type异常的问题 2022-02-11 16:36:40 +08:00
ziyue
49fc17d7e0 hls m3u8文件直接通过内存读写 2022-02-11 16:21:19 +08:00
ziyue
642c9c075a 修复设置cookie错误的bug 2022-02-11 15:14:34 +08:00
ziyue
36f24527a4 http cookie减少互斥锁,优化性能 2022-02-11 14:33:11 +08:00
ziyue
c510f3765a 关闭小文件mmap预加载功能 2022-02-11 14:02:55 +08:00
ziyue
984715a018 修复获取共享mmap大小bug 2022-02-11 13:40:41 +08:00