Commit Graph

69 Commits (ccd2773c3f7a3f10d712be007e07c43d04bde9b6)

Author SHA1 Message Date
q191201771 a9b78c078d [patch] prev commit patch 3 years ago
q191201771 f4a0e16d7f [opt] rtmp: PullSession支持配置是否复用接收message时的内存块 3 years ago
q191201771 60d52898c3 [refactor] 整理session stat相关的代码 3 years ago
q191201771 5ef6241749 [refactor] 将所有session的ISessionStat的实现聚合到BasicSessionStat 3 years ago
q191201771 6c61b1329d prev pr patch 3 years ago
ZSC714725 f14fdf974f rtmp pushclient support adobe auth 3 years ago
ZSC714725 e88ae8f572 rtmp pushclient support adobe auth 3 years ago
ZSC714725 52ab21d0b3 rtmp pushclient support adobe auth 3 years ago
KevinZang 18a3970e8e
Merge branch 'master' into rtmps 3 years ago
zang191993@163.com 1e5d9ca926 lal support rtmps 3 years ago
q191201771 3b6ae774e8 [feat] lalserver: HTTP API新增start_relay_pull接口,并同时支持rtmp和rtsp 3 years ago
q191201771 f551dbfa65 [patch] prev pr patch 3 years ago
joestarzxh 6107a5ecd4 [feat]rtmp ack PeerWinAckSize属性修正一下 3 years ago
joestarzxh b0e201d4d4 [feat]rtmp ack PeerWinAckSize改由options设置 3 years ago
joestarzxh 4385e40bec [feat]rtmp pull增加ack应答提高兼容性 3 years ago
q191201771 abf50b107d - [refactor] 规范所有导出符号的注释 - [refactor] base.ReadableNowTime() 3 years ago
q191201771 0f21334964 [opt] 支持pkg层面控制日志 #62 3 years ago
q191201771 ca3797c822 [refactor] prev pr patch 3 years ago
joestarzxh db2950ac69 [fix] rtmp 解决未处理PingRequest 回应 3 years ago
q191201771 03ccfa0e5f 1. rtmp.PushSession和PullSession可配置WriteBuf和ReadBuf大小,以及WriteChanSize 2. 整理完所有error返回值 3. 提高测试覆盖率 3 years ago
q191201771 83aa44eebe [refactor] error信息更友好 3 years ago
q191201771 39ccc1b911 [refactor] rtmp: 使用base.Buffer 3 years ago
q191201771 6d2bf2556d [feat] 优化和统一所有client类型session的使用方式:session由于内部或对端原因导致关闭,外部不再需要显式调用Dispose函数释放资源 4 years ago
q191201771 528444e582 messages:
- [refactor] 使用httpflv.Tag.Payload()
- [refactor] 新增函数remux.FlvTag2RtmpChunks()
4 years ago
q191201771 1f97f1ef50 [fix] rtmp client session兼容对端回复两次publish或play信令的情况 4 years ago
q191201771 731bed099a (#87) [refactor] 重构lal整个项目的命名规则 4 years ago
q191201771 e4df7af23b [refactor] package rtmp: rtmp.ClientSession支持配置选择简单握手或者复杂握手, 默认使用简单握手 (#68) 4 years ago
q191201771 158811d0e8 [fix] rtmp ClientSession握手,c2的发送时机,由收到s0s1s2改为收到s0s1就发送,解决握手失败的case #42 4 years ago
joestarzxh 3fa57acfc7 [fix]修正RTMP aggregate 时间戳问题 4 years ago
joestarzxh 55a690a989 [feat]rtmp 支持Aggregate Message 4 years ago
q191201771 3df6ee4027 1. [refactor] 使用新的unique id生成器,提高性能 2. [refactor] 统一各Session接口 4 years ago
q191201771 e1b89c7eff messages:
- [feat] http notify,session增加完整url字段
- [feat] http notify,补全所有session类型
- [refactor] 重构/app/demo/pullrtmp2pushrtmp
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 766573741e messages:
- [feat] rtsp,实现PushSession
- [feat] demo,新增app/demo/pullrtsp2pushrtsp,可拉取rtsp流,并使用rtsp转推出去
- [refactor] rtsp,重构部分逻辑,聚合至sdp.LogicContext中
4 years ago
q191201771 942b5da52d messages:
- [feat] rtsp,pull支持interleaved(over tcp)模式。demo/pullrtsp2pushrtmp和demo/pullrtsp可通过运行参数选择是否使用over tcp模式
- [feat] rtsp,pull支持auth digest验证
- [feat] rtsp,pull支持定时发送GET_PARAMETER rtsp message进行保活(对端支持的情况下)
- [fix] rtsp,输入流音频不是AAC格式时,保证视频流可正常remux成其他封装协议
- [fix] rtsp,pull开始时发送dummy rtp/rtcp数据,保证对端能成功发送数据至本地
- [fix] rtsp,将以下包返回给上层:rtsp pub h265, single rtp packet, VPS, SPS, PPS, SEI
- [fix] rtsp,修改rtsp.AVPacketQueue的行为:当音频或者视频数量队列满了后,直接出队而不是丢弃
- [fix] sdp,修复解析及使用sdp错误的一些case
- [refactor] rtmp/httpflv/rtsp,统一所有PullSession:超时形式;Pull和Wait函数
- [fix] avc,尝试解析scaling matrix
4 years ago
q191201771 89f0442ee1 commit messages:
- 增加demo程序:`/app/demo/pullrtsp2pushrtmp`,可拉取rtsp流,并使用rtmp转推出去
- 所有session实现ISessionURLContext接口,用于获取流url相关的信息
- 所有session实现ISessionStat接口,用于计算、获取bitrate等流相关的信息
- 重构所有client session解析url的地方
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 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 2b67df6d12 messages:
- [refactor] 新增package mpegts,将部分package hls中代码抽离出来
- [feat] 在各协议的标准字段中写入lal版本信息
- [log] 整理所有session的日志
5 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 4f8757579f messages:
- [feat] 部分rtsp代码,目前已经粗略完成pub的前期交互,可接收到rtp,rtcp数据
- [test] innertest中对hls生成的文件做md5验证
- [refactor] 整理日志
- [doc] 增加PR规范
- [chore] 下载单元测试用的test.flv失败,本地文件大小为0时,去备用地址下载
- [refactor] 所有回调函数的名字,从CB后缀改为On前缀
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 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 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