Skip to content
On this page

v4 发布日志

从V3升级到V4主要变化

  • 对核心结构体进行泛型重构
  • RingBuffer中元素存放的是完整的一帧,以确保构建RTP包时可以准确添加marker
  • 去除GOP延迟追帧逻辑,改为跳帧同步最新关键帧技术
  • 缓存形式从[]byte变为net.Buffers,使得可利用writev提高性能
  • 缓存中预构建avcc、flv、rtp三种格式,并且复用内存
  • 支持动态码率、动态分辨率
  • Stream拥有4种状态,从而支持按需拉流,断线重连等复杂场景
  • 去除Track等待逻辑,改为通过事件通知的方式
  • 原有Hook机制修改为事件总线模型,简化了代码逻辑
  • 新增http回调设置
  • 插件安装API更新,更简单
  • 插件通过反射自动注册Web API,并提供中间件机制
  • 自带跨域CORS配置以及基本身份认证功能
  • 插件在订阅发布流的API更新,采用一种统一的可扩展的事件模型
  • 采用zap作为日志库
  • 配置文件格式改为yaml
  • 实现无配置文件也可以启动(采用默认配置)
  • 配置文件中需要显式关闭插件才会使得插件不启用
  • 配置文件中对于订阅、发布、推、拉四种配置包含全局、插件级、流级三级优先级覆盖机制
  • 实现了对远程服务器推拉的基本底层架构,方便插件实现client端逻辑
  • 实现h265的完全支持
  • 新增debug插件用于调试
  • 去除Gateway插件以及summary插件,并入引擎中
  • record插件现支持fmp4格式录制
  • 新增webtransport插件提供WebTransport协议拉流
  • rtsp插件实现h265的拉流播放、实现aac、g711音频流处理
  • rtsp协议转发将不再重新解包和封包——透传
  • rtmp协议实现client端逻辑——可以从远程rtmp服务器推拉流

Changelog

v4.3.7

  • 53cc788 1.将amf0编码器和解码器放到codec/amf.go中 2.对写入avcc音频进行长度判断 3.录制者设置为内部订阅者 4.修复edge插件远程拉取HDL时,初始化错误 5.增加MallocSlice函数用于减少内存复制 6.录制flv写完后对头部进行修改加入关键帧元数据使得播放flv可以拖动进度条

v4.3.6

  • 6b40297 1.拉取远端hls流平滑处理,解决卡顿问题。 2.拉流逻辑增加一处判空 3.设置speedlimit默认值从0改为500 4.snap插件的订阅者设置为内部订阅者防止影响自动关闭 5.gb28181的tcp范围端口不再读取ssrc值判断

v4.3.5

  • f8e50d0 注释一处println

v4.3.4

  • 361b052 1.修复Stream序列化循环引用问题 2.实现对subscribe中SubVideoTracks和SubAudioTracks的支持 3.修复读取ts中aac格式数据多次flush问题 4.修复subscribe结束时判断IsClosed调用对象错误 5.增加DefaultYaml功能解决插件默认配置被全局配置覆盖问题 6.修复rtsp插件订阅时参数未传入问题 7.snap插件和record插件采用DefaultYaml默认配置

v4.3.3

  • 27784f0 1.修复delayclosetimeout值被覆盖的bug 2.重构流中订阅者集合,减少订阅者对轨道的无效等待 3.实现内部订阅者功能,使得HLS插件不再影响最后一个订阅者离开逻辑 4.破坏性修改:pull配置中pullonstart类型改为map,pullonsubscribe修改为pullonsub,类型改为map 5.rtmp插件增加对远端流rtmps协议的支持,优化握手过程 6.修复gb28181插件对时间戳的处理bug(引起跳秒等问题) 7.hdl插件对重连机制进行优化,对于服务器返回非200的连接不再重连

v4.3.2

  • 34394b9 1.增加http配置中的timeout参数,用于设置http响应的超时时间 2.http配置增加自定义中间件功能 3.hdl插件和jessica插件增加对http超时的处理

v4.3.0

  • 7138565 engine升级到4.9.0,升级hls、hook、record、room

v4.2.9

  • a521c63 fix: 最后订阅者离开条件判断,edge插件只能拉一路的bug

v4.2.8

  • ed5e719 fix: http-flv远端拉流h265编码格式解析

v4.2.7

  • 664a64a 🐛 FIX: rtp缓存适配webrtc,修复录制插件重复录制问题以及崩溃报错

v4.2.6

  • f097e66 🐛 FIX: GB解决非同一域的目标地址问题,引擎增加SubscribeExist功能

v4.2.5

  • 2e8d4d2 📦 NEW: 加入fMP4格式直播流播放功能

v4.2.4

  • 8bb63c9 1.发布流首次超时时间随PublishTimeout配置 2.RTP打包较大AAC音频进行分包处理 3.截图插件默认不订阅音频提高速度 4.GB插件优化PS包解析兼容性 5.RTSP插件升级gortsplib版本 6.RTMP插件修复对外推流时流路径的设置

v4.2.2

  • c0b2a10 👌 IMPROVE: hls支持h265以及G711,Gb28181支持AAC

v4.2.1

  • 1a57aeb 🐛 FIX: rtmp握手协议,SEI帧处理

v4.2.0

  • 85b134d 👌 IMPROVE: 增加限速设置,修复gb单端口时音频时间戳单位

v4.1.11

  • 9969966 🐛 FIX: gb推测视频编码格式时判断错误

v4.1.10

  • 9969966 🐛 FIX: gb推测视频编码格式时判断错误

v4.1.9

  • 5482ab4 👌 IMPROVE: 更先进的rtp包乱序重排算法

v4.1.8

  • 61eaaab 🐛 FIX: gb插件dts防止自动生成

v4.1.7

  • 54f01a0 🐛 FIX: 控制台修改配置文件的功能

v4.1.6

  • 09570a6 🐛 FIX: 录制功能

v4.1.5

  • 00ff25e 🐛 FIX: 兼容go1.19 和m1

v4.1.4

  • 33b5c46 🐛 FIX: 修复aac包比较小的情况下导致访问越界问题

v4.1.3

  • 2b1bf24 🐛 修复logrotate插件windows下编译失败的bug

v4.1.0

  • d05bd7b 📦 NEW: 新增edge插件,提供简单级联功能

v4.0.13

  • 6f9fe7c 🐛 FIX: rtmp插件与srs服务器互通的问题

v4.0.12

  • 96d886c 🐛 FIX: hook插件读取配置文件错误

v4.0.11

  • ca2f695 🐛 FIX: gb拉流信令拼接错误

v4.0.10

  • 0fd608a 🐛 FIX: engine中订阅关键帧被覆盖问题,gb的ptzcmd中发送的deviceID值问题,acc的rtp包超过一个mtu时的解析问题

v4.0.9

  • d5e6a51 🐛 FIX: dts在无B帧情况下的生成机制修正,gb插件增加设备信息持久化重启实例后可快速恢复

v4.0.8

  • e035cf0 👌 IMPROVE: 增加rtsp拉流报错信息,gb插件增加ps流dump功能方便排查错误

v4.0.7

  • f82c423 🚀 RELEASE: 修复远端拉流保存并发问题,修复gb拉流PS包解析bug,导出部分插件

v4.0.6

  • 87f0806 API增加获取远端导入的流以及向远端推流的信息

v4.0.5

  • da69aae 修复gb插件中的pts和dts覆盖bug,兼容rtsp协议sdp中无sps和pps问题

v4.0.4

  • 6e8081a 1、增加配置日志级别;2、发布者增加可以配置断线延迟退出时间配置

v4.0.3

  • 70b5c55 修复数据轨道释放导致读取错误,以及写入annexb格式时的dts生成问题

v4.0.2

  • 4486c61 对rtmp协议写入数据增加判空逻辑

v4.0.1

  • 29f574a 增加10s的fps和bps历史统计,rtsp插件增加拉流时强制指定协议的配置,修复若干bug

v4.0.0

  • d12052e 修复gb28181插件ssrc取值以及ip获取的兼容性

v4.0.0

  • 9234c10 修复gb28181插件ssrc取值以及ip获取的兼容性

v4.0.0-beta9

  • 7a0964b Merge branch 'v4' of github.com:langhuihui/monibuca into v4
v4 发布日志 has loaded