langhuihui
52bd4c54e7
- fix: record flv append not work
...
- fix: data track reader
- feat: ignore auth for internal subscriber
- chore: optimize webrtc subscribe
desc:
- 修复了flv的append不生效的问题
- data track读取问题
- 忽略内部订阅者的鉴权功能
- webrtc插件优化,配合webrtc视频墙功能
- gb插件默认开启范围端口
v4.6.7
2023-07-14 16:01:57 +08:00
langhuihui
e5c9cacd8b
fix:
...
- data track push data panic
- g711 new track attach block
- didn't stop all publisher and subscriber when rtmp closed
- ps-plugin audio not enabled
desc:
- 数据轨道写入时引发panic
- 在事件回调中创建g711会导致阻塞
- rtmp关闭时没有停止所有发布者和订阅者
- ps-plugin音频未启用
v4.6.6
2023-07-07 15:45:07 +08:00
langhuihui
39c692a255
- feat: Initiate unit testing and benchmark testing for adding streaming publish subscriptions to the project
...
- fix: panic generated by concurrent creation of streams for publishing and subscribing
- fix: IdleTimeout invalid issue
- fix: read and write concurrency issues caused by subscriber blocking
- Preview plugin fixes the default port for https
- GB28181 plugin PR merge
- 启动工程增加对流的发布订阅的单元测试和基准测试
- 修复发布和订阅并发创建流产生的panic
- 修复IdleTimeout无效问题
- 修复订阅者阻塞导致读写并发问题
- preview插件修复https默认端口
- gb28181插件PR合并
v4.6.5
2023-06-30 11:31:23 +08:00
langhuihui
507caa1414
- preview plugin (Jessibuca Pro) WebRTC protocol supports H265 and AAC formats
...
- WebRTC plugin adds screen sharing test page
- WebRTC plugin push stream test page adds camera selection function
- The engine adds the function of dynamically inserting SEI frames
- The engine transforms DataTrack and MediaTrack, and reuses part of the code to reduce complexity
- The event bus adds the engine initialization completion event
- The default port for connecting to the remote console is changed to 44944
- Fix the problem caused by publishing the same StreamPath at the same time
- preview插件(Jessibuca Pro)WebRTC协议支持H265以及AAC格式
- WebRTC插件增加屏幕分享测试页面
- WebRTC插件推流测试页面增加摄像头选择功能
- engine增加动态插入SEI帧的功能
- engine对DataTrack改造,和MediaTrack复用部分代码,减少复杂度
- 事件总线增加引擎初始化完成事件
- 连接远程控制台默认端口更换为44944
- 修复同时发布同一个StreamPath引起的问题
v4.6.4
2023-06-17 22:04:08 +08:00
langhuihui
03070c68f6
chroe: gorelease
v4.6.3
2023-06-11 15:20:21 +08:00
langhuihui
ec3cd569d1
feat: gb28181 add ptz api and record pause fastforword etc.
2023-06-11 14:48:27 +08:00
langhuihui
a9c433405b
-Start the project and introduce the conf directory, adding several common configuration examples
...
-Customizable favicon.ico
-Adding Pause and Resume methods to Stream in the engine
-The engine introduces sync.Cond to replace the pseudo Spinlock
-Preview plugin introduction jessibuca pro demo
-Jessica plugin introduces support for HTTP/ws-h264/h265 bare streams
-Recording plugin adds a prompt in the log when the file cannot be created
-PS plugin fixes a bug where a single port cannot be reused after use
-Webtransport starts by default through built-in certificate mode
- 启动工程引入conf目录,添加若干常用配置示例
- 可以自定义favicon.ico
- 引擎中Stream增加Pause和Resume方法
- 引擎引入sync.Cond替代伪自旋锁
- 预览插件引入jessibuca pro demo
- jessica插件引入对http/ws-h264/h265 裸流支持
- 录制插件在无法创建文件时日志中增加提示
- ps插件修复一个单端口使用后无法重复使用的bug
- webtransport通过内置证书方式默认启动
v4.6.2
2023-06-11 14:11:28 +08:00
langhuihui
ebc7e9001a
1 新增LL-HLS支持
...
该协议为苹果公司推出的低延迟HLS协议,本次更新新增了对该协议播放支持。
同rtsp库一样,采用了第三方库来实现:**github.com/bluenviron/gohlslib**
1.1 使用方法
通过访问形如http://localhost:8080/llhls/live/test/index.m3u8来播放 。
其中**live/test**为streamPath,可以替换成实际的值
1.2 插件配置
在llhls下可以配置http配置,用于修改端口号。插件配置方式可以参考文档
1.3 源码说明
llhls相关代码位于**github.com/Monibuca/plugin-hls** 的 **llhls.go** 中。hls和llhls两个插件共用一个代码仓库,因此引入hls时也同时引入了llhls插件。
2 新增HLS.js测试页面
HLS.js测试页面是将hls.js的编译后的代码嵌入到了hls插件仓库中,以方便调试hls流使用。
2.1 访问地址
http://localhost:8080/hls/index.html
该页面也可以用于测试llhls
3 新增对RTMPS协议支持
该协议为RTMP协议的衍生协议,是在TCP基础上增加了TLS安全加固,原理类似HTTPS。
该协议支持是rtmp插件的增强。需要通过配置TLS端口来开启该功能。
3.1 配置
```yaml
rtmp:
tcp:
listenaddrtls: :4443
```
3.2 推流测试
```
ffmpeg -i source -f flv rtmps://localhost:4443/live/test
```
如果配置成443端口,则可以省略端口号
3.3 对外推拉流
已经支持,既可以在配置pull或者push中使用rtmps的远程地址
4 其他更新内容
4.1 优化了HLS纯转发模式的资源消耗
> 当只需要将HLS拉流转发时,可以使用纯转发模式
> 纯转发模式由于不需要解析HLS协议中的TS格式,因此对资源消耗比较小。
> 通过配置HLS插件的 **relaymode: 1**开启
4.2 修复了当开启时光回溯功能时的内存泄漏
具体原因是,在进行时间戳判断时忽略了当时间戳超过最大值时的情况,导致ringbuffer无限扩大
> 所谓时光回溯功能,是指可以缓存较多的数据,以订阅当前画面更早一些的画面
> 通过配置**publish**配置中的**buffertime**来开启时光回溯
> 订阅流时需要指定订阅模式,即需要在订阅时加参数`?mode=2`
> 如果需要修改参数名称(有时可能会有冲突,可以通过配置submodeargname 来改变
4.3 WebRTC插件测试页面运行URL中带有参数
为了更方便测试WebRTC功能,允许在访问测试页面时,带上参数
4.3.1 推流测试页面
**http://localhost:8080/webrtc/test/publish?streamPath=live/test **
可以推送到**live/test**。不传该参数则推送到**live/webrtc**
测试房间功能是也可以带上token参数
4.3.2 播放测试页面
**http://localhost:8080/webrtc/test/subscribe?streamPath=live/test **
可以订阅**live/test**的流。不传该参数则订阅**live/webrtc**
4.4 Stream中增加NeverTimeout属性
该属性设置成true可以是的流不再判断超时,保持流永远存活,其目的是有些流并不会产生AudioTrack和VideoTrack,比如纯转发流,或者Room的用于广播消息的流,此时可以在发布成功后,对流设置这个属性
v4.6.1
2023-06-04 23:00:11 +08:00
langhuihui
dd01ce0bc4
1. Modifying the engine Streams global variable to sync.Map increases stability and performance
...
2. Add record plugin to record raw audio data function
3. Fix security issues where API reading log files may access files outside of the log directory
4. Fix noise issue during GB streaming sound playback
5. Fix a memory leak
6. The GB28181 plugin combines a PR for API query of video recordings and directly returns data, no longer through Channel data
7. GB28181 plugin list returns no more nulls
8. On demand pull and push trigger logic code optimization
9. Debug plugin adds HTTP configuration
1、引擎Streams全局变量修改为sync.Map增加了稳定性和性能
2、录制插件增加录制裸音频数据功能
3、修复API读取日志文件可能访问到日志目录外的安全问题
4、修复GB流声音播放有噪声问题
5、修复一处内存泄漏
6、GB28181插件合并一个PR用于API查询录像直接返回数据,不再通过Channel数据中返回
7、GB28181插件list返回不再出现null
8、按需拉流和推流触发逻辑代码优化
9、debug插件增加HTTP配置
v4.6.0
2023-05-25 20:30:31 +08:00
langhuihui
2a89629149
fix: change tracks to sync.Map to void dead lock
...
fix: ps plugin dump
fix: record plugin nil pointer
feat: config support yaml tag name
修复: 修改tracks为sync.Map,避免死锁
修复: ps插件dump
修复: record插件空指针
特性: 配置支持yaml tag name
v4.5.9
2023-05-21 22:20:33 +08:00
langhuihui
555b168cba
1. Add the global configuration item disableall to disable all plugins (a plugin can be individually enabled by configuring its enable)
...
2. Upgrade dataTrack to customTrack and freely add custom tracks
3. PS plugin adds a forwarding mode configuration item and the ability to pull PS streams through the ws protocol
4. Fix processing errors when dts exceeds the maximum value
1、增加全局配置项disableall 用于禁用全部插件(可通过配置插件的enable来单独开启某个插件)
2、dataTrack升级为customTrack,可自由添加自定义轨道
3、PS插件增加转发模式配置项,增加通过ws协议拉取ps流的功能
4、修复dts超过最大值后的处理错误
v4.5.8
2023-05-17 07:49:28 +08:00
langhuihui
f2e0963add
1. Add a new PS plugin, move PS processing logic into it, and provide APIs to connect to PS streams
...
2. Added idletimeout configuration, which can be used to automatically disconnect after the first idle release
3. Handling situations where subscribers consume too slowly
4. Optimize RTMP plugin and merge write operations
5. Snap plugin adds support for URL parameters
6. Fix plugin reference errors used when publishing monitor plugins
7. The default certificate configuration for the webtransport plugin is local.monibuca.com
1、新增PS插件,将PS处理逻辑移入该插件,并提供API可接PS流
2、新增idletimeout配置,可用于首次发布空闲后自动断开
3、增加订阅者消费过慢的情况处理
4、优化rtmp插件,合并写入操作
5、snap插件增加对url参数的支持
6、修复monitor插件发布时使用的插件引用错误
7、webtransport插件默认的证书配置采用local.monibuca.com
v4.5.7
2023-05-14 17:24:17 +08:00
langhuihui
326b4f5252
update readme
2023-05-05 18:32:34 +08:00
langhuihui
f4b4d9cb57
支持EnhancedRTMP——现可以接受OBS的H265的推流
...
GB插件对端口配置新增一个port配置项,可用于代替老的端口配置项
GB插件减少一处Bye引起的阻塞
v4.5.6
2023-05-04 10:22:50 +08:00
langhuihui
0cea8a3433
1、支持读取mp4文件发布为流的能力
...
2、Subscribe增加Internal配置,可修改订阅者是否为内部订阅者
3、防止record插件在开始录制时阻塞事件总线
4、snap插件增加http配置,以自定义端口
5、修复一处因并发回收引起的崩溃
6、修复内置鉴权逻辑
v4.5.5
2023-04-29 22:17:59 +08:00
langhuihui
146245c50d
1、增加内置鉴权机制(同腾讯云)
...
2、增加trace级别日志功能
3、修复rtsp转发webrtc部分流无法播放的问题
4、上个版本漏发了hdl插件更新
5、修复上个版本一处打印忘记去除
6、hls插件修改为暂时只接受AAC格式音频
v4.5.4
2023-04-24 14:22:20 +08:00
langhuihui
65283c995d
1、新增环境变量覆盖配置功能
...
2、rtsp插件依赖库(gortsplib)升级到v3.2.1
3、rtsp插件修复对高码率流的推拉卡顿花屏问题
4、hdl插件拉取flv时增加对是否含有有视频的判断
5、修复hls关闭时出现高CPU的问题,以及close后仍然拉流问题
6、修复播放rtmp可能引起崩溃以及复推引起的内存泄露
7、兼容偶尔时间戳不对的情况
v4.5.3
2023-04-23 11:29:10 +08:00
langhuihui
84d9e05409
1、修复engine打印流程超时日志序列化错误的问题
...
2、修复monitor插件订阅时引起的流的事件循环阻塞问题
3、修复webrtc插件iceserver配置未生效的问题
4、rtsp插件删除协议自动切换逻辑,改为第三方库自动切换
5、pull配置新增代理配置,对hdl和hls插件有效
6、hls插件增加转发模式配置,实现纯转发功能
v4.5.2
2023-04-15 08:54:35 +08:00
dexter
248eefd1b0
1 修复热更新api导致的崩溃问题
...
2 兼容ts中streamID不在标准中定义的情况
3 修复按需拉流中无音频时订阅者等待的问题
4 gb插件修复收到已连接的设备的注册包的情况
5 record插件flv头中添加meta信息
v4.5.1
2023-04-09 12:54:49 +08:00
dexter
c95dbfb291
1、新增monitor插件,用于将监控数据写入文件中,方便后续分析
...
远程控制台已增加监控数据查看功能
2、增加日志多语言机制
3、engine中增加日志语言配置,默认使用zh即中文
4、engine中增加心跳时间广播,并增加心跳事件间隔配置,默认为5秒
v4.5.0
2023-04-04 20:58:07 +08:00
dexter
e65da00dac
将常见问题加入注释
2023-03-28 20:48:19 +08:00
dexter
5a436e0965
1、修复上一个版本出现的订阅者限速失效的 bug(影响秒开)
...
2、修复 GB28181 接收 TCP 流缓冲为 0 的错误
3、GB28181 现在默认接收 TCP 流
4、GB28181 增加监听网卡地址的配置
5、GB28181 增加同时多路 dump 的功能
6、修复rtmp、rtsp续推后时间戳计算
7、优化 rtsp 推流如果没有音频,订阅者将不再等待音频,实现秒开
8、控制台输出链接信息,常见问题已放在入口文件的注释中。
v4.4.18
2023-03-28 20:06:45 +08:00
dexter
4652af0975
1、通过提高时间戳精度修复rtsp推流时间戳精度丢失导致的播放卡问题
...
2、修复rtsp推流后,webrtc无法播放问题
3、修复由于rtp包组包逻辑问题导致rtsp拉流播放卡顿问题
4、hls插件增加http配置项,可独立设置端口
v4.4.17
2023-03-23 09:43:27 +08:00
dexter
ba0c2fbf8e
修复avcc写入时间戳的bug,webrtc插件支持tcp连接方式
v4.4.16
2023-03-14 09:37:54 +08:00
dexter
0c714cc258
GB插件引用的rtp从v2改回v1,engine做相应修改
...
对room和webrtc做了一些修改,针对room的demo进行优化
对preview插件的流列表增加了类型显示
v4.4.15
2023-03-13 13:46:37 +08:00
dexter
d9933f0c65
readme改成英文
2023-03-10 14:04:16 +08:00
dexter
10aebe3085
1、预览插件增加对按需拉流信息的罗列
...
2、引入v3版的ps解包逻辑
3、修复非rtmp系的首个绝对时间戳初始化
4、修复订阅时如果无音频时首个视频帧没有被订阅的bug
v4.4.14
2023-03-09 19:48:39 +08:00
dexter
56918b5dd4
1、WebRTC订阅AAC流时将AAC通过DataChannel传输
...
2、Rtmp协议接收releaseStream时不再回复client
3、优化RTSP的AAC数据的解析
4、修复RTSP出错写日志时Panic的问题
5、engine启动插件循序遵循插件注册顺序
v4.4.13
2023-03-04 08:15:15 +08:00
dexter
b9e74c161d
修复gb无法获取通道的问题
v4.4.12
2023-03-01 20:14:07 +08:00
dexter
33875ecb3d
修复hls插件panic的问题,和psPublisher的json序列化问题
2023-03-01 10:00:59 +08:00
dexter
eaa39044d4
将ps流接收后发布逻辑移入engine中,frame中新增adts数据
v4.4.11
2023-02-28 20:22:00 +08:00
dexter
b01a498688
更新room插件
2023-02-27 18:15:51 +08:00
dexter
dcfb354f8c
1、优化了rtp包写入引擎时的内存复用机制
...
2、优化了webrtc插件
3、订阅时接收的VideoFrame和AudioFrame增加了track属性方便读取track中的数据
4、优化了push的重连逻辑以及终止重连的判断
5、获取annexb格式时如果是关键帧则自动带上sps等
v4.4.10
2023-02-26 11:36:31 +08:00
dexter
52681147d6
修复flv录制时的时间戳,hls写入去除锁
v4.4.9
2023-02-22 13:42:11 +08:00
dexter
3cd643fd31
修复webrtc推流错误
...
webrtc插件增加推流测试页面
HLS插件音视频分离
GB28181插件invite恢复使用通道ID,以及合入PR等
v4.4.8
2023-02-21 21:33:13 +08:00
dexter
e6f73e71aa
修复WriteADTS没有写入时间戳的bug
...
修复webrtc推流时payloadType错误问题
修复GB28181的invite报文格式,以及ps流处理
v4.4.7
2023-02-21 08:27:17 +08:00
dexter
9c278864c2
修复MP4录制,gb解析ps重写,rtmp插件握手兼容性
v4.4.6
2023-02-20 00:24:06 +08:00
dexter
0b5c36b1c1
1、修复linux下没有生成fatal.log的问题
...
2、fatal.log现在采用追加方式写入
3、优化HLS(ts文件)内存复用
4、修复rtmp协议在接收推流时时间戳生成错误导致内存泄露等问题
5、修复datatrack没有被广播的bug(引起房间demo无法接收到信息)
v4.4.5
2023-02-15 21:21:53 +08:00
dexter
97f7d6a22d
修复WriteTimeout传入时多乘以了Second
...
修复订阅RTP时无音频是的panic
WriteAVCC传入指针防止意外
v4.4.4
2023-02-08 22:38:37 +08:00
dexter
bf18453401
1、引入ClockRate, 用于RTSP的RTP时间戳处理(MPEG2中的时间戳是固定90KHZ)
...
2、修复控制流Sleep传入的时间单位错误
3、优化TS格式解析内存复用,减少内存分配
4、修复rtmp接续发布功能
5、修复录像插件写入MP4文件时,视频格式错误的问题
6、更新WebTansport的插件的quic-go依赖,用于适配go1.20
v4.4.3
2023-02-08 14:26:37 +08:00
dexter
7dc8966d55
1、当发布者离线时没有订阅者时,流的超时时间从1s改为10ms。
...
2、Track增加离线状态,当发布者离线时,Track状态改为离线状态,当发布者重新上线时,Track状态改为在线状态。
3、Track在恢复在线后,记录时间戳的差值,保持后续时间戳和之前的连续。
4、进一步优化订阅者读取音视频同步逻辑。
v4.4.2
2023-02-06 14:22:45 +08:00
dexter
9cb7010507
1、增加SErepublish事件表示再次发布成功事件,使得SEPublish事件表示第一次发布成功。
...
2、修复push时ReConnectCount没有计数增加。
3、使用github.com/quic-go/quic-go v0.32.0版本。
4、修复订阅模式>1时没有从IDR帧开始的问题。
5、RTMP插件修复推流时MessageStreamID没有设置的问题。
6、RTSP插件升级第三方依赖库aler9/gortsplib 到 v2.1.0,并进行适配。
7、Stream中将保存状态变更历史信息。
v4.4.1
2023-02-03 21:38:01 +08:00
dexter
8d5c6d6d11
增加时光回溯功能
...
订阅模式参数
内存回收机制
增加对时间长度的配置
解决首屏渲染无音频问题
修复rtmp对外推拉没有带入参数
修复dts生成时pts超过最大值导致错误的问题
修复rtmp解析时对扩展时间戳的处理
修复几处判空panic问题
v4.4.0
2023-02-02 12:46:42 +08:00
dexter
3ead36ccf7
fix: 修复engine一处负优化,增加一个首屏渲染开关
v4.3.10
v4.3.9
2023-01-22 22:06:08 +08:00
dexter
a4e1f4950d
1.优化Track数据写入流程,调用更清晰自然
...
2.对Subscribe增加3个配置项,用于指定订阅指定Track时的参数名
3.修复首次写入AbsTime总是从0开始引起的问题
4.修复订阅时,读取音频数据过迟问题
5.修复对外推拉流(rtmp、rtsp)时,异常退出没有关闭远端连接问题
6.修复record和hls收到发布事件后重复订阅问题
v4.3.8
2023-01-18 23:28:26 +08:00
dexter
53cc788857
1.将amf0编码器和解码器放到codec/amf.go中
...
2.对写入avcc音频进行长度判断
3.录制者设置为内部订阅者
4.修复edge插件远程拉取HDL时,初始化错误
5.增加MallocSlice函数用于减少内存复制
6.录制flv写完后对头部进行修改加入关键帧元数据使得播放flv可以拖动进度条
v4.3.7
2023-01-16 09:34:09 +08:00
dexter
6b40297c69
1.拉取远端hls流平滑处理,解决卡顿问题。
...
2.拉流逻辑增加一处判空
3.设置speedlimit默认值从0改为500
4.snap插件的订阅者设置为内部订阅者防止影响自动关闭
5.gb28181的tcp范围端口不再读取ssrc值判断
v4.3.6
2023-01-10 09:25:18 +08:00
dexter
f8e50d00f5
注释一处println
v4.3.5
2023-01-03 19:34:40 +08:00
dexter
361b0522e1
1.修复Stream序列化循环引用问题
...
2.实现对subscribe中SubVideoTracks和SubAudioTracks的支持
3.修复读取ts中aac格式数据多次flush问题
4.修复subscribe结束时判断IsClosed调用对象错误
5.增加DefaultYaml功能解决插件默认配置被全局配置覆盖问题
6.修复rtsp插件订阅时参数未传入问题
7.snap插件和record插件采用DefaultYaml默认配置
v4.3.4
2023-01-03 19:24:15 +08:00
dexter
27784f0a03
1.修复delayclosetimeout值被覆盖的bug
...
2.重构流中订阅者集合,减少订阅者对轨道的无效等待
3.实现内部订阅者功能,使得HLS插件不再影响最后一个订阅者离开逻辑
4.破坏性修改:pull配置中pullonstart类型改为map,pullonsubscribe修改为pullonsub,类型改为map
5.rtmp插件增加对远端流rtmps协议的支持,优化握手过程
6.修复gb28181插件对时间戳的处理bug(引起跳秒等问题)
7.hdl插件对重连机制进行优化,对于服务器返回非200的连接不再重连
v4.3.3
2022-12-31 22:22:10 +08:00