Commit Graph

26 Commits (f6869f2a72e5979bd077f4ad0dc2dad6d977a14c)

Author SHA1 Message Date
q191201771 afb7850b87 messages:
- [feat] lalserver集成rtsp pub功能。支持接收rtsp(rtp/rtcp)推流,转换为rtmp,httpflv,hls格式供拉流使用
- [refactor] 新增package sdp,rtprtcp,将package rtsp中对应的内容独立出来
- [refactor] 新增package base,整理lal项目中各package的依赖关系。该工作还在进行中
- [feat] package rtmp: 增加BuildMetadata函数
5 years ago
q191201771 4f8757579f messages:
- [feat] 部分rtsp代码,目前已经粗略完成pub的前期交互,可接收到rtp,rtcp数据
- [test] innertest中对hls生成的文件做md5验证
- [refactor] 整理日志
- [doc] 增加PR规范
- [chore] 下载单元测试用的test.flv失败,本地文件大小为0时,去备用地址下载
- [refactor] 所有回调函数的名字,从CB后缀改为On前缀
5 years ago
q191201771 353f837c8e messages:
- [feat] lalserver增加回源功能
- [fix] rtmp.AMF0.ReadObject函数内部,增加解析子类型EcmaArray。避免向某些rtmp服务器推流时,触发断言错误
- [fix] 解析rtmp metadata时,兼容Object和Array两种外层格式
- [refactor] 重写了lalserver的中继转推的代码
5 years ago
q191201771 b3024c8a4e messages:
- [feat] lalserver增加中继转推(relay push)功能,可将接收到的推流(pub)转推(push)到其他rtmp类型的服务器,支持1对n的转推
  - [feat] package rtmp: 新增函数amf0::ReadArray,用于解析amf array数据
  - [refactor] `rtmp/client_push_session`增加当前会话连接状态
  - [fix] demo/analyseflv: 修复解析metadata的bug
  - [perf] httpflv协议关闭时,不做httpflv的GOP缓存
  - [refactor] logic中的配置变更为全局变量
  - [refactor] lal/demo移动到lal/app/demo
  - [refactor] 日志整理
5 years ago
q191201771 e1f6ebdc14 1. [feat] RTMP和HTTP-FLV支持H265 2. [feat] logic支持GOP缓存 5 years ago
q191201771 570228f18d 1. [fix] package logic: 转发 rtmp metadata 时,message header 中的 len 字段可能和 body 实际长度不一致 2. [log] package rtmp: 一些错误情况下,对接收到包 dump hex 3. [dep] update naza -> v0.7.1 5 years ago
q191201771 5ec728359c - package rtmp:
- 增加结构体 ClientSessionOption,PushSessionOption,PullSessionOption
    - 增加结构体 AVMsg
    - ClientSession 作为 PushSession 和 PullSession 的私有成员
    - 将绝对时间戳移入到 Header 结构体中
    - PullSession::Pull OnReadAVMsg with AVMsg
    - AVMsgObserver::ReadRTMPAVMsgCB -> OnReadRTMPAVMsg
- package httpflv:
    - PullSessionOption
    - OnReadFLVTag
    - some func use Tag instead of *Tag
    - 整个包的代码做了一次整理
    - FlvFileReader 在 ReadTag 中懒读取 flv header
- package logic:
    - 使用 rtmp.AVMsg
    - 增加两个函数 MakeDefaultRTMPHeader,FLVTagHeader2RTMPHeader
5 years ago
q191201771 24f56530e9 - package logic: 将 rtmp pub session 的音视频转发给httpflv sub session
- package httpflv: ServerSubSession 使用 naza connection
- package logic: 增加 `example_test`,加载flv文件后使用rtmp推流至服务器,然后分别使用rtmp和httpflv将流拉取下来,存成文件,判断和输入文件是否相等
5 years ago
q191201771 17a053c3c2 - [代码] 默认的rtmp地址
- [代码] naza 更新为 0.4.3
- [架构调整] lal 中的服务器更名为 lals
- [其他] 从远端下载 flv 测试文件,跑单元测试
- [其他] 所有源码文件添加 MIT 许可证
- [其他] test.sh 中加入更多 go tool
5 years ago
q191201771 083d05a771 1. 从远端下载flv文件做单元测试 2. 添加微信图片 3. 所有源码文件头部添加MIT许可证 5 years ago
q191201771 747a529124 修改内容:
- 适配 naza,读取配置文件时,部分未配置的字段设置初始值
- build.sh 中 git信息单引号替换成双引号
- test.sh 中 加入 gofmt 检查
5 years ago
q191201771 84fdaa84f5 修改内容:
- package logic: 增加 func FlvTag2RTMPMsg
- package rtmp:
    - 增加 `example_test.go` 开启了一个 Server,一个 PushSession,一个 PullSession,用于测试整个 rtmp 包的流程
    - ClientSession 和 ServerSession 使用 nezha 中的 connection
    - 增加 struct ChunkDivider
    - 调整一些接口
- package httpflv:
    - 删除了 group, gop 相关的代码,后续会放入 package logic 中
- 更新 nezha -> 0.3.0
5 years ago
q191201771 7f1a48ce9b 修改内容如下:
- [结构调整] 将 app/lal 的部分代码抽离到 pkg/logic 中,使得其他 app 可以使用
- [结构调整] 将协议层 rtmp.Group 和 应用层 app/lal 中的 GroupManager 合并为 逻辑层 pkg/logic 的 Group,以后只在逻辑层维护一个 Group,用于处理各种具体协议的输入输出流的挂载
- [功能] pkg/logic 中新增 trans.go: RTMPMsg2FlvTag
- [功能] PubSession 退出时,清空缓存的 meta、avc header、aac header
- [功能] PubSession 已经存在时,后续再连接的 Pub 直接关闭掉
- [功能] app/rtmppull 存储为flv文件
- [优化] chunk divider: calcHeader 在原地计算
- [其他] rtmp 中所有 typeid 相关的类型 int -> uint8,msgLen 相关的类型 int -> uint32
- [其他] 更新 nezha,新版本的日志库
- [其他] 整理日志
- [其他] pprof web 地址放入配置文件中
- [测试] 使用一些开源工具对 app/lal 做推流、拉流测试
5 years ago
q191201771 25523bcf6c -) 增加 rtmp.HandshakeClientComplex 复杂握手模式 -) 整理一些 struct 的 Dispose 方法 -) 整理日志 -) 增加一些单元测试和 benchmark -) 整理 lal 项目的 roadmap -) 更新 nezha 版本至 0.1.0 5 years ago
q191201771 bce56313ae app lal: 接收 USER1 USER2 信号,优雅退出 5 years ago
q191201771 07a6e6702e 整理代码 5 years ago
q191201771 49668ea9b5 prev commit patch 5 years ago
q191201771 8741d6b3dc 1). rtmp.ServerSession bugfix: 做 group 匹配时使用去除 url 参数的 streamName 2). rtmp.Group 增加 UniqueKey 5 years ago
q191201771 8830ef6db6 1). app/flvfile2rtmppush 优化平稳推流 2). app/modflvfile 使用 log.FatalIfErrorNotNil 3). rtmp.ClientSession bugfix 信令中的 streamName 携带 url 参数,匹配 group 时不携带 4). rtmp.ServerSession 中处理 typeidAck 5 years ago
q191201771 e14a18e4a3 删除 /pkg/util ,这部分内容移入至另一个仓库 github.com/q191201771/nezha 6 years ago
q191201771 0437993a24 提交信息:
* rtmp音频直接转发,不等待视频
* 新增 /pkg/util/assert 用于替换单元测试中的 stretchr/testify/assert
* 补充一些单元测试
6 years ago
q191201771 472b299124 log 6 years ago
q191201771 b770eeb48b 增加 /app/httpflvpull , http-flv拉流客户端 6 years ago
q191201771 8ae5a84133 COMMIT MSG:
* 增加 /app/modflvfile 用于修改flv文件
* 解决ffmpeg推rtmp时,时间戳过大fmt为3,依然有ext ts字段的问题
* 去除 /pkg/rtmp 下的 server_pub_session.go 和 server_sub_session.go,都
聚合在 server_session.go 中
6 years ago
q191201771 79ebdbe8c8 commit messages:
* rtmp.ServerSession 使用channel发送数据,增加Dispose方法
* rtmp.Group 缓存avc header,aac header
6 years ago
q191201771 ca27679b9d commit messages:
* 加入编译时信息bininfo
* 将rtmp.PubSession的数据转发给rtmp.SubSession,目前先sub再pub可以播放了
* 将lal.Group的功能拆分成httpflv.Group和rtmp.Group两部分
* 整理pkg和/pkg/util包
6 years ago