Commit Graph

2107 Commits

Author SHA1 Message Date
cqm 5c92b4e48f 增加FFmpegEncoder和test_audio_transcode, 主要修改有:
- 使用FFmpegAudioFifo来简化代码
- 修复转码时间戳不规则递增,导致的音频破音和不连续问题
- 使用double来保存_tsp,避免出现2.5ms的frame_size(ffmpeg内置的opus)
2023-08-14 12:57:01 +08:00
cqm b33c227cf4 AacTracker 增加构造函数 2023-08-14 12:57:00 +08:00
xia-chu 2e05119df1 修复访问http目录下索引文件相关的bug 2023-08-12 15:54:12 +08:00
xia-chu 08299b6652 mp4录制新增追踪日志 2023-08-12 15:50:09 +08:00
xia-chu 2378617dd8 修复前向声明导致的编译问题 2023-08-08 16:06:29 +08:00
夏楚 383da1e09e
优化代码 (#2741)
删除无效的配置项,
同时修复编译警告
2023-08-05 21:30:01 +08:00
夏楚 98a3b8ab91
推流结束时,发送eof控制信令给rtmp播放器 (#2711 #2723) 2023-08-05 09:26:52 +08:00
夏楚 ff225114ec
修复rtsp服务可能无法发送rtp给nat内播放器的bug (#2737 #2740)
在udp connect rtsp播放器内网端口后,可能导致过滤掉其公网端口发送的打洞包;
从未无法完成与rtsp播放器udp端口的双向通信。
Socket::bindPeerAddr修改成软绑定时,只是保存发送目标地址,不会导致打洞包的过滤。
2023-08-05 09:25:35 +08:00
夏楚 2935bc1932
修复sdp全局信息未保存问题 (#2739)
解决rtsp拉流代理时无法区分直播点播问题
2023-08-05 09:24:52 +08:00
夏楚 63a50104fa
rtp ntp时间戳采用透传方式 (#2719) 2023-07-29 23:04:26 +08:00
夏楚 5a2bf8d196
完成对enhanced rtmp videocodecid的兼容 (#2718)
请查阅: https://github.com/veovera/enhanced-rtmp/issues/8
2023-07-29 23:03:28 +08:00
夏楚 bd8ad2eabf
优化enhanced-rtmp解析性能 (#2717) 2023-07-29 13:24:21 +08:00
夏楚 00b3c5184a
修复RtpProcess析构中抛异常导致崩溃的问题 (#2714)
WarnP(this) 时会调用get_peer_ip()接口,此接口可能抛异常;
析构中抛异常可导致程序直接退出。
2023-07-29 13:24:07 +08:00
夏楚 73c8a5faf4
统一设置单字节对齐方式 (#2716)
__attribute__((packed)) 替换为 #pragma pack(push, 1)
2023-07-29 13:07:22 +08:00
夏楚 54194fe501
兼容不规范的rtmp推流器 (#2417 #2715)
有些rtmp推流器在服务器返回鉴权成功前就开启推送流数据
2023-07-29 13:06:36 +08:00
夏楚 eaecf9a56c
ip白名单添加局域网ip 10段 (#2712) 2023-07-29 13:04:06 +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 dfae1aee97 修复设置allow_ip_range为空后,无法关闭鉴权相关bug 2023-07-27 15:29:11 +08:00
xia-chu 22e3872cd4 优化ip过滤逻辑性能 2023-07-26 16:45:47 +08:00
xia-chu 098046cb1d 新增http api与http文件访问ip白名单限制机制,默认禁止公网访问 2023-07-26 16:33:21 +08:00
xiongguangjie e8f8b48d38
fix rtsp player pull hik record stream (#2624 #2701)
修复rtsp 拉流 sdp中全局a:control:获取失败的bug
2023-07-25 15:47:28 +08:00
xia-chu 9317665058 支持enhanced-rtmp(H265) 2023-07-22 23:13:44 +08:00
xia-chu b580d6c736 修复判断是否为增强型rtmp协议相关bug
有符合整型右移7位可能为-1(而不是1)
这样将导致在处理增强型rtmp时,判断关键帧和配置帧失败
2023-07-22 20:09:59 +08:00
xia-chu 3e9a8b9d8b 优化函数命名
isCfgFrame -> isConfigFrame
getAacCfg -> getConfig
2023-07-22 19:46:26 +08:00
xia-chu 780a1eb9fc 完善rtmp关键帧与配置帧判断逻辑 2023-07-22 19:46:26 +08:00
xia-chu a86398b6db 优化与完善rtmp协议相关代码
rtmp相关常量由宏改为枚举
明确rtmp包一些字段赋值含义
2023-07-22 19:46:25 +08:00
夏楚 47add54465
新增支持enhanced-rtmp h265 推流 (#2694) 2023-07-22 17:31:39 +08:00
夏楚 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