Skip to content

Releases: q191201771/lal

v0.18.0

27 Dec 02:44
Compare
Choose a tag to compare

v0.18.0 (2020-12-27)

  • [feat] 实现rtsp pull session
  • [feat] demo,增加/app/demo/pullrtsp2pushrtmp,可拉取rtsp流,并使用rtmp转推出去
  • [feat] demo,增加/app/demo/pullrtsp,可拉取rtsp流,存储为flv文件
  • [feat] rtsp interleaved(rtp over tcp)模式。pub, sub, pull都已支持
  • [feat] rtsp,pull支持auth digest验证
  • [feat] rtsp,pull支持定时发送GET_PARAMETER rtsp message进行保活(对端支持的情况下)
  • [feat] rtsp,输入流音频不是AAC格式时,保证视频流可正常remux成其他封装协议
  • [feat] rtsp,pull开始时发送dummy rtp/rtcp数据,保证对端能成功发送数据至本地
  • [feat] rtsp,修改rtsp.AVPacketQueue的行为:当音频或者视频数量队列满了后,直接出队而不是丢弃
  • [feat] logic,rtsp pub转发给rtsp sub
  • [feat] logic,rtsp pub转发给relay rtmp push
  • [feat] remux,新增package,用于处理协议转封装
  • [refactor] 重构所有client session解析url的地方
  • [refactor] 所有session实现ISessionStat接口,用于计算、获取bitrate等流相关的信息
  • [refactor] 所有session实现ISessionURLContext接口,用于获取流url相关的信息
  • [refactor] rtmp/httpflv/rtsp,统一所有PullSession:超时形式;Pull和Wait函数
  • [fix] rtsp,将以下包返回给上层:rtsp pub h265, single rtp packet, VPS, SPS, PPS, SEI
  • [fix] sdp,修复解析及使用sdp错误的一些case
  • [fix] aac,正确处理大于2字节的AudioSpecificConfig
  • [fix] avc,尝试解析scaling matrix

https://github.com/q191201771/lal/blob/master/CHANGELOG.md

v0.17.0

21 Nov 09:31
Compare
Choose a tag to compare

v0.17.0 (2020-11-21)

  • [feat] 增加HTTP Notify事件回调功能,见 https://pengrl.com/p/20101
  • [feat] 增加/app/demo/dispatch示例程序,用于演示如何结合HTTP Notify加HTTP API构架一个lalserver集群
  • [feat] 配置文件中增加配置项,支持配置是否清除过期流的HLS文件
  • [feat] lalserver的session增加存活检查,10秒没有数据会主动断开连接
  • [feat] lalserver的group没有sub拉流时,停止对应的pull回源
  • [feat] HTTP API,增加/api/ctrl/start_pull接口,可向lalserver发送命令,主动触发pull回源拉流
  • [feat] HTTP API,增加接口/api/ctrl/kick_out_session接口,可向lalserver发送命令,主动踢掉指定的session
  • [feat] HTTP API /api/stat/lal_info 中增加server_id字段
  • [feat] HTTP API,group结构体中增加pull结构体,包含了回源拉流的信息
  • [fix] 配置文件静态relay push转推方式中,push rtmp url透传pub rtmp url的参数
  • [chore] 增加gen_tag.sh,用于打tag

https://github.com/q191201771/lal/blob/master/CHANGELOG.md

v0.16.0

23 Oct 12:37
Compare
Choose a tag to compare
  • [feat] rtsp pub h265(lal支持接收rtsp h265视频格式的推流)
  • [feat] 增加HTTP API接口,用于获取服务的一些信息,具体见: https://pengrl.com/p/20100/
  • [fix] 修复部分使用adobe flash player作为rtmp拉流客户端,拉流失败的问题
  • [fix] 修复接收rtsp pub推流时,流只有视频(没有音频)流处理的问题

https://github.com/q191201771/lal/blob/master/CHANGELOG.md

v0.15.1

19 Sep 14:55
Compare
Choose a tag to compare

v0.15.1 and v0.15.0

  • [feat] 支持HTTP-TS sub长连接拉流
  • [feat] 支持HTTPS-FLV
  • [feat] 支持跨域请求:HTTP-FLV sub, HTTP-TS sub, HLS这几个HTTP类型的拉流
  • [feat] 支持HLS录制与回放(在原有HLS直播的基础之上)
  • [fix] 修复rtsp pub无法接收IPv6 RTP数据的问题
  • [fix] 修复windows平台编译失败的问题(单元测试package innertest中使用syscall.Kill导致)
  • [feat] demo pullrtmp2hls: 新增demo,从远端服务器拉取rtmp流,存储为本地hls文件
  • [feat] 新增package alpha/stun,学习stun协议
  • [feat] 部分rtsp pub支持h265的代码,未完全完成

v0.14.0

23 Aug 02:23
Compare
Choose a tag to compare
  • [feat] lalserver实现rtsp pub功能。支持接收rtsp(rtp/rtcp)推流,转换为rtmp,httpflv,hls格式供拉流使用
  • [feat] hls.Muxer释放时,向m3u8文件写入#EXT-X-ENDLIST
  • [refactor] 新增package sdp,rtprtcp
  • [refactor] 新增package base,整理lal项目中各package的依赖关系
  • [refactor] 新增package mpegts,将部分package hls中代码抽离出来
  • [refactor] 重写package aac
  • [feat] 在各协议的标准字段中写入lal版本信息
  • [fix] group Dispose主动释放所有内部资源,与中继转推回调回来的消息,做同步处理,避免崩溃
  • [fix] package avc: 修复解析sps中PicOrderCntType为2无法解析的bug
  • [refactor] 重命名app/demo中的一些程序名
  • [feat] package rtmp: 增加BuildMetadata函数
  • [test] 使用wontcry30s.flv作为单元测试用的音视频文件
  • [chore] 使用Makefile管理build, test
  • [doc] 增加文档: https://pengrl.com/p/20080/
  • [log] 整理所有session的日志

CHANGELOG.md

v0.13.0

18 Jul 08:54
Compare
Choose a tag to compare
  • [feat] package httpflv: pull拉流时,携带url参数
  • [feat] package avc: 提供一些AVCC转AnnexB相关的代码。学习解析SPS、PPS内部的字段
  • [fix] package rtmp: 打包rtmp chunk时扩展时间戳的格式。避免时间戳过大后,发送给vlc的数据无法播放。
  • [fix] package hls: 写ts视频数据时,流中没有spspps导致崩溃
  • [fix] package logic: 修复重复创建group.RunLoop协程的bug
  • [perf] package logic: 广播数据时,内存块不做拷贝
  • [perf] package hls: 切片188字节buffer复用一块内存
  • [refactor] package hls: 使用package avc
  • [refactor] 所有回调函数的命名格式,从CB后缀改为On前缀
  • [refactor] 整理日志
  • [style] Nalu更改为NALU
  • [doc] 增加PR规范
  • [test] innertest中对hls生成的m3u8和ts文件做md5验证
  • [chore] 下载单元测试用的test.flv失败,本地文件大小为0时,去备用地址下载

CHANGELOG.md

v0.12.0

20 Jun 09:40
Compare
Choose a tag to compare
  • [feat] lalserver增加回源功能
  • [fix] rtmp.AMF0.ReadObject函数内部,增加解析子类型EcmaArray。避免向某些rtmp服务器推流时,触发断言错误
  • [fix] 解析rtmp metadata时,兼容Object和Array两种外层格式
  • [refactor] 重写了lalserver的中继转推的代码

版本日志见 https://github.com/q191201771/lal/blob/master/CHANGELOG.md

v0.11.0

13 Jun 02:39
Compare
Choose a tag to compare
  • [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] 日志整理

版本日志见 https://github.com/q191201771/lal/blob/master/CHANGELOG.md

v0.10.0

06 Jun 14:05
Compare
Choose a tag to compare
  • [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
  • [fix] package hls: 检查输入的rtmp message是否完整,避免非法数据造成崩溃
  • [perf] gop缓存使用环形队列替换FIFO动态切片队列
  • [refactor] package aac: 函数ADTS::PutAACSequenceHeader检查输入切片长度
  • [refactor] package aac: 删除函数CaptureAAC

版本日志见 https://github.com/q191201771/lal/blob/master/CHANGELOG.md

v0.9.0

30 May 07:26
Compare
Choose a tag to compare
  • [feat] 新增HLS直播功能
  • [fix] 接收rtmp数据时,同一个message的多个chunk混合使用fmt1,2时,可能出现时间戳多加的情况
  • [refactor] 将app目录下除lals的其他应用移入demo目录下
  • [fix] 修改rtmp简单握手,修复macOS ffmpeg 4.2.2向lals推rtmp流时的握手警告

版本日志见 https://github.com/q191201771/lal/blob/master/CHANGELOG.md