夏楚
b44ca8fd6f
rtmp协议支持更新metadata ( #2669 #2692 )
2023-07-22 17:31:23 +08:00
夏楚
a97f1e503d
提高http/rtsp header解析兼容性 ( #2670 #2693 )
2023-07-22 17:31:02 +08:00
夏楚
09aa38334e
H264 rtsp sdp生成正确的packetization-mode ( #2691 )
2023-07-22 17:30:39 +08:00
夏楚
a17e842da2
兼容ffmpeg6.0 ( #2648 #2689 )
2023-07-22 17:29:09 +08:00
xiongguangjie
19d6f1a003
FLV player avoid script data first element not string ( #2679 #2680 )
...
兼容不规范的flv流,比如livegbs产生的flv流metadata flv tag解析异常
2023-07-20 17:13:26 +08:00
xiongguangjie
4e33f5b477
rtsp player add query param for content-base ( #2637 )
...
rtsp以content-base为基准,增加url的query参数(根据抓包分析,vlc是这样处理的),以兼容海康rtsp录像流与
直播流,主要是为了兼容这两个issue: #2624 #2501
2023-07-10 10:53:02 +08:00
johzzy
d41afa5d48
fix typo. ( #2644 )
2023-07-09 10:25:10 +08:00
xia-chu
f55e13f9da
c sdk新增on_mk_media_send_rtp_stop事件回调
2023-07-08 22:34:09 +08:00
夏楚
beae515bb2
新增无人观看自动关闭流(无须hook返回)功能 ( #2643 )
...
auto_close参数适用于配置文件、addStreamProxy接口、on_publish hook
2023-07-08 21:36:34 +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
Nick
07a1a929ad
修复HLS点播时下载切片过快的bug ( #2635 #2628 )
...
Co-authored-by: xia-chu <771730766@qq.com>
2023-07-08 10:18:09 +08:00
a-ucontrol
c86e6ba3f1
Fix build issue with uclibc ( #2625 #2631 )
2023-07-06 20:07:49 +08:00
xiongguangjie
788915c7f7
修复mp4解复用器输出sps pps帧时设置起始头长度错误问题 ( #2627 )
...
mp4解复用器在解析mp4文件时,当获取到mp4头中sps/pps等配置帧信息时,创建相应的Frame未设置prefix size;导致后续输入H264Track分帧逻辑异常。
2023-07-06 15:47:30 +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
夏楚
6aa4b741a3
修复通用rtp解码器输入小时间戳增量流在丢包时不再输出帧数据的bug ( #2589 )
...
如果rtp时间戳增量很小,在rtp时间戳在转换单位为毫秒时无变化,
从而被认为是上一帧数据,由于处于丢包状态,此rtp数据将被一直丢弃。
2023-06-28 14:56:24 +08:00
xiongguangjie
d5bf99a27b
ts or ps muxer not support mjpeg video codec ignore it ( #2593 )
2023-06-28 14:56:06 +08:00
夏楚
db8e9182cc
新增配置项指定H264 rtp打包是否优先采用stap-a模式 ( #2582 )
...
H264 rtp打包模式是否采用stap-a模式(为了在老版本浏览器上兼容webrtc)还是采用Single NAL unit packet
per H.264 模式 有些老的rtsp设备不支持stap-a rtp,设置此配置为0可提高兼容性
2023-06-26 10:04:16 +08:00
Luosh
24d210f61d
修复NTP时间戳计算精度不足导致误差累积问题 ( #2576 #2570 )
...
ntp时间戳计算精度由毫秒调整为微秒,解决误差累积问题。
2023-06-21 17:20:39 +08:00
Talus
9f753b5e5f
RTSP支持强制协商RTP传输方式 ( #2572 )
...
当客户端发起RTSP SETUP的时候,如果rtp传输类型和配置不一致则返回461 Unsupported
transport。迫使客户端切换到对应rtp传输协议并重新SETUP;目前支持FFMPEG和VLC。
2023-06-21 15:35:27 +08:00
夏楚
7e117b1c7f
新增支持http-flv播放器 ( #2562 )
2023-06-17 10:29:27 +08:00
johzzy
03770ff409
Replace the tuple (vhost/app/stream) with MediaTuple. ( #2560 )
2023-06-17 10:28:01 +08:00
xia-chu
2410419911
忽略非法的rtcp ntp时间戳
...
有些设备在发送sender report rtcp时,其rtp和ntp时间戳一直为0,将导致zlmediakit计算出的ntp时间戳异常
2023-06-17 10:14:20 +08:00
xia-chu
ccddb84a19
修复跨域问题: #2548
2023-06-17 09:15:50 +08:00
Luosh
23e24d07e6
解决存在b帧情况下,rtsp播放不同步问题 ( #2550 #2549 )
...
在根据rtsp pts生成ntp时,由于pts可能回退,旧有逻辑不允许回退将导致ntp异常
2023-06-13 17:39:43 +08:00
夏楚
5ca4ed53b2
防止析构函数抛异常导致崩溃问题 ( #2546 )
2023-06-11 22:07:15 +08:00
xiongziliang
fe37005526
兼容http body超过声明大小的情况
2023-06-11 09:22:28 +08:00
夏楚
5f936663b4
统一处理content-length, 修复http get请求带body不兼容问题( #2528 #2544 )
2023-06-10 20:49:21 +08:00
xiongguangjie
67d5c42007
Fix addStreamProxy rtsp url user or pass contain special char result in auth failed ( #2545 )
2023-06-10 18:46:30 +08:00
夏楚
d3f1c2fab1
mp4录制文件名添加索引号,防止一秒内生成多个同名文件导致覆盖 ( #2542 )
...
实测发现 如果在点播推流时 如果切片大小设置比较小 一秒钟可能产生多个mp4切片
以前切片名称粒度最小为一秒 所以会存在文件覆盖问题
2023-06-10 14:56:23 +08:00
xia-chu
64b8079ac1
优化函数命名风格
...
FindField改名为findSubString
2023-06-10 14:55:40 +08:00
xia-chu
31944a92ad
重写Parser代码实现
2023-06-10 14:55:40 +08:00
xia-chu
af0ebf4633
优化Parser代码命名
2023-06-10 14:55:40 +08:00
xia-chu
52c7bc1d34
精简HttpServer代码
2023-06-10 14:55:40 +08:00
xia-chu
fff53cf0e2
格式化HttpSession.cpp代码
2023-06-10 14:55:40 +08:00
夏楚
e4acc59bec
媒体时间戳默认改为相对时间戳,通过时间戳矫正器解决跳跃和回退问题 ( #2523 )
...
通过用户反馈发现,遇到较多直播源时间戳混乱问题,包括rtsp流之rtcp ntp时间戳混乱,国标流时间戳混乱问题。
之前默认采用源流绝对时间戳,但是由于时间戳混乱会导致hls切片异常或视频播放不了等问题。
故默认改成相对时间戳(modify_stamp=2),通过时间戳矫正器过滤了时间戳跳跃以及回退问题(强制加1ms),
同时保留了对之前时间戳覆盖(modify_stamp=1)的兼容。
该修改同时兼容点播流,在点播流开启时间戳覆盖时,不起实质作用(采用原始绝对时间戳)。
2023-06-03 17:34:34 +08:00
xiongziliang
af57691bc8
c++14相关代码替换为c++11代码
2023-06-02 21:43:24 +08:00
fruit Juice
7970138966
Fix MP4Reader available speed range bug ( #2516 )
2023-06-01 14:29:19 +08:00
百鸣
14537bfbc7
解决ws-flv和http-flv的累积时延问题( #2509 )
2023-05-31 23:16:16 +08:00
xiongguangjie
11a39c68c4
修复海康rtsp点播拉流seek相关bug( #2501 #2511 )
2023-05-31 09:59:41 +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
dengjfzh
18dbbc8d19
降低TCP RTP 2字节头被误判为EHOME头的风险 ( #2502 )
...
当TCP RTP包大小为256字节时,可能触发RtpSplitter::onSearchPacketTail误判为EHOME格式。
这个修改一旦检测到数据不是EHOME格式,则后续不再进行尝试,以减小误判的风险。
2023-05-27 22:27:10 +08:00
dengjfzh
032a2ac91d
修复TCP RTP 2字节头被误判为4字节头的问题 ( #2499 )
...
当RFC4571封装的RTP包大小在0x2400到0x24ff之间时,会被误认为是RTSP Interleaved
封装的数据。因为0x24正好是'$'的ASCII码,而RtpSplitter::onSearchPacketTail通过'$'来识别RTSP
Interleaved数据。暂时没有想到什么好的办法能够百分之百的正确区分RFC4571数据和RTSP
Interleaved数据。增加一个状态变量记录之前的状态,一旦检测到数据不是RTSP
Interleaved格式,则后续不再进行尝试,以减小误判的可能性。
2023-05-26 17:34:47 +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
4fa04d6a37
优化PlayerProxy代码
2023-05-13 00:14:35 +08:00
xia-chu
0afe75229e
修复拉流代理获取流信息可能访问空指针的bug
...
此bug由 #2448 引入,触发条件:
- 1.配置文件rtsp.directProxy设置为0
- 2.调用addStreamProxy代理rtsp流
在非直接代理情况下,PlayerProxy::_media_src为空,导致访问空指针。
2023-05-13 00:02:06 +08:00
老衲不出家
f6ac39ade5
新增允许所有跨域请求配置项 ( #2449 )
...
配置项为http.allow_cross_domains
2023-05-12 11:47:22 +08:00
codeRATny
1136b0a3c0
Adding new features for proxy player ( #2448 )
...
Add some functions for the proxy player, such as:
getting stream information (basic video/audio information)
callbacks for any connection and disconnection from the server
And now you can set delay between reconnections. See proxy player
constructor
2023-05-12 11:20:31 +08:00