q191201771
|
344a2c82b1
|
messages:
- [feat] HTTP端口复用:HTTP-FLV, HTTP-TS, HLS可使用相同的监听端口。HTTPS类似 #64
- [feat] HTTPS:支持HTTPS-TS, HLS over HTTPS(之前已支持HTTPS-FLV) #66
- [feat] WebSocket:支持WebSocket[s]-TS(之前已支持WebSocket[s]-FLV)#66
- [feat] 配置灵活。增加`default_http`。HTTP-FLV,HTTP-TS,HLS可以独立配置监听地址相关的项,也可以使用公共的`default_http`
- [refactor] 重构httpflv.SubSession和httpts.SubSession的重复代码
|
4 years ago |
q191201771
|
d5d67a51a2
|
[feat] 支持录制flv和ts文件 #14
|
4 years ago |
q191201771
|
291ceda116
|
[feat] hls支持内存切片 #50
|
4 years ago |
q191201771
|
2c5bb92601
|
messages:
- [fix] package rtsp: 修复rtsp aac可能出现崩溃。支持aac fragment格式(一个音频帧被拆分成多个rtp包)
- [feat] lalserver: 新增配置项hls.cleanup_mode,支持三种清理hls文件的模式,具体说明见 https://pengrl.com/lal/#/ConfigBrief
- [doc] 启用英文版本README.md作为github首页文档展示
- [refactor] package rtprtcp: 重构rtp unpacker,业务方可以使用默认的container,protocol策略,也可以自己实现特定的协议解析组包策略
- [refactor] lalserver: 整理配置文件加载与日志初始化部分的代码
- [doc] lalserver: 新增配置项conf_version,用于表示配置文件的版本号
- [doc] lalserver: 启动时日志中增加lal logo
- [doc] 新增文章《rtmp中的各种ID》,见 https://pengrl.com/lal/#/RTMPID
- [doc] 新增文章《rtmp handshake握手之简单模式和复杂模式》,见 https://pengrl.com/lal/#/RTMPHandshake
|
4 years ago |
q191201771
|
4a48518f5a
|
1. [feat] 新增app/demo/calcrtmpdelay,可用于测量rtmp服务器的转发延时 2. [refactor] 重构app/demo/pullrtmp2pushrtmp的对象管理逻辑
|
4 years ago |
q191201771
|
fd0f71f9af
|
[feat] app/demo/pushrtmp 做压测时,修改为完全并行的模式
|
4 years ago |
q191201771
|
37d8d1738d
|
messages:
- [doc] 启动lal官方文档页: https://pengrl.com/lal
- [doc] 新增文档《rtmp url,以及vhost》: http://pengrl.com/lal/#/RTMPURLVhost
- [feat] demo,新增/app/demo/pullrtmp2pushrtmp,从远端服务器拉取RTMP流,并使用RTMP转推出去,支持1对n转推
- [fix] rtsp,setup信令header中的transport字段区分record和play,record时添加mode=record
|
4 years ago |
q191201771
|
fa6599deff
|
messages:
- [feat] rtsp pub -> rtsp sub
- [refactor] 整体重构package rtsp,未完成
- [feat] rtsp pub -> relay rtmp push
|
4 years ago |
q191201771
|
34bd5cf004
|
commit messages:
- `/app/demo/dispatch`处理`on_update`事件回调
- HTTP Notify增加新事件回调`/on_server_start`
- HTTP API `/api/stat/lal_info` 中增加`server_id`字段
- 增加`gen_tag.sh`,用于打tag
|
4 years ago |
q191201771
|
a58a2ce60c
|
1. [feat] 配置文件中支持配置是否清除过期流的HLS文件 2. [feat] 增加HTTP API接口`/api/ctrl/kick_out_session`,用于踢掉指定的session 3. [feat] HTTP Notify事件回调中的session结构体都增加session id字段
|
4 years ago |
q191201771
|
c3aac90cc9
|
1. [feat] lalserver的session增加存活检查,10秒没有数据会主动断开连接 2. [feat] lalserver的group没有sub拉流时,停止对应的pull回源 3. [feat] HTTP Notify事件回调中,增加`on_rtmp_connect`
|
4 years ago |
q191201771
|
755e9d19af
|
[fix] config on_pub_stop
|
4 years ago |
q191201771
|
b51ee4280e
|
[doc] README
|
4 years ago |
q191201771
|
1e3358c80b
|
1. [feat] 增加HTTP Notify事件回调功能,见 https://pengrl.com/p/10101 2. [feat] HTTP API中,增加`/api/ctrl/start_pull`接口,可向lalserver发送命令,主动触发pull回源拉流 3. [feat] HTTP API中,group结构体中增加pull结构体,包含了回源拉流的信息 4. [fix] 通过配置文件静态relay push转推时,push rtmp url透传pub rtmp url的参数
|
4 years ago |
q191201771
|
f2fc9a741a
|
增加HTTP API接口,获取服务信息
|
4 years ago |
q191201771
|
63843ad377
|
[fix] 配置文件没有开启HTTPS-FLV时,错误使用nil对象导致崩溃
|
4 years ago |
q191201771
|
993cc13a44
|
messages:
- [feat] HTTP-FLV支持HTTPS播放
- [feat] demo pullrtmp2hls: 新增demo,从远端服务器拉取rtmp流,存储为本地hls文件
- [feat] package stun: 完成基础的server功能
- [feat] package hevc: 增加函数,从HVCC SeqHeader解析出VPS,SPS,PPS
- [feat] package hevc: 增加函数,将HVCC SeqHeader转换为AnnexB格式
- [fix] package hls: 修复record m3u8文件无法更新的问题
|
4 years ago |
q191201771
|
0f94f8d4b2
|
1. [feat] 支持HTTP-TS长连接拉流 2. [feat] 在hls直播基础上,同时支持hls录制回放功能
|
4 years ago |
q191201771
|
afb7850b87
|
messages:
- [feat] lalserver集成rtsp pub功能。支持接收rtsp(rtp/rtcp)推流,转换为rtmp,httpflv,hls格式供拉流使用
- [refactor] 新增package sdp,rtprtcp,将package rtsp中对应的内容独立出来
- [refactor] 新增package base,整理lal项目中各package的依赖关系。该工作还在进行中
- [feat] package rtmp: 增加BuildMetadata函数
|
5 years ago |
q191201771
|
c9f29131c4
|
[chore] edge.conf.json -> release
|
5 years ago |
q191201771
|
353f837c8e
|
messages:
- [feat] lalserver增加回源功能
- [fix] rtmp.AMF0.ReadObject函数内部,增加解析子类型EcmaArray。避免向某些rtmp服务器推流时,触发断言错误
- [fix] 解析rtmp metadata时,兼容Object和Array两种外层格式
- [refactor] 重写了lalserver的中继转推的代码
|
5 years ago |
q191201771
|
b3024c8a4e
|
messages:
- [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] 日志整理
|
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
|
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 |