Commit Graph

527 Commits

Author SHA1 Message Date
xia-chu
d8d7fe9144 通过getMediaList接口可返回Track时间戳增量信息 2023-10-31 11:10:02 +08:00
xia-chu
c1b82961cf deleteRecordDirectory接口新增name参数,可以指定删除特定录像文件 2023-10-31 11:10:02 +08:00
ljx0305
7ee2d66eaa
统一代码命名风格 (#2910)
openRtpServer时,如果开启tcp模式,从tcp端口池获取
2023-10-19 17:55:30 +08:00
Armstrong
b8cb8957e4
修复WebApi退出清理时重复析构问题 (#2900)
1. s_???Map.clear()会触发key/value的析构,先执行析构再移除map成员。析构执行完之前map成员仍然有可见性。
2. s_???Map的成员析构时,根据当前状态,可能触发回调,如播放终止回调。
3. 在状态变更的回调函数中,通过s_???Map.erase(key)的方式解注册,此时也会触发一次析构。

两次析构导致double free:a) map.erase, b) map.clear

Signed-off-by: ArmstrongCN <armstrong@sweelia.com>
2023-10-13 15:26:31 +08:00
alexliyu7352
fdc00d5a02
增加jemalloc工具类, 增加jemalloc内存统计分析 (#2885)
增加jemalloc工具类, 增加jemalloc内存统计分析
2023-10-10 11:48:56 +08:00
xia-chu
585f7c3a3a 修复ffmpeg日志保存目录相关bug
每次调用addFFmpegSource/getSnap接口时,都可能导致篡改全局配置变量
2023-09-23 20:34:36 +08:00
xiongguangjie
f69f3b3029
docker 优雅关闭(docker stop graceful) (#2827) 2023-09-09 10:59:27 +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
xia-chu
0844f09e24 addStreamProxy重复拉流时返回错误 (#2773) 2023-08-26 23:03:15 +08:00
夏楚
e628cba1ca
新增配置项过滤on_stream_changed hook协议类型 (#2759)
配置项hook.stream_changed_schemas可指定监听感兴趣的协议
2023-08-14 00:05:32 +08:00
夏楚
f69204b321
hook请求添加hook_index, 防止hook请求乱序 (#2758) 2023-08-13 20:46:08 +08:00
xia-chu
aac8905619 api secret无效时不再直接退出程序
而是修改为随机字符串并持久化至配置文件
2023-08-12 15:43:30 +08:00
xia-chu
2bcbff09b0 web hook不再直接放行来自127.0.0.1播放鉴权请求
防止代理越过鉴权
2023-07-27 15:54:04 +08:00
xia-chu
2c8a46862b 来自127.0.0.1的http api请求开启secret校验
防止http代理越过鉴权
2023-07-27 15:54:04 +08:00
xia-chu
c1f6517471 在开启on_http_access hook时,访问http文件(或目录)ip白名单机制不生效
on_http_access hook优先级更高,关闭on_http_access hook时才采用ip白名单机制,防止两种鉴权机制间的冲突
2023-07-27 15:54:03 +08:00
xia-chu
e81efec96e ip白名单机制只对需要secret校验的http api生效 2023-07-26 17:18:33 +08:00
xia-chu
706c63c64b 禁止通过setServerConfig接口修改ffmpeg.bin配置选项 2023-07-26 16:40:10 +08:00
xia-chu
098046cb1d 新增http api与http文件访问ip白名单限制机制,默认禁止公网访问 2023-07-26 16:33:21 +08:00
夏楚
25d5e410c3
禁止默认http api密钥,删除管理员越过鉴权逻辑 (#2655 #2690)
http api secret禁止使用默认的035c73f7-bb6b-4889-a715-d9eb2d1925cc
删除admin_params的设定
2023-07-22 17:30:20 +08:00
Xiaofeng Wang
a31108cc51
避免清空库列表导致 test 编译失败 (#2677) 2023-07-19 23:36:03 +08:00
xia-chu
f55e13f9da c sdk新增on_mk_media_send_rtp_stop事件回调 2023-07-08 22:34:09 +08:00
夏楚
e52c1cc510
修复addFFmpegSource添加的流事件拦截可能失效问题 (#2642 #2629)
此pr主要为了修复 #2629,通过新增getMuxer接口,
可以直接获取到所有协议共享的MultiMediaSourceMuxer对象,
在此对象完成事件拦截,防止某种协议事件丢失。
同时调整了下FFmpegSource.cpp代码格式。
2023-07-08 21:35:09 +08:00
xia-chu
6b9889a883 WebApi调试日志恢复为Debug级别 2023-07-02 12:45:07 +08:00
夏楚
2ad44bc773
修复启动参数log-size单位错误bug (#2598)
FileChannel内部已经把做了转换为MB操作,外面无须再乘以1024x1024
2023-06-28 14:55:39 +08:00
pedoc
2771bc15a5
添加on_server_exited webhook事件,当程序正常退出时触发 (#2591 #2585) 2023-06-28 11:36:41 +08:00
朱如洪
c530f281c3
优化CMakeList, 完善iOS下编译配置 (#2578)
1、调整 json 的源码引入,外部可以引入 json/json.h 使用;
2、针对 iOS 工程调整 cmake 配置,解决 iOS 环境下mk_util.h 找不到问题;同时在 iOS 工程中引入 MediaServer 静态库;
2023-06-27 10:51:31 +08:00
夏楚
6cd9e15cb8
优化FFmpeg截图命令模板,提高截图成功率 (#2583)
-t 0.001参数替换为-frames:v 1,只截图一帧
2023-06-26 11:04:52 +08:00
夏楚
06742f9d25
新增日志相关设置启动参数 (#2581)
1.新增日志文件保存路径启动参数:log-dir
2.新增日志文件最大切片个数启动参数:log-slice
3.新增日志文件最大切片大小启动参数:log-size
2023-06-26 10:49:25 +08:00
johzzy
03770ff409
Replace the tuple (vhost/app/stream) with MediaTuple. (#2560) 2023-06-17 10:28:01 +08:00
xia-chu
64b8079ac1 优化函数命名风格
FindField改名为findSubString
2023-06-10 14:55:40 +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
ljx0305
7ef39d1b6f
修复openRtpServer函数声明不一致问题 (#2445) 2023-05-08 15:27:43 +08:00
xiongguangjie
7c89c1655f add getProxyPusherInfo and getProxyInfo restful api 2023-05-03 18:52:11 +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
41451f6a93 修复不保存日志文件的bug 2023-04-23 14:30:41 +08:00
xiongziliang
c8a20f85f6 直接打印SockException类 2023-04-23 00:10:18 +08:00
xiongziliang
f1037e3767 降低http api debug日志级别为Trace 2023-04-22 23:29:19 +08:00
xiongziliang
38ab3e0df4 添加cpu亲和性设置参数: #2407
如果需要调用getSnap和addFFmpegSource接口,可以关闭cpu亲和性以发挥ffmpeg多核性能
2023-04-22 22:10:35 +08:00
xiongziliang
967fe035ab 日志默认调整为debug级别 2023-04-22 22:03:30 +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
Johnny
82bc416546 add exchangeSdp 2023-04-21 20:40:37 +08:00
Johnny
5d33e4c9f9 refine: update static_cast in webrtc api 2023-04-21 20:24:23 +08:00
xia-chu
9443d68d6c 格式化代码 2023-04-18 10:33:22 +08:00
xiongguangjie
f949c6de2a not retry when hook result code is int and !=0 2023-04-17 20:01:45 +08:00
xiongziliang
24eaaf68fb 初步支持webrtc whip/whep(推拉流)协议
whip推流地址: /index/api/whip?app=live&stream=test
whep拉流地址: /index/api/whep?app=live&stream=test
2023-04-08 21:44:08 +08:00
xiongziliang
23f9a42f72 格式化与精简代码 2023-04-01 23:59:13 +08:00
xiongguangjie
876aea33f5 avoid fps too big 2023-03-23 18:14:28 +08:00
Leonnash
cf342a6fdf
Update WebApi.cpp 2023-03-22 15:52:56 +08:00
Derek Liu
6008ae157a
修复addFFmepgSource接口参数非法时无法清除记录表的bug (#2305)
捕获addFFmepgSource接口参数dst_url解析错误的抛错,通过错误回调返回返回错误,清除s_ffmpegMap表中的无效KEY
2023-03-14 19:38:24 +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
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
6eb36ec883 获取MediaSource信息相关接口返回帧数相关字段:#1570 2023-02-05 22:04:14 +08:00
xiongziliang
fcf70c6ef1 startSendRtpPassive接口支持同时接收流 2023-01-08 21:24:29 +08:00
xiongziliang
0374e7a660 startSendRtp接口支持同时接收流:#2109,#2149 2023-01-07 22:36:30 +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
a9e53aae70 Merge branch 'master' of https://gitee.com/xia-chu/ZLMediaKit 2022-11-19 09:38:44 +08:00
ziyue
68948288e0 TcpSession/UdpSession统一为Session类 2022-11-19 09:33:10 +08:00
xiongguangjie
0d6fa1281a add rtc tcp port config and ignore candidate when port is 0 2022-11-19 01:51:53 +08:00
Dw9
47530ce830
新增支持webrtc over tcp模式 (#2092)
* webrtc server/session/cadidate 改为tcp

* 先屏蔽检查isCurrentThread

* 接受和发送的数据处理tcp 2字节头

* 处理rtc tcp 分片

* 完善webrtc over tcp

* 精简rtp服务器相关代码

* 适配webrtc AV1编码: #2091

* webrtc tcp模式支持Firefox

* webrtc tcp模式支持线程安全

* c sdk支持webrtc tcp

Co-authored-by: ziyue <1213642868@qq.com>
2022-11-18 22:52:57 +08:00
xiongziliang
3fdd5a86c9 MediaServer -v 打印代码日期 2022-11-13 00:13:02 +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
xiongziliang
44fd6b86bc 完善版本信息 2022-11-06 00:38:14 +08:00
monktan89
7e95bd2078 修复MSVC编译问题 2022-11-03 10:51:49 +08:00
xiongziliang
9498b96b95 确保rtp推流线程安全性 2022-10-30 21:36:35 +08:00
xiongziliang
c25e93fee3 解决启动ffmpeg进程导致shell终端假死的问题:#1662 2022-10-29 17:44:55 +08:00
ziyue
7d251e15b3 on_publish hook兼容非标准回复 2022-10-20 11:00:19 +08:00
ziyue
eac5a5b1dc 使用submodule方式添加jsoncpp源码 2022-10-16 21:10:18 +08:00
xiongziliang
a916760ac3 整理webrtc c接口 2022-10-06 12:35:14 +08:00
Dw9
43bf7c7918 c api support srt server 2022-09-22 21:18:34 +08:00
ziyue
0b355759de 整理webrtc相关代码命名空间 2022-09-18 21:03:05 +08:00
ziyue
15affeff1d 优化关闭媒体源相关逻辑: #1963 2022-09-18 20:36:47 +08:00
xiongziliang
12551be33c 提炼ProtocolOption赋值相关逻辑 2022-09-16 23:31:37 +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
huangxiuqi
258a4dd166
C API和WebHook未找到流回调添加直接关闭机制 (#1948) 2022-09-09 10:55:35 +08:00
cqm
999e0b274e 简化代码:
- MediaSource引入shortUrl和getUrl来简化日志输出
- WebApi引入fillSockInfo
2022-09-07 11:47:15 +08:00
xiongziliang
00c9749b5d 防止多个track时获取rtp推流丢包率失败 2022-09-03 16:47:37 +08:00
PioLing
0948a3df31
支持在addStreamProxy和on_publish中控制单个流是否开启时间戳覆盖 (#1930) 2022-09-03 09:54:09 +08:00
custompal
dd6495cc07 补充getMediaPlayerList接口注释及postman示例 2022-09-02 17:46:09 +08:00
custompal
33e1e6b88d getMediaPlayerList返回播放器id以及会话类型名称 2022-09-01 21:52:43 +08:00
custompal
d0214a13e1 防止getPlayerList返回的json数据为null 2022-09-01 17:45:06 +08:00
custompal
38170c702e 修正gcc4.8编译错误 2022-09-01 17:33:36 +08:00
custompal
04aa3ef41f 增加获取媒体流播放器列表功能 2022-08-30 21:05:19 +08:00
xiongziliang
6a4297845f 新增发送rtp被动关闭hook 2022-08-27 10:53:47 +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
xiongguangjie
a1000da71f add get version restful api 2022-08-12 18:09:44 +08:00
ziyue
35791aac89 优化代码,去除编译警告,修复拼写错误 2022-08-08 17:36:07 +08:00
ziyue
7458a67c66 修正deleteRecordDirectory接口拼写错误并精简代码 2022-08-05 16:01:31 +08:00
Dw9
73d2cd4ff7 修复pr1885 删除文件判断逻辑错误 2022-08-04 22:00:44 +08:00
dreamisdream
db70aec690
增加webapi deleteRecordDirectroy(删除录像文件夹) (#1851) 2022-08-04 10:15:07 +08:00
ziyue
54f400a6e9 确保MediaServer主函数可以多次调用: #1838 2022-07-29 16:24:43 +08:00
Xiaofeng Wang
310b60276c cmake: try to disable compile warning of C4819 2022-07-26 13:25:36 +08:00