q191201771
|
da29f9866c
|
[feat] HLS: RTMP格式的视频数据转换成TS格式基本完成
|
5 years ago |
liquanqing
|
706c907911
|
[fix]simple handshake:数据包s2发送完整的c1包内容,避免mac上4.2.2版本ffmpeg推流时警告签名不匹配
|
5 years ago |
q191201771
|
a6d68e8ca0
|
[feat] 部分rtmp video message转成mpegts的代码,还没有完成
|
5 years ago |
q191201771
|
bde11a9524
|
[refactor] use nazabits
|
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
|
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
|
054fcc935b
|
[feat] 把 httpflv pull session 的接收 buff 缓存大小调小了,这个地方后续还要修改
|
5 years ago |
q191201771
|
3986683396
|
- 测试推送 n 路流至 lals,再从 lals 拉取这 n 路流的性能消耗
- rtmp.AVMsg 增加判断包中音视频数据是否为 seq header 等函数
- app/httpflvpull 使用 naza/bitrate 来统计音频和视频的带宽
- logic config 的部分配置移动至 app/lals 中
- logic 增加 LazyChunkDivider 组织代码
- gop cache 写了一点,没完成
|
5 years ago |
q191201771
|
e89ff9992b
|
- package rtmp: 结构体的属性重命名 AVMsg.Message -> AVMsg.Payload
- app/flvfile2rtmppush: 支持推送多路 rtmp 流,相当于一个压测工具
- app/rtmppull: 支持对特定的一路流并发拉取多份,相当于一个压测工具
- README 中补充性能测试结果
|
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
|
823ff165fa
|
nezha -> v0.2.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
|
696b090fbf
|
1). CaptureAVC 添加错误返回值 2). 新增 pkg/avc/avc_test.go
|
5 years ago |
q191201771
|
2de67da06a
|
1). errors.PanicIfErrorOccur -> log.FatalIfErrorNotNil 2). 新增 pkg/aac/aac_test.go
|
5 years ago |
q191201771
|
49668ea9b5
|
prev commit patch
|
5 years ago |
q191201771
|
af4a30fd36
|
package rtmp: 1). pack.go 重命名为 message_packer.go 2). 增加 amf0.WriteNull 和 amf0.WriteBoolean 3). WriteObject 中增加 bool 类型 4). bugfix: ReadString 当长度不足时返回 ErrAMFTooShort 而不是 ErrAMFInvalidType 5). pkg/rtmp/amf0_test.go 增加一些 case
|
5 years ago |
q191201771
|
da1bca5a10
|
更新 nezha 版本,使用其中的 MockWriter
|
5 years ago |
q191201771
|
062c25c016
|
package rtmp: pack_test.go 测试覆盖率上升至 100% 注意,方法 writeMessageHeader 有不兼容修改
|
5 years ago |
q191201771
|
982ad1e9f4
|
增加 pkg/rtmp/pack_test.go
|
5 years ago |
q191201771
|
5135067a73
|
只对 /pkg 做单元测试
|
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
|
1394663101
|
1). flvfile2rtmppush 增加 bininfo 2). flvfile2rtmppush error 时 panic -> log & os exit 3). build_linux.sh 直接调用 build.sh
|
5 years ago |
q191201771
|
0f5d5ab395
|
新增 go.mod 和 go.sum 文件
|
5 years ago |
q191201771
|
8136c5b620
|
1. httpflv 抽象出 readTag 函数 2. rtmp.ClientSession 读取 typeidAck
|
5 years ago |
q191201771
|
994d9d2e14
|
1. bugfix: 打rtmp chunk时,如果时间戳超过3字节,数组越界了,没有预留扩展时间戳的位置 2. rtmp.ClientSession 增加更多的超时方式
|
5 years ago |
q191201771
|
eeb47bbd92
|
1. 所有时间戳类型 int -> uint32 2. app/flvfile2rtmppush 循环推送音视频数据
|
5 years ago |
q191201771
|
89af181710
|
1. stream.msgLen -> stream.header.MsgLen 2. rtmp stream name with url raw query 3.
|
5 years ago |
q191201771
|
750e7adce0
|
rtmp.ClientSession: ModWriteBufSize
|
6 years ago |
q191201771
|
7ec3b9c0e1
|
pkg/httpflv/client_pull_session.go 更新 nezha 中的 connection
|
6 years ago |
q191201771
|
5648cab5e4
|
增加 httpflv.PullSessionConfig
|
6 years ago |
q191201771
|
97b5a05973
|
整理 pkg/httpflv/client_pull_session.go
|
6 years ago |
q191201771
|
99a776106a
|
httpflv.PullSession 中使用 nezha/connection 做 net.Conn 的管理
|
6 years ago |
q191201771
|
e14a18e4a3
|
删除 /pkg/util ,这部分内容移入至另一个仓库 github.com/q191201771/nezha
|
6 years ago |
q191201771
|
60c2d11f78
|
assert.Equal 的 msg 参数可选是否填入
|
6 years ago |
q191201771
|
0437993a24
|
提交信息:
* rtmp音频直接转发,不等待视频
* 新增 /pkg/util/assert 用于替换单元测试中的 stretchr/testify/assert
* 补充一些单元测试
|
6 years ago |
q191201771
|
8dc82bf27a
|
兼容srs-bench, rtmp message中的非首个 chunk 使用fmt3 而非 fmt0
|
6 years ago |
q191201771
|
472b299124
|
log
|
6 years ago |
q191201771
|
b770eeb48b
|
增加 /app/httpflvpull , http-flv拉流客户端
|
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
|
03208d5a55
|
添加 app/flvfile2es 用于从flv文件中抽取h264 es流并写入文件
|
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
|
c737f95fa0
|
添加app/flvfile2rtmppush,可读取一个flv文件,使用rtmp协议推送出去
|
6 years ago |
q191201771
|
79ebdbe8c8
|
commit messages:
* rtmp.ServerSession 使用channel发送数据,增加Dispose方法
* rtmp.Group 缓存avc header,aac header
|
6 years ago |
q191201771
|
fda375ab60
|
fix ut
|
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
|
27d12599a2
|
add func Message2Chunks
|
6 years ago |
q191201771
|
e1f81de2c2
|
add unique_test.go
|
6 years ago |
q191201771
|
9950b1484f
|
整理目录,源码放入app/和pkg/下
|
6 years ago |