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
xiongziliang
c790254f46
修复关闭mp4录制不能触发无人观看事件问题:#2010
2022-10-06 13:06:54 +08:00
Dw9
6f1a45db8a
修复推rtsp L16崩溃
2022-09-25 12:13:09 +08:00
PioLing
0948a3df31
支持在addStreamProxy和on_publish中控制单个流是否开启时间戳覆盖 ( #1930 )
2022-09-03 09:54:09 +08:00
xiongzilaing
679c79802f
整理媒体事件相关代码,删除无须重载时的多余代码逻辑
2022-08-28 17:25:56 +08:00
xiongziliang
6a4297845f
新增发送rtp被动关闭hook
2022-08-27 10:53:47 +08:00
xiongziliang
c2ab45f78d
完善线程安全设计
2022-08-27 10:17:06 +08:00
ziyue
208b0865bd
修复全局变量初始化顺序错乱导致崩溃的问题
2022-08-23 14:11:32 +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
xiongguangjie
d622481619
fix multi aac frame in one frame result flv.js play audio error
2022-06-26 00:54:31 +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
xiongziliang
b23cbaa0f8
on_publish hook新增continue_push_ms参数,用于断连续推延时控制
2022-06-04 11:06:35 +08:00
xiongziliang
2818e371b8
完善startSendRtp接口
2022-04-03 18:37:22 +08:00
xgj
61625f458f
for webapi startsendrtp can send raw rtp
2022-04-01 18:28:09 +08:00
xiongziliang
0f1120b8a6
on_publish hook新增多种选项
2022-03-12 14:34:48 +08:00
xiongziliang
4dc621e1bb
转协议选项抽象为ProtocolOption对象
2022-03-12 13:24:23 +08:00
夏楚
c72cf4cbcc
整理命名空间 ( #1409 )
...
* feat: remove using namespace mediakit in header files.
(cherry picked from commit d44aeb339a8a0e1f0455be82b21fe4b1b536299f)
* feat: remove using namespace mediakit in FFmpegSource.h
* feat: remove using namespace mediakit in RtpExt.h
* feat: remove using namespace mediakit in header files.
* feat: remove using namespace std in header files.
* feat: remove using namespace std in header files when zltoolkit remove std in header
* 补充命名空间
* 整理命名空间
* 整理命名空间2
* 修复macos ci
* 修复编译问题
* 修复编译问题2
* 修复编译问题3
Co-authored-by: Johnny <hellojinqiang@gmail.com>
Co-authored-by: Xiaofeng Wang <wasphin@gmail.com>
2022-02-02 20:34:50 +08:00
ziyue
e249a03dc2
修复调用stopSendRtp接口无法触发无人观看事件的bug:#1189
2021-10-27 13:40:59 +08:00
Johnny
722097be05
调整 RtspSession::_push_src类型,统一为 RtspMediaSource::Ptr _push_src;
2021-10-15 18:25:06 +08:00
ziyue
e9008afca0
addTrack/inputFrame接口支持返回值;新增全局添加静音音频接口
2021-09-27 13:12:53 +08:00
ziyue
10522e4ea5
完善getOriginUrl接口
2021-08-16 17:31:13 +08:00
ziyue
018fa40946
打印codec信息时,打印url信息
2021-08-05 14:49:52 +08:00
ziyue
566a49e227
修复getMediaTracks接口相关功能
2021-07-20 13:15:57 +08:00
ziyue
4b34e58d3c
移除MultiMuxerPrivate对象,修复rtp发送时无sps pps帧的问题
2021-07-20 12:42:53 +08:00