Commit Graph

40 Commits (master)

Author SHA1 Message Date
q191201771 8b509a0dc0 unit test for prev commit 6 months ago
q191201771 e5a582bff1 [chore] 提交git时忽略._*.go文件,make clean时清除这些文件 9 months ago
q191201771 e305a76ffb doc 10 months ago
q191201771 ff751407d4 gitignore 2 years ago
q191201771 c698bf1b61 [fix] 增强兼容性,rtmp转mpegts时,使用nalu中的sps和pps 3 years ago
q191201771 6084827c00 [chore] 单元测试结束后清理垃圾文件 3 years ago
q191201771 d5c7047295 patch 3 years ago
q191201771 2c913f41e3 [feat] 为rtmp pub推流添加静音AAC音频(可动态检测是否需要添加;配置文件中可开启或关闭这个功能) (#56) 3 years ago
q191201771 2fc5c3194a [chore] 增强易用性:修改配置文件中的默认配置:hls、flv、mpegts的文件输出地址由绝对路径/tmp修改为相对路径./lal_record 3 years ago
q191201771 6d2bf2556d [feat] 优化和统一所有client类型session的使用方式:session由于内部或对端原因导致关闭,外部不再需要显式调用Dispose函数释放资源 4 years ago
q191201771 cfabc9043c [feat] 新增demo pullrtmp2pushrtsp 4 years ago
q191201771 e386cfee9f (#83) [feat] rtp aac打包 4 years ago
q191201771 7d8883f1db messages:
- [feat] package rtprtcp: 增加RtpPacker用于打包RtpPacket;RtpPackerPayloadAvc支持多种输入形式
- [feat] package aac: 增加adts,asc,seqheader间的转换代码;重构了整个包
4 years ago
q191201771 0cf8660d17 messages:
- #77 [feat] lalserver: httpflv,httpts,hls的url pattern路由路径可以在配置文件中配置
- #64 [feat] hls默认提供两种播放url地址
- #77 [refactor] package hls: 将http url路径格式,文件存储路径格式,文件命名格式,映射关系抽象出来,业务方可在外层实现IPathSolver接口做定制
4 years ago
q191201771 761b203060 patch 4 years ago
q191201771 eec848f98c gitignore 4 years ago
q191201771 353f837c8e messages:
- [feat] lalserver增加回源功能
- [fix] rtmp.AMF0.ReadObject函数内部,增加解析子类型EcmaArray。避免向某些rtmp服务器推流时,触发断言错误
- [fix] 解析rtmp metadata时,兼容Object和Array两种外层格式
- [refactor] 重写了lalserver的中继转推的代码
5 years ago
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 d7e77299b2 [feat] HLS: rtmp音视频数据转换成m3u8+ts格式并落盘部分基本完成了 5 years ago
q191201771 a6d68e8ca0 [feat] 部分rtmp video message转成mpegts的代码,还没有完成 5 years ago
q191201771 4336627955 [feat] 新package hevc [doc] package aac增加一些注释 [fix] windows平台缺少USER1信号 [fix] gop缓存时,不以I帧开始的流会崩溃 [chore] 提供各平台二进制可执行文件的压缩包 [refactor] 使用naza 0.10.0[refactor] naza 0.10.0 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 083d05a771 1. 从远端下载flv文件做单元测试 2. 添加微信图片 3. 所有源码文件头部添加MIT许可证 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 2de67da06a 1). errors.PanicIfErrorOccur -> log.FatalIfErrorNotNil 2). 新增 pkg/aac/aac_test.go 5 years ago
q191201771 7ec3b9c0e1 pkg/httpflv/client_pull_session.go 更新 nezha 中的 connection 6 years ago
q191201771 0437993a24 提交信息:
* rtmp音频直接转发,不等待视频
* 新增 /pkg/util/assert 用于替换单元测试中的 stretchr/testify/assert
* 补充一些单元测试
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 03208d5a55 添加 app/flvfile2es 用于从flv文件中抽取h264 es流并写入文件 6 years ago
q191201771 3630b7568d rm coverage.txt, add build_linux.sh 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
q191201771 41f0317cd0 rm bin/lal 6 years ago
q191201771 f52241d795 fix cannot use test profile flag with multiple packages 6 years ago
q191201771 763cc241a6 mod:
* 部分rtmp回源代码
* 部分rtmp server代码
* 部分rtmp服务端握手代码
6 years ago
q191201771 209c32d0cb * 优化http-flv gop存储方式。
* 优化http-flv拉流时buffer拷贝。
* 写了一部分rtmp客户端拉流功能。
* 简单的压力测试,在腾讯云两核云主机上,拉300路http-flv流,带宽360Mb,占单核CPU 55%左右。
* 添加日志不初始化时,默认输出控制台。
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