You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
lal/CHANGELOG.md

5.0 KiB

v0.8.1

  • [feat] 新package hevc
  • [fix] windows平台缺少USER1信号导致编译失败
  • [fix] gop缓存时不以I帧开始的流会崩溃
  • [chore] 提供各平台二进制可执行文件的压缩包
  • [doc] package aac增加一些注释
  • [refactor] 使用naza v0.10.0

v0.8.0

  • [feat] 支持H265/HEVC
  • [feat] 支持GOP缓存

v0.7.0

  • [fix] package logic: 转发 rtmp metadata 时message header 中的 len 字段可能和 body 实际长度不一致
  • [feat] rtmp.AVMsg 增加判断包中音视频数据是否为 seq header 等函数
  • [feat] app/httpflvpull 使用 naza/bitrate 来统计音频和视频的带宽
  • [refactor] logic config 的部分配置移动至 app/lals 中
  • [refactor] logic 增加 LazyChunkDivider 组织代码
  • [log] package rtmp: 一些错误情况下,对接收到包 dump hex
  • [test] 测试推送 n 路 rtmp 流至 lals再从 lals 拉取这 n 路 rtmp 流的性能消耗
  • [doc] README 中增加测试过的推拉流客户端
  • [dep] update naza -> v0.7.1

v0.6.0

  • package rtmp: 结构体的属性重命名 AVMsg.Message -> AVMsg.Payload
  • app/flvfile2rtmppush: 支持推送多路 rtmp 流,相当于一个压测工具
  • app/rtmppull: 支持对特定的一路流并发拉取多份,相当于一个压测工具
  • README 中补充性能测试结果

v0.5.0

  • package rtmp:
    • 增加结构体 ClientSessionOptionPushSessionOptionPullSessionOption
    • 增加结构体 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
    • 增加两个函数 MakeDefaultRTMPHeaderFLVTagHeader2RTMPHeader

v0.4.0

  • [功能] 将 rtmp pub session 的音视频转发给httpflv sub session
  • [依赖] httpflv ServerSubSession 使用 naza connection
  • [其他] 增加测试加载flv文件后使用rtmp推流至服务器然后分别使用rtmp和httpflv将流拉取下来存成文件判断和输入文件是否相等

v0.3.2

  • [功能] 默认的rtmp地址
  • [依赖] naza 更新为 0.4.3
  • [架构调整] lal 中的服务器更名为 lals
  • [其他] 从远端下载 flv 测试文件,跑单元测试
  • [其他] test.sh 中加入更多 go tool
  • [其他] 所有源码文件添加 MIT 许可证

v0.3.1

  • [功能] 读取配置文件时,部分未配置的字段设置初始值
  • [其他] build.sh 中 git信息单引号替换成双引号
  • [其他] test.sh 中 加入 gofmt 检查
  • [其他] 更新 naza -> 0.4.0

v0.3.0

  • [功能] package logic: 增加 func FlvTag2RTMPMsg
  • [代码调整] package rtmp: ClientSession 和 ServerSession 使用 nezha 中的 connection 做连接管理
  • [代码调整] package rtmp: 增加 struct ChunkDivider
  • [代码调整] package rtmp: 调整一些接口
  • [代码调整] package httpflv: 删除了 group gop 相关的代码,后续会放入 package logic 中
  • [测试] package rtmp: 增加 example_test.go 用于测试整个 rtmp 包的流程
  • [其他] 更新 nezha -> 0.3.0

v0.2.0

  • [结构调整] 将 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 -> uint8msgLen 相关的类型 int -> uint32
  • [其他] 更新 nezha新版本的日志库
  • [其他] 整理日志
  • [其他] pprof web 地址放入配置文件中
  • [测试] 使用一些开源工具对 app/lal 做推流、拉流测试

v0.1.0

  • /app/flvfile2rtmppush 优化推流平稳性
  • bugfix rtmp 推拉流信令时可以携带 url 参数,并且在做上下行匹配时去掉 url 参数
  • rtmp.ServerSession 处理 typeidAck
  • 增加 amf0.WriteNull 和 amf0.WriteBooleanWriteObject 中增加 bool 类型bugfix: ReadString 当长度不足时返回 ErrAMFTooShort 而不是 ErrAMFInvalidType
  • app lal 接收 USER1 USER2 信号,优雅退出
  • 日志相关的配置放入配置文件中
  • 整理代码;整理日志;整理 build.sh
  • 增加 rtmp.HandshakeClientComplex 复杂握手模式
  • 整理一些 struct 的 Dispose 方法
  • CaptureAVC 添加错误返回值
  • 增加一些单元测试和 benchmark
  • 更新 nezha 0.1.0
  • errors.PanicIfErrorOccur -> log.FatalIfErrorNotNil

v0.0.1

  1. 提供 /app/flvfile2rtmppush 给业务方使用