Commit Graph

109 Commits

Author SHA1 Message Date
xia-chu
ee05ae159a 修复mp4_as_player设置为1时,on_stream_none_reader回调无效流信息的问题 (#4725) 2026-05-03 19:50:09 +08:00
xia-chu
9bff057860 Revert "修复mp4_as_player设置为1时,on_stream_none_reader回调无效流信息的问题 (#4725)"
This reverts commit 6f9531c5fa.
2026-05-03 19:33:43 +08:00
xia-chu
c440c45ce4 新增流健康度探针功能 2026-05-03 15:02:03 +08:00
xia-chu
6f9531c5fa 修复mp4_as_player设置为1时,on_stream_none_reader回调无效流信息的问题 (#4725) 2026-05-03 12:04:09 +08:00
夏楚
6d520ea6a3 新增支持Python混合编程模式 (#4579) 2026-02-10 13:28:42 +08:00
xia-chu
cd8a14d1ca 事件视频录制前溯和后溯时间支持负数 2026-01-09 11:34:18 +08:00
xia-chu
021f09e62b 优化精简媒体事件相关逻辑代码 2025-11-23 19:07:48 +08:00
xia-chu
c9490ad764 新增兜底机制确保事件录制视频能正常结束 2025-11-18 20:12:47 +08:00
xia-chu
57fede9508 修复编译警告 2025-08-09 15:42:28 +08:00
dsjing
87d84c47fe 修正ENABLE_RTPPROXY未启用时编译失败问题 (#4384) 2025-08-09 14:24:23 +08:00
xia-chu
c9a0025620 新增startRecordTask接口,支持录制事件视频
用户可以录制当前时间前后一定时间内的视频,配置文件gop_cache设置较大时历史视频才能录全
2025-08-02 21:00:30 +08:00
PioLing
fb2a3f5179 修复无人观看关闭流相关bug (#4334) 2025-07-02 14:58:12 +08:00
xia-chu
f0bc7a75aa 确保断连续推功能开启后流能正常强制关闭 (#4287) 2025-06-29 18:10:00 +08:00
xia-chu
9a7cca1ad9 paced_sender逻辑新增音视频包排序功能
用于矫正音视频包时间戳交织性
2025-06-29 18:00:04 +08:00
xia-chu
9e6b33b02e rtp tcp级联速度太慢时主动限制上游接收速度
防止发送速度跟不上接受速度导致发送超时
2025-06-29 10:56:05 +08:00
PioLing
7b1f8fedac Add network traffic statistics (#4239)
Co-authored-by: xiongguangjie <xiong_panda@163.com>
Co-authored-by: xia-chu <771730766@qq.com>
2025-05-02 16:23:25 +08:00
xia-chu
11d1b849ec startSendRtp、startRecord接口支持缓存多个gop (#4180) 2025-03-07 23:40:50 +08:00
xia-chu
4c90a1a95b Instantly enable recording support for GOP caching 2024-10-18 22:22:13 +08:00
alex
4152dcd409 AI automatically translates all comments in the code into English (#3917) 2024-09-19 14:53:50 +08:00
xia-chu
81aef25583 整理startSendRtp相关接口,新增支持udp被动模式
startSendPassive接口指定is_udp为1时则为开启udp被动模式, 被动模式下需要对方先发数据给zlmediakit,然后才能回复rtp数据;
同时在被动模式指定src_port时,不再等待对方连接成功后再返回(而是直接返回成功和端口号,失败通知请监听on_send_rtp_stopped hook)。
2024-07-28 23:37:13 +08:00
xiongziliang
77d2df1695 移除RtpSelector相关逻辑,优化代码结构 2024-06-09 10:52:10 +08:00
xia-chu
664d0b67bc Add the listRtpSender http api 2024-04-21 11:31:43 +08:00
xia-chu
1930d909f9 Fix the thread safety issue caused by poller thread switching when paced sender enabled 2024-03-16 21:53:30 +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
6ff5556b71 优化平滑发送逻辑,解决时间戳跳变导致发送不平滑问题 2023-12-04 23:22:38 +08:00
夏楚
21c03f772f 新增平滑发送逻辑 (#3072) 2023-12-02 10:20:06 +08:00
lvchenyun
5c81640556 修复国标级联音频可能错乱的bug (#2967)
GB28181流音频解析出来的Frame类型是不可缓存类型,它的数据内存地址是复用的。
在级联时,会把Frame存入RingBuffer对象,这样在下次使用改Frame对象时,可能数据区已经被覆盖掉了。
2023-11-10 21:56:05 +08:00
Dw9
f8285a3f6c startSendRtp接口新增支持同ssrc向多个服务器推流 (#2951)
新增ssrc_multi_send参数,支持同ssrc向多个服务器推流,兼容当前startSendRtp/stopSendRtp接口
2023-11-07 23:38:58 +08:00
fruit Juice
1609fe67d7 Track新增update方法,支持更新宽高采样率等信息 (#2960)
当变分辨率时候,实时更新MP4封装层的参数信息,避免出现封装层与编码(SPS)层视频宽高不一样,造成解码参数错误花屏;同时也支持更新音频采样率等信息。


---------

Co-authored-by: xia-chu <771730766@qq.com>
2023-11-07 23:36:41 +08:00
xia-chu
d286ac1d73 NoticeCenter支持安全类型转换,解决监听者参数类型不一致导致的bug 2023-09-02 11:22:28 +08:00
夏楚
e52c1cc510 修复addFFmpegSource添加的流事件拦截可能失效问题 (#2642 #2629)
此pr主要为了修复 #2629,通过新增getMuxer接口,
可以直接获取到所有协议共享的MultiMediaSourceMuxer对象,
在此对象完成事件拦截,防止某种协议事件丢失。
同时调整了下FFmpegSource.cpp代码格式。
2023-07-08 21:35:09 +08:00
夏楚
077566d1e1 新增支持on_publish hook返回stream_replace替换流id (#2641) 2023-07-08 21:32:04 +08:00
XiaoYan Lin
cb0579a16d 新增支持hls-fmp4直播(#2603 #977 #1965)
同时主要优化点包括:
1、编译宏特性开关优化。
2、转协议复用器相关创建代码移动至Recorder类。
3、转协议复用器onAllTrackReady函数修改为addTrackCompleted。
4、startRecord/stopRecord/isRecording接口新增支持ts/fmp4/hls-fmp4协议。

Co-authored-by: xia-chu <771730766@qq.com>
Co-authored-by: linxiaoyan87 <linxiaoyan87@foxmail.com>
2023-07-02 12:02:33 +08:00
johzzy
03770ff409 Replace the tuple (vhost/app/stream) with MediaTuple. (#2560) 2023-06-17 10:28:01 +08:00
夏楚
e4acc59bec 媒体时间戳默认改为相对时间戳,通过时间戳矫正器解决跳跃和回退问题 (#2523)
通过用户反馈发现,遇到较多直播源时间戳混乱问题,包括rtsp流之rtcp ntp时间戳混乱,国标流时间戳混乱问题。
之前默认采用源流绝对时间戳,但是由于时间戳混乱会导致hls切片异常或视频播放不了等问题。
故默认改成相对时间戳(modify_stamp=2),通过时间戳矫正器过滤了时间戳跳跃以及回退问题(强制加1ms),
同时保留了对之前时间戳覆盖(modify_stamp=1)的兼容。
该修改同时兼容点播流,在点播流开启时间戳覆盖时,不起实质作用(采用原始绝对时间戳)。
2023-06-03 17:34:34 +08:00
Johnny
0232caf068 add MediaTuple 2023-05-30 11:01:27 +08:00
Kiki
7e4010df83 修复startSendRtp接口gop缓存功能可能失效的问题 (#2455)
如果帧序列为SPS PPS SEI IDR,那么GOP缓存会从IDR开始,导致解码器未获取到SPS PPS从而不能秒开
2023-05-18 16:35:54 +08:00
xia-chu
19c5323633 修复startSendRtp发送mp4文件时崩溃问题:#2429 2023-04-28 23:02:48 +08:00
xiongziliang
c8a20f85f6 直接打印SockException类 2023-04-23 00:10:18 +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
xia-chu
ba4296e180 修复断连续推情况下线程迁移导致崩溃的bug:#2283
如果一个MultiMediaSourceMuxer对象上挂载了很多个RtpSender对象,
这些对象会绑定MultiMediaSourceMuxer的OwnerPoller(归属线程),
在断连续推发生时,对应的MultiMediaSourceMuxer对象OwnerPoller线程
将发生变更,导致与RtpSender对象的线程不一致。
2023-03-11 10:34:58 +08:00
Dw9
3b3a83b524 修复MediaSource在startSendRtp后无法注销的bug (#2187) 2023-01-07 21:31:46 +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
9bb6a2f828 全面整理转协议相关配置文件 2022-11-12 23:56:28 +08:00
xiongziliang
0053148139 优化MultiMediaSourceMuxer相关代码 2022-11-05 20:47:33 +08:00
ziyue
520945c2e9 提高线程安全性 2022-11-01 10:53:38 +08:00