Commit Graph

661 Commits (9d8a9b84e2dd82a23b5cb38ca334d73235bf54fc)

Author SHA1 Message Date
q191201771 ee341f4926 [patch] doc & comment
q191201771 400324075c [refactor] httpflv: readTag -> ReadTag
Che Kun 492eb60911
add float64 support to amf0.WriteObject
q191201771 8db3984d39 [patch] code style
q191201771 2d0160b812 [opt] remux: Rtmp2AvPacketRemuxer可携带自定义参数
q191201771 44dd886b38 [opt] 允许没有输入流时先创建rtsp SubSession
q191201771 a9b78c078d [patch] prev commit patch
q191201771 f4a0e16d7f [opt] rtmp: PullSession支持配置是否复用接收message时的内存块
q191201771 a87dde8eb3 [doc] rtmp2mpegts
q191201771 7a1ebea808 [patch] version v0.30.1
q191201771 bfb08435fa [refactor] HTTP-API: 所有事件都包含的公共字段聚合到EventCommonInfo中
q191201771 fdf680b29a [refactor] rtmp: ServerSessionType -> SessionStat
q191201771 a15abfb2e3 [doc] aac: AudioObjectType
q191201771 c9c735bdb2 [patch] update version
q191201771 f3afb0479c [patch] 修改cwd等
robin daf38f25df HTTP-Notify增加hls生成ts文件的事件回调
q191201771 26a10947e3 [refactor] rename HttpSubSession -> BasicHttpSubSession
q191201771 6db521f41e [log] 访问非法HTTP-API路径时打印警告日志
q191201771 deb0732a90 [patch]
q191201771 a8be7154d7 [patch]
q191201771 c5b701a537 [fix] 修复rtmp转ts时,265判断错误
q191201771 281061d835 [patch]
ZSC714725 1357fa5db7 rtsp server support digest auth
q191201771 ad376bcc64 [patch] prev commit patch
q191201771 b545364ac1 [patch] prev pr patch
yoko ae256fafa5
Merge pull request from ZSC714725/rtsp-auth
[feat] rtsp server support basic auth 
ZSC714725 b3d142503c rtsp server support basic auth
q191201771 cd8878ebf5 [fix] lalserver: relay push判空错误导致崩溃
q191201771 def036c0a2 [fix] rtmp: 解析amf, object中嵌套object导致崩溃
q191201771 90cb1e023b prev pr patch
q191201771 b3d190b20d [fix] lalserver: 修复竞态条件下接收rtsp流崩溃的bug
yoko 38f87d608e
Merge pull request from ZSC714725/aac
[opt] aac: 补全AscContext.samplingFrequencyIndex采样率的取值
zang191993@163.com 01a079accf Supplementary AAC
q191201771 60d52898c3 [refactor] 整理session stat相关的代码
q191201771 b1f197d1c5 [fix] rtmp.ChunkComposer的error日志中的对象写错了
q191201771 5ef6241749 [refactor] 将所有session的ISessionStat的实现聚合到BasicSessionStat
jevian_ma(马作伟_沃航科技) 170a51cbc8 修复http api /api/ctrl/start_relay_pull无法工作的bug.
q191201771 720ca9d6ff [refactor] 整理代码
q191201771 1fee00c317 [opt] HTTP-API: 将start_relay_pull的重试次数的默认值修改为0
q191201771 6c61b1329d prev pr patch
q191201771 bcec3d1938 [patch] code format patch
ZSC714725 f14fdf974f rtmp pushclient support adobe auth
ZSC714725 e88ae8f572 rtmp pushclient support adobe auth
ZSC714725 52ab21d0b3 rtmp pushclient support adobe auth
q191201771 f1118f8fb8 Merge branch 'master' of https://github.com/q191201771/lal
q191201771 133393b94c - [feat] HTTP-Notify增加on_relay_pull_start和on_relay_pull_stop回调 -[feat] lalserver: HTTP-API: start_relay_pull接口增加rtsp_mode参数
yoko 7883780f6d
Merge pull request from joestarzxh/master
[fix] 修正psPackStartCodePackEnd
joestarzxh 6528c00d12 [fix]修正ps解析定义错误
q191201771 56543378d0 [patch] HTTPAPI: 1. 完善relay pull回源相关的功能 2. kick_session支持踢掉pull session
KevinZang 18a3970e8e
Merge branch 'master' into rtmps
zang191993@163.com 1e5d9ca926 lal support rtmps
q191201771 a7545736e8 Merge branch 'master' of https://github.com/q191201771/lal
q191201771 5ad85415ba - [feat] HTTPAPI: 1. 新增stop_relay_pull接口 2. start_relay_pull接口增加自动关闭,重试次数等参数 - [refator] 整理配置文件控制的静态回源拉流功能
joestarzxh fd27e617d1 [feat]调整ps解析逻辑
joestarzxh 29446d0ef3 [feat]修正ps解析第一帧pts为0逻辑
joestarzxh cbd32f09d7 [feat]精简ps视频流解析代码,并处理外部rtp的时间戳
joestarzxh 01abed7b34 [feat]gb ps音频部分先加人缓存后再根据时间戳来回调
joestarzxh 8b3958fe28 [feat]GB28181 ps解析补充完整
q191201771 3b6ae774e8 [feat] lalserver: HTTP API新增start_relay_pull接口,并同时支持rtmp和rtsp
q191201771 a8b79d0f18 - [feat] 新增remux.Rtmp2AvPacketRemuxer - [refactor] 新增package h2645
q191201771 a3bd0bc0cb [refactor] 整理logic.Group中relay pull的代码
q191201771 3feaa3b108 [fix] rtsp: 修复url path路径不存在时,url解析失败的问题
q191201771 dbd73c3436 v0.29.1 -> CHANGELOG.md
q191201771 f551dbfa65 [patch] prev pr patch
yoko 120afe8592
Merge pull request from joestarzxh/master
[feat] rtmp: pull session增加ack应答,提高兼容性
joestarzxh 6107a5ecd4 [feat]rtmp ack PeerWinAckSize属性修正一下
joestarzxh b0e201d4d4 [feat]rtmp ack PeerWinAckSize改由options设置
q191201771 8482b9e0c6 [refactor] base.AvPacket的时间戳类型修改为int64, avpacket_stream.go移入package base
joestarzxh 4385e40bec [feat]rtmp pull增加ack应答提高兼容性
q191201771 d2b80a4c47 [feat] customize pub支持叠加静音音频数据
q191201771 09f903d5ca [opt] demo: 优化customize pub,匀速发送流,避免卡顿
q191201771 c54b7cace3 [perf] mpegts: 加大内存预分配大小
q191201771 0d50db006c Merge branch 'master' of https://github.com/q191201771/lal
q191201771 f3abd233a3 prev commit patch
q191201771 6718316ae9 [feat] demo: customize_lalserver,演示向lalserver中输入音频加视频
zang191993@163.com 812cb867fb solve hevc parse sps error
q191201771 eb7bb115d8 [feat] lalserver支持集成自定义协议的输入流
q191201771 c698bf1b61 [fix] 增强兼容性,rtmp转mpegts时,使用nalu中的sps和pps
yoko 7b35716b4e
Merge pull request from Kouse-Datura/master
[fix] 修复rtmp拉流鉴权的问题
kouse 06f98fac73 [fix]修复rtmp拉流时无法进行鉴权的问题
q191201771 c11fb8081f [patch] 为pr 补充一些注释以及文档说明
suizg cc7326ed67 [fix] rtsp send audio and video out of sync
q191201771 c0966137e1 prev commit patch
joestarzxh 40404507d8 [fix]解决#140 rtsp接收h265 Nal类型不全的问题
q191201771 66b3baff51 [feat] gb28181: 一部分解析ps流的代码,进行中
q191201771 9969144c89 patch
q191201771 4e0db49b18 [refactor] 代码整理:检查rtmp msg长度有效性
joestarzxh 7d1fb50a75 [fix]rtmp2rtsp中数据包太小的过滤
Abrar Ahmed f5ed97ac00
Bug fix - Allow standalone Mpegts recording
Bug fix - Allow standalone Mpegts recording without enabling record flv
q191201771 8824038415 - [refactor] 转换mpegts使用remux.Rtmp2MpegtsRemuxer不再依赖hls.Muxer - [opt] lalserver: relay push增加超时检查,增加带宽统计 - [refactor] 所有interface类型以i字母开头
q191201771 c2fa468162 [feat] avc: 新增Annexb2Avcc函数
q191201771 0ebe60ae98 [opt] lalserver: rtsp sub也支持触发relay pull
q191201771 151835d28b [opt] lalserver: relay pull的rtmp流也转换为rtsp
Abrar Ahmed 738bcb77da
Fix hls.enable: false causes runtime error
Fix 
q191201771 812f9bf314 [patch] logic: 重构group
q191201771 bad53e57dd [fix] aac: 支持22050采样频率,修复该频率下转rtsp失败的问题
q191201771 93302705c7 [feat] httpts支持gop缓冲,提高秒开
q191201771 aa480aa3ec [log] rtmp: 优化定位问题的日志
q191201771 0f0584adcf [fix] avc: 增强兼容性,处理单个seq header中存在多个sps的情况
q191201771 3c5671b80c Merge branch 'master' of github.com:q191201771/lal
q191201771 b4c85d98ec [fix] rtsp: 增强容错性,修复rtmp输入流没有seq header时,rtmp转rtsp内崩溃的问题
joestarzxh b775a63d50 [feat]补充rtsp Basic论证测试例子
joestarzxh ca8923afca [feat]补充rtsp Basic论证测试
joestarzxh f982ab912a [fix]rtsp Basic论证为base64
q191201771 92c0c723a6 [perf] mpegts: 优化转换mpegts的性能
q191201771 11c412cf84 - [refactor] 将rtmp转ts的代码从hls重构至remux中 - [fix] mpegts: 修复单音频场景,有一帧音频重复的问题
q191201771 3f177e6b68 [feat] avc: new func Avcc2Annexb
q191201771 8c0d272fad 1. [refactor] 重构logic.Group 2. [test] 修复CI环境的innertest
q191201771 c3314bc7d2 [test] innertest开启音视频和单音频和单视频三种情况的测试
q191201771 b211e0f2de [refactor] 整理Group代码
q191201771 228f37bd4f [fix] 优雅关闭: 关闭pprof和http server
q191201771 f87903761c [test] innertest可测试单音频和单视频的情况
q191201771 443c9e39b9 1 [test] innertest增加httpts sub测试 2 [refactor] rtmp转mpegts的代码从package hls重构到remux(进行中)
q191201771 abf50b107d - [refactor] 规范所有导出符号的注释 - [refactor] base.ReadableNowTime()
q191201771 0f21334964 [opt] 支持pkg层面控制日志
joestarzxh 99e60dab55 [opt]rtsp sub 阻塞发送修改为异步发送
q191201771 f8f3f64c54 [refactor] all demo LogoutStartInfo
q191201771 fdaf48528e [opt] rtmp和rtsp收包时添加trace级别日志
q191201771 86c4b950db [feat] hls: 增加delete_threshold配置,用于配置过期TS文件的保存时间
q191201771 1c359086fa v0.27.1 -> version.go
q191201771 66aaf07216 [chore] release包中包含https的签名文件
q191201771 0548c2d287 v0.27.0 -> version.go
q191201771 5e5e96f73a [test] innertest增加m3u8文件检测
q191201771 1b5493ef9b [refactor] 通过配置文件控制group调试日志
q191201771 b1e0eac902 [fix] 修复simple auth模块里hls无法关闭鉴权的问题
q191201771 1106c33b2f prev commit patch
q191201771 f16b1f8d4f - [feat] simple auth增加支持rtsp,httpts,hls协议 - [feat] simple auth鉴权可配置后门鉴权参数 - [opt] simple auth鉴权参数的md5值兼容大小写
q191201771 20d5d56690 [fix] 增强兼容性,当收到的rtmp message中aac seq header payload长度为0时忽略,避免崩溃
q191201771 57ad766d34 [feat] 新增simple auth鉴权功能,rtmp,httpflv支持md5鉴权
q191201771 c81a840e4a [opt] avc: 增强兼容性,分隔avcc格式的nal时,如果存在长度为0的nal则忽略
q191201771 8154e40069 [test] innertest http api
q191201771 ca3797c822 [refactor] prev pr patch
joestarzxh ca4faccfcc [fix]rtmp_t修改未提交
joestarzxh db2950ac69 [fix] rtmp 解决未处理PingRequest 回应
q191201771 03ccfa0e5f 1. rtmp.PushSession和PullSession可配置WriteBuf和ReadBuf大小,以及WriteChanSize 2. 整理完所有error返回值 3. 提高测试覆盖率
q191201771 83aa44eebe [refactor] error信息更友好
q191201771 ad547d0010 [test] 提高测试覆盖
q191201771 3b0465b5fc [refactor] 增强兼容性: https服务初始化失败时打印错误日志而不是退出程序
q191201771 9e74f5f036 [test] 修复base/url_test.go中的测试用例
q191201771 cce165b16c [fix] 增强兼容性,当收到的rtmp message中的payload长度为0时,则忽略
q191201771 b0bc51c239 [feat] httpflv.PullSession支持https,支持302跳转
q191201771 505cf2e834 [chore] 修复go vet对于signal unbound channel的警告
q191201771 99a2331935 update naza
q191201771 170e1d24e1 [log] rtsp client信令增加错误日志
q191201771 875569edb3 [refactor] 把base.Buffer移到naza库中
q191201771 d5c7047295 patch
q191201771 451299a3df [fix] 增强兼容性: sdp中fmtp内发生换行时做兼容性处理
q191201771 dacfa3d041 [fix] 修复logic.Option.NotifyHandler首字母小写外部无法设置的问题
q191201771 a3ae15543f [refactor] 将logic包中的DummyAudioFilter, GopCache, LazyRtmpChunkDivider, LazyRtmpMsg2FlvTag移入remux中
q191201771 39ccc1b911 [refactor] rtmp: 使用base.Buffer
q191201771 ffdb1c7c08 [fix] 修复httpflv多级路径下无法播放的问题
q191201771 eb742feb8d 测试各session的ISessionUrlContext接口
q191201771 efcc4ebed4 [fix] windows build
q191201771 5a57212fd4 v0.26.0 -> version.go
q191201771 e3578157f4 mod messages:
- [perf] rtmp合并发送功能使用writev实现
- [refactor] 可定制性: logic: 抽象出ILalServer接口;业务方可在自身逻辑中创建server,选择是否获取notify通知,以及使用api控制server
- [refactor] 兼容性: 再增加一个配置文件默认搜索地址
- [refactor] 可读性: logic: ServerManager和Config不再作为全局变量使用;去除entry.go中间层;iface_impl.go移入innertest中;signal_xxx.go移入base中
q191201771 7d6c38a66b [feat] package rtmp: ServerSession增加Writev函数
q191201771 61687aaf8a patch
q191201771 ccc94c9860 [refactor] logic中流媒体服务于http notify再增加一层中间层notify,便于业务方定制自己的业务逻辑
q191201771 422e03cfdb patch
q191201771 e40167d506 [feat] 检查所有配置项是否存在
q191201771 8aa2318465 [test] 增加group manager的单元测试
q191201771 a21c3760b4 [feat] lalserver logic: 实现ComplexGroupManager
q191201771 3aa7f91b2a [log] 输入的rtp包格式错误
q191201771 d6f7db9d8b [log] 输入的rtmp包格式错误
q191201771 d17ef10d25 [feat] 兼容两个不太标准的sdp格式(a=fmtp的前面或后面有多余的分号)
q191201771 151db29064 [test] 去掉单元测试时不必要的错误日志
q191201771 11659e10cc [refactor] logic: 新增GroupManager,管理所有Group
q191201771 2d77d7cbd7 [log] aac解析失败日志
q191201771 2b8e11e900 [doc] base.HttpServerManager增加日志
q191201771 f7664d8eb9 [log] hls中分割nalu增加日志
q191201771 4f4a566a3a [doc] 文件头增加许可证声明
q191201771 674b051cf4 prev commit patch
q191201771 2c913f41e3 [feat] 为rtmp pub推流添加静音AAC音频(可动态检测是否需要添加;配置文件中可开启或关闭这个功能) ()
q191201771 03c459a024 [refactor] httpflv.Sub和httpts.Sub显式调用base.HttpSubSession的函数
q191201771 812cfd8a55 [chore] 增强健壮性:package rtmp: 对端协议错误时,主动关闭对端连接而不是主动panic
q191201771 5abe86b687 [refactor] package avc: 重新实现sps的解析
q191201771 abb92c9074 Merge branch 'master' of github.com:q191201771/lal
q191201771 6d2bf2556d [feat] 优化和统一所有client类型session的使用方式:session由于内部或对端原因导致关闭,外部不再需要显式调用Dispose函数释放资源
Evrins Hu 3c10c27b47 [feat] fallback to MD5 auth algorithm if missing auth algorithm
海康某一款摄像头返回的认证信息中不包含 algorithm 信息,但是可以使用 md5 来进行认证
Digest realm="IP Camera(F5390)", nonce="21485f706d35a19f62245161867144d6", stale="FALSE"
q191201771 528444e582 messages:
- [refactor] 使用httpflv.Tag.Payload()
- [refactor] 新增函数remux.FlvTag2RtmpChunks()
q191201771 7cf1e03707 [refactor] 整理logic/group的代码
q191201771 149f62249b [fix] rtsp信令打包中部分字段缺少空格
q191201771 375d53fca6 v0.24.0 -> version.go
q191201771 41e364a016 comment
q191201771 37dc49ec51 [fix] 修复rtsp sub session没有正常释放导致协程泄漏的问题
q191201771 bf9c621d60 () [test] rtmp amf object中包含null类型的单元测试
ShiBen 5e3bba6aed Merge branch 'master' of https://github.com/BenLocal/lal
ShiBen aeb2455c23
Merge branch 'q191201771:master' into master
ShiBen ac70d57bac fix#102
ShiBen 4f7560fbee fix#102
q191201771 ef8b3d592e () [fix] hls.Muxer没有设置回调导致崩溃
q191201771 4cea1b8cf5 [fix] 确保rtsp sub拉流从关键帧开始发送数据,避免因此引起的花屏
q191201771 d11074958d () [feat] lalserver支持用rtsp协议拉取rtmp的推流
q191201771 cf489cf16d prev commit patch
q191201771 1db76a4e46 [fix] rtmp信令打包参考本地chunk size
q191201771 1f97f1ef50 [fix] rtmp client session兼容对端回复两次publish或play信令的情况
q191201771 7281e62195 () [fix] aac rtp打包
joestarzxh b7e7d42f8a [feat]rtsp补充存在两种论证时的测试
q191201771 cfabc9043c [feat] 新增demo pullrtmp2pushrtsp
q191201771 77c624ab03 [fix] aac rtp打包
q191201771 68470dea1f [fix] rtsp兼容,有的摄像头sdp中包含aac,但是没有config字段(后续也没有aac rtp包),导致连接失败
q191201771 44443c1c1d prev commit patch
joestarzxh 34d33ac026 [feat]FeedWwwAuthenticate中传递string切片,rtsp论证逻辑有此函数处理
joestarzxh 264a53f667 [feat]使用官方 http.Header 替换原来http的头
joestarzxh a224057363 [fix]rtsp论证只取第一个wwwAuthenticate
joestarzxh 94218d5221 [fix] 修正rtsp论证同时存在Digest,Basic时优先Digest论证
q191201771 e386cfee9f () [feat] rtp aac打包
q191201771 32f5465ec9 () [feat] sdp打包
q191201771 0e409102a0 () [feat] package rtprtcp: 支持h265 rtp打包
q191201771 6c6999d7f1 [refator] package httpflv: 新增FlvFilePump,可循环匀速读取flv文件
q191201771 293fd4d607 [refactor] export aac.AdtsHeaderLength
q191201771 1bc140717c [test] sdp test case
q191201771 e8bba061cb () [fix] http服务全部配置为不使用,启动lalserver时指针缺少判空导致崩溃
q191201771 7459a1812a () [fix] 修复rtp h264打包nal type重复的问题
q191201771 7d8883f1db messages:
- [feat] package rtprtcp: 增加RtpPacker用于打包RtpPacket;RtpPackerPayloadAvc支持多种输入形式
- [feat] package aac: 增加adts,asc,seqheader间的转换代码;重构了整个包
q191201771 b11db88259 [refactor] avc.ParseSpsPpsFromSeqHeader, avc.ParseSpsPpsFromSeqHeaderWithoutMalloc, hevc.ParseVpsSpsPpsFromSeqHeader, hevc.ParseVpsSpsPpsFromSeqHeaderWithoutMalloc
q191201771 731bed099a () [refactor] 重构lal整个项目的命名规则
q191201771 d70848d092 [patch] AVPacket2RTMPRemuxer中sps的空值判断
q191201771 24e8887ef8 [feat] 支持海康威视NVR,大华海康IDC的RTSP流(SDP不包含SPS、PPS等数据,而是通过RTP包发送)
q191201771 48a8d8da7b [refactor] package avc: func SplitNALU***, IterateNALU***
q191201771 a41dc6d8ee messages:
1.  [fix] gop缓存设置为0时,可能花屏
2.  [fix] rtmp merge write开启时,可能给新加入的sub session发送错误的数据
q191201771 0cf8660d17 messages:
-  [feat] lalserver: httpflv,httpts,hls的url pattern路由路径可以在配置文件中配置
-  [feat] hls默认提供两种播放url地址
-  [refactor] package hls: 将http url路径格式,文件存储路径格式,文件命名格式,映射关系抽象出来,业务方可在外层实现IPathSolver接口做定制
q191201771 229b55936d [feat] 合并发送
q191201771 9d61f04b62 [feat] package rtprtcp: 增加RTPPackerAVC,用于将h264 Nalu包切割成RTP包
q191201771 1fb817e74b Merge branch 'master' of https://github.com/q191201771/lal
q191201771 5333a97b32 [refactor] package avc: add func IterateNALUStartCode, IterateNALUAnnexB, IterateNALUAVCC
joestarzxh ec83e0260e [fix]修正HTTP升级为WebSocket时不需要包含包体
q191201771 344a2c82b1 messages:
- [feat] HTTP端口复用:HTTP-FLV, HTTP-TS, HLS可使用相同的监听端口。HTTPS类似 
- [feat] HTTPS:支持HTTPS-TS, HLS over HTTPS(之前已支持HTTPS-FLV) 
- [feat] WebSocket:支持WebSocket[s]-TS(之前已支持WebSocket[s]-FLV)#66
- [feat] 配置灵活。增加`default_http`。HTTP-FLV,HTTP-TS,HLS可以独立配置监听地址相关的项,也可以使用公共的`default_http`
- [refactor] 重构httpflv.SubSession和httpts.SubSession的重复代码
q191201771 c0d600ea1b v0.22.0 -> version.go
q191201771 8bf0331b24 messages:
- [feat] h265新增支持: hls拉流,hls录制;http-ts拉流,mpegts录制。h265支持列表见: https://pengrl.com/lal/#/LALServer ()
q191201771 7167d41fb5 [refactor] rtprtcp: 暴露RTPPacketList的属性 ()
q191201771 e4df7af23b [refactor] package rtmp: rtmp.ClientSession支持配置选择简单握手或者复杂握手, 默认使用简单握手 ()
q191201771 d5d67a51a2 [feat] 支持录制flv和ts文件
q191201771 2e0615b496 patch
q191201771 f26092b890 patch
q191201771 158811d0e8 [fix] rtmp ClientSession握手,c2的发送时机,由收到s0s1s2改为收到s0s1就发送,解决握手失败的case
joestarzxh dece388f71 [style]websocket相关代码调整
joestarzxh ec225fd012 [style]websocket单元变量名称修改一下
joestarzxh 3c1d94eb56 [feat]支持ws-flv,ws-ts
q191201771 6b6f227858 [fix] 修复使用ffmpeg向lalserver推送rtsp h265流时报错
q191201771 291ceda116 [feat] hls支持内存切片
joestarzxh 5250b1a0d0 [fix]rtsp转rtmp腾讯X5播放器无法播放H265
joestarzxh cb7f681bae [fix] rtsp中关键数据解析错误时不返回错误,使rtsp能够正常转发
joestarzxh b412473a5a [fix] 解决h265 rtsp转rtmp无法解析出关键帧导致腾讯x5无法播放
q191201771 d352a8bc1a v0.21.0 -> version.go
q191201771 b180363f76 patch
q191201771 736eb0c1b4 Merge branch 'master' of https://github.com/q191201771/lal
q191201771 2c5bb92601 messages:
- [fix] package rtsp: 修复rtsp aac可能出现崩溃。支持aac fragment格式(一个音频帧被拆分成多个rtp包)
- [feat] lalserver: 新增配置项hls.cleanup_mode,支持三种清理hls文件的模式,具体说明见 https://pengrl.com/lal/#/ConfigBrief
- [doc] 启用英文版本README.md作为github首页文档展示
- [refactor] package rtprtcp: 重构rtp unpacker,业务方可以使用默认的container,protocol策略,也可以自己实现特定的协议解析组包策略
- [refactor] lalserver: 整理配置文件加载与日志初始化部分的代码
- [doc] lalserver: 新增配置项conf_version,用于表示配置文件的版本号
- [doc] lalserver: 启动时日志中增加lal logo
- [doc] 新增文章《rtmp中的各种ID》,见 https://pengrl.com/lal/#/RTMPID
- [doc] 新增文章《rtmp handshake握手之简单模式和复杂模式》,见 https://pengrl.com/lal/#/RTMPHandshake
q191201771 ad4f458899 prev commit patch: fix aggregate message
q191201771 f3078efc3c prev commit patch: fix aggregate stream
q191201771 7ce0ad4f35 prev commit patch: fix aggregate timestamp
q191201771 f4c5b91794 [refactor] rtmp aggregate message
joestarzxh 3fa57acfc7 [fix]修正RTMP aggregate 时间戳问题
joestarzxh efdd0eaa6b [fix]忘记的文件,rtmp 支持Aggregate Message
joestarzxh 55a690a989 [feat]rtmp 支持Aggregate Message
joestarzxh 748e1ee09a [fix]解决rtsp sub无响应的问题
q191201771 8c0da36846 fmt
q191201771 15af15fb13 [refactor] package rtprtcp: 重构一些函数名
q191201771 8aea2a98ae [fix] rtsp推流时,rtp包时间戳翻转导致的错误(比如hls一直强制切片)
q191201771 9bb3dac3d1 [fix] 修复lalserver中(rtsp.BaseInSession以及logic.Group)的一些竞态读写,https://github.com/q191201771/lal/issues/47
q191201771 a25b5e4ad0 v0.20.0 -> version.go
q191201771 3df6ee4027 1. [refactor] 使用新的unique id生成器,提高性能 2. [refactor] 统一各Session接口
q191201771 c5f756a51d [fix] 修复32位arm环境使用rtsp崩溃
q191201771 4a48518f5a 1. [feat] 新增app/demo/calcrtmpdelay,可用于测量rtmp服务器的转发延时 2. [refactor] 重构app/demo/pullrtmp2pushrtmp的对象管理逻辑
q191201771 fd0f71f9af [feat] app/demo/pushrtmp 做压测时,修改为完全并行的模式
q191201771 9971c9867a Merge branch 'fix-lack_of_unlock_group'
q191201771 42b7c97e0b v0.19.1 -> version.go
q191201771 98e63a62a2 [fix] 获取group中播放者数量时锁没有释放,导致后续无法转发数据
q191201771 5993af7456 [fix] 获取group中播放者数量时锁没有释放,导致后续无法转发数据
q191201771 e1b89c7eff messages:
- [feat] http notify,session增加完整url字段
- [feat] http notify,补全所有session类型
- [refactor] 重构/app/demo/pullrtmp2pushrtmp
q191201771 68e3557684 v0.19.0 -> version.go
q191201771 37d8d1738d messages:
- [doc] 启动lal官方文档页: https://pengrl.com/lal
- [doc] 新增文档《rtmp url,以及vhost》: http://pengrl.com/lal/#/RTMPURLVhost
- [feat] demo,新增/app/demo/pullrtmp2pushrtmp,从远端服务器拉取RTMP流,并使用RTMP转推出去,支持1对n转推
- [fix] rtsp,setup信令header中的transport字段区分record和play,record时添加mode=record
q191201771 1224afe201 messages:
- [fix] rtsp,client session的所有信令都处理401 auth
- [fix] rtsp,in session使用rtp over tcp时,收到sr回复rr
- [fix] avc,整体解析sps数据失败时,只解析最基础部分
- [feat] windows平台下,执行程序缺少运行参数时,等待用户键入回车再退出程序,避免用户双击打开程序时程序闪退,看不到提示信息
- [chore] Go最低版本要求从1.9上升到1.13
q191201771 33fe194d40 messages:
- [feat] rtsp,PushSession支持auth,interleaved
- [refactor] rtsp,新增ClientCommandSession,将PushSession和PullSession中共用的信令部分抽离出来
- [refactor] rtsp,新增BaseOutSession,将PushSession和SubSession中共用的发送数据部分抽离出来
- [refactor] rtsp,整理所有session,包含生命周期,ISessionStat、IURLContext、Interleaved收发等函数,整理debug日志
joestarzxh 3af1816e46 [fix] RTSP支持Basic方式auth
q191201771 766573741e messages:
- [feat] rtsp,实现PushSession
- [feat] demo,新增app/demo/pullrtsp2pushrtsp,可拉取rtsp流,并使用rtsp转推出去
- [refactor] rtsp,重构部分逻辑,聚合至sdp.LogicContext中
q191201771 7dcd4a6b73 [fix] rtsp,输入流只有单路音频或视频时,接收对象设置错误导致崩溃
q191201771 1a0232f779 [fix] rtsp,只有输入流中的音频和视频格式都支持时才使用queue,避免只有音频或视频时造成延迟增加
q191201771 156cfff22c v0.18.0 -> version.go
q191201771 942b5da52d messages:
- [feat] rtsp,pull支持interleaved(over tcp)模式。demo/pullrtsp2pushrtmp和demo/pullrtsp可通过运行参数选择是否使用over tcp模式
- [feat] rtsp,pull支持auth digest验证
- [feat] rtsp,pull支持定时发送GET_PARAMETER rtsp message进行保活(对端支持的情况下)
- [fix] rtsp,输入流音频不是AAC格式时,保证视频流可正常remux成其他封装协议
- [fix] rtsp,pull开始时发送dummy rtp/rtcp数据,保证对端能成功发送数据至本地
- [fix] rtsp,将以下包返回给上层:rtsp pub h265, single rtp packet, VPS, SPS, PPS, SEI
- [fix] rtsp,修改rtsp.AVPacketQueue的行为:当音频或者视频数量队列满了后,直接出队而不是丢弃
- [fix] sdp,修复解析及使用sdp错误的一些case
- [refactor] rtmp/httpflv/rtsp,统一所有PullSession:超时形式;Pull和Wait函数
- [fix] avc,尝试解析scaling matrix
q191201771 89f0442ee1 commit messages:
- 增加demo程序:`/app/demo/pullrtsp2pushrtmp`,可拉取rtsp流,并使用rtmp转推出去
- 所有session实现ISessionURLContext接口,用于获取流url相关的信息
- 所有session实现ISessionStat接口,用于计算、获取bitrate等流相关的信息
- 重构所有client session解析url的地方
q191201771 5df6f4b94e commit messages:
- [feat] 新增rtsp pull拉流客户端,`/app/demo/pullrtsp`
- [feat] 实现rtsp pull session
- [feat] rtsp sub支持interleaved模式
- [feat] 新增package remux
- [refactor] 整体重构package rtsp
- [fix] 正确处理大于2字节的AudioSpecificConfig
q191201771 fa6599deff messages:
- [feat] rtsp pub -> rtsp sub
- [refactor] 整体重构package rtsp,未完成
- [feat] rtsp pub -> relay rtmp push
xianghan228@qq.com 013a26af71 跳出循环,让conect 关闭,释放资源
xianghan228@qq.com 6f76c0f6cf Update server.go
#bug RTP视频通道设置不正错
xianghan228@126.com 219b9fd931 support rtsp over tcp to push stream
q191201771 0935c58a0d [patch] prev commit patch
q191201771 34bd5cf004 commit messages:
- `/app/demo/dispatch`处理`on_update`事件回调
- HTTP Notify增加新事件回调`/on_server_start`
- HTTP API `/api/stat/lal_info` 中增加`server_id`字段
- 增加`gen_tag.sh`,用于打tag
q191201771 08287e7b8b [patch] http notify v0.0.3
q191201771 a58a2ce60c 1. [feat] 配置文件中支持配置是否清除过期流的HLS文件 2. [feat] 增加HTTP API接口`/api/ctrl/kick_out_session`,用于踢掉指定的session 3. [feat] HTTP Notify事件回调中的session结构体都增加session id字段
q191201771 adcb4935ad [fix] relay push with url param
q191201771 c3aac90cc9 1. [feat] lalserver的session增加存活检查,10秒没有数据会主动断开连接 2. [feat] lalserver的group没有sub拉流时,停止对应的pull回源 3. [feat] HTTP Notify事件回调中,增加`on_rtmp_connect`
q191201771 1e3358c80b 1. [feat] 增加HTTP Notify事件回调功能,见 https://pengrl.com/p/10101 2. [feat] HTTP API中,增加`/api/ctrl/start_pull`接口,可向lalserver发送命令,主动触发pull回源拉流 3. [feat] HTTP API中,group结构体中增加pull结构体,包含了回源拉流的信息 4. [fix] 通过配置文件静态relay push转推时,push rtmp url透传pub rtmp url的参数
q191201771 e5788aeadd [feat] 一部分rtsp sub的代码
q191201771 61e0c78f89 v0.16.0 version
q191201771 9351c3a1d0 [fix] 修复rtsp pub推流时,纯视频(没有音频)流处理的问题
q191201771 678dd5c8f2 [feat] HTTP API增加/api/list页面,展示所有接口的列表
q191201771 f2fc9a741a 增加HTTP API接口,获取服务信息
q191201771 d7df4d9623 [feat] 支持rtsp pub h265 (lalserver支持接收rtsp h265的推流)
q191201771 bb9cbb9481 [feat] 解析hevc的vps, sps, pps,使用vpsspspps构造seq header