Commit Graph

65 Commits (ad376bcc64215ff47f7d009c27324c806be00229)

Author SHA1 Message Date
q191201771 9af3b44753 Changes:
- [refactor] app/lals重命名为app/lalserver,避免描述时容易和lal造成混淆
 - [refactor] 将app/lalserver的大部分逻辑代码移入pkg/logic中
 - [test] 将所有package的Server、Session等内容的实例测试收缩至package innertest中,多个package都可以共用它做单元测试
 - [refactor] lalserver配置中增加显式enable字段,用于开启关闭特定协议
 - [refactor] 各package的Server对象增加独立的Listen函数,使得绑定监听端口失败时上层可以第一时间感知
 - [feat] demo/analyseflv,增加I帧间隔检查,增加metadata分析
 - [fix] package avc: 修复函数CalcSliceType解析I、P、B帧类型的bug
 - [refactor] package aac: 函数ADTS::PutAACSequenceHeader检查输入切片长度
 - [reafactor] package aac: 删除函数CaptureAAC
 - [feat] 增加demo/learnrtsp,pkg/rtsp,开始学习rtsp
5 years ago
q191201771 41cdddbe2f 1. [feat] 完成package hls的基础功能,并做了小范围重构 2. [feat] lals服务接入hls功能 3. [refactor] 将app目录下除lals的其他应用移入demo目录下 4. [feat] 新增两个demo:analyseflv和analysehls,分别用于拉取HTTP-FLV和HLS的流,并进行分析v0.12.3 -> CHANGELOG.md 5 years ago
q191201771 7db70fce28 1. [feat] dep naza v0.9.1 2. [docs] sync lals.default.conf.json 5 years ago
q191201771 e1f6ebdc14 1. [feat] RTMP和HTTP-FLV支持H265 2. [feat] logic支持GOP缓存 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 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 d83255eca2 日志相关的配置放入配置文件中 5 years ago
q191201771 1e7b3d81b9 mod lal.conf.json 6 years ago
q191201771 3a12daab80 日志按大小翻滚 6 years ago
q191201771 1be33f77f5 修改内容如下:
- 去除对第三方日志库seelog的依赖,自己实现了一个简单的日志模块 /pkg/util/log
- 去除对 github.com/pkg/errors 的依赖,至此,lal不依赖任何第三方库
- 从flv文件中抽取aac数据写成aac es流格式文件
- 增加 app/rtmppull,一个rtmp拉流客户端
6 years ago
q191201771 763cc241a6 mod:
* 部分rtmp回源代码
* 部分rtmp server代码
* 部分rtmp服务端握手代码
6 years ago
q191201771 c6c4c9e28a commit msgs:
* 增加rtmp.PushSession,作为rtmp推流客户端使用
* 将rtmp.PushSession和rtmp.PullSession的大部分重复代码抽离放入rtmp.ClientSession中
* 更多的rtmp pull/push的基础功能,目前pull已可以从远端拉取到音视频数据,push还差发送音视频数据的接口与实现
* 将httpflv中的Manager和Group放入更高层lal下,为以后httpflv和rtmp转换以及管理做准备
* 增加util.ConnStat用于统计和判断长连接收发数据是否超时
* 更多的AMF0格式读写,rtmp pack的读写
* 重新组织了配置文件
* httpflv.Server接收SubSession使用回调取代channel的方式
* 统一变量命名,缩写全大写
* 做了简单的压力测试
6 years ago
q191201771 bf6b9502df * PullSession和SubSession的主动关闭、被动关闭
* 引入日志库seelog,添加一些日志
* 缓存gop
* 部分解析avc seq header
6 years ago
q191201771 5a2ea4fadc 初步完成,http-flv直播流播放分发基础功能。http-flv播放,http-flv回源拉流至本地。
代码待整理。

* Group
    * 通过流名称形成群组,1对n挂载,以及广播转发数据
    * 支持配置,http-flv播放时,如果流不存在,是否从另一个节点http-flv回源拉流至本地
    * 相同的流只回源1路
    * Group内无PullSession和SubSession后释放Group
    * 支持配置,冷流超时释放时间。即无播放端时,多久后主动关闭回源的流
* PullSession - 用于回源(session作为连接主动发起端)
    * 支持配置,发起连接的超时时间
    * 连接成功后可设置tcp socket options
    * 支持对端关闭
    * 支持配置,读数据超时时间
* SubSession - 用于http-flv播放(session作为连接被动接受端)
    * 将net.conn对象传递给SubSession持有前可设置tcp socket options
    * 支持对端关闭
    * 支持配置,多长时间无数据发送,主动关闭连接
6 years ago