Releases: OakVideoEditorCommunity/oak
Release list
v0.4.2-alpha
Oak Video Editor v0.4.2 — Release Notes / 更新说明
主题 / Theme:测试覆盖大扩充与集中 Bug 修复(无 GPU 环境可运行的 gtest)
Test coverage expansion & bug-fix round (headless, GPU-free gtest)
中文版
概览
- 测试规模:642 → 1,985 个用例(+1,343),新增测试文件 55 个,全部在 offscreen QPA、无 GPU 环境通过,全量 0 失败(56 个为既有 GPU 后端门控跳过)。
- 修复真实 Bug 70+ 个(其中崩溃/UB 类约 20 个),绝大部分附带锁定回归的测试。
- 行覆盖率(gcov):音频子系统 64% → 80.3%,节点相关 28% → 69.3%,渲染子系统 23% → 39.9%(剔除 GPU 文件后约 66%),插件 24% → 33.6%。
主要 Bug 修复(按类别)
崩溃 / 稳定性
AudioPlaybackCache零填充从未写入(write(const char*)按 C 字符串截断)且WriteSilence()死循环。NodeKeyframe默认构造函数遗留未初始化指针;Project在默认 OCIO 配置初始化前构造即段错误;Core::ShowStatusBarMessage、PanelManager单例、ProjectLoadTask、未知图形后端下的RenderManager成员、CurveView/SeekableWidget空解引用等十余处崩溃修复。NodeGroup::GetInputName、DespillNode无项目上下文、Sequence::GetTrackFromReference、PortAudio 设备索引等空指针/越界防护。
逻辑错误
- 波形同步:
PanNode关键帧声像被静默忽略、ViewerOutput音频流 tag 丢失、AudioVisualWaveform下溢越界读与长度记账错误。 - 节点:
MathNode/TrigonometryNode组合框与枚举错位、递归移动依赖失效、RemoveAllKeyframes 撤销失效、NodeValueTable::Has误用位运算、Project::cache_path()自定义路径分支反转、失败素材探测被永久缓存、富文本半透明色 RGB 丢失、序列预设交错模式丢失、mosaic 单轴匹配失效等。 - 构建:
CMAKE_C_FLAGS未加引号导致自定义编译标志破坏构建。
资源 / 状态
delete_all_keyframes死循环、TrackList信号连接泄漏、Renderer::Destroy颜色缓存资源泄漏、OpacityEffect内部节点泄漏、磁盘缓存自定义路径失效。
兼容修复
- 序列化 ID 拼写统一(ChromaKey
tolerence→tolerance,flip/ripple/swirl/tile/wave 节点 ID 域统一),旧项目文件通过新增的旧 ID 映射钩子照常加载(值与连接均保留)。
CI / 跨平台
- Windows 路径分隔符导致的测试失败、OCIO 默认配置按需初始化(Windows 套件顺序崩溃)、硬解帧断言按平台区分、图标断言兼容不同 Qt 构建、macOS 上
ViewerSmokeTimer.DifferentTimebases对调度抖动过敏感。
打包
- Vulkan 渲染后端现在随所有平台的安装包发布(此前只有 OpenGL 后端
liboakgl):Linux 各包(AppImage/deb/rpm/Arch)启用 Vulkan 构建并随包携带liboakvulkan(AppImage 同时捆绑 libvulkan,deb/rpm 依赖声明补充libvulkan1/vulkan-loader);macOS 补充vulkan-loader依赖并导出VULKAN_SDK(此前 Vulkan 后端在 macOS 从未被构建);Windows 原本已包含oakvulkan.dll。 libffmpeg_bridge.so安装位置从非标准的/usr/ffmpeg_bridge/bin改为标准的lib目录。- 构建指南(中英)补充 macOS Vulkan 后端依赖与
VULKAN_SDK设置。
English Version
Overview
- Test suite: 642 → 1,985 cases (+1,343) across 55 new test files, all passing headless (offscreen QPA, no GPU) with zero failures (56 pre-existing GPU-gated skips).
- 70+ real bugs fixed (~20 crash/UB-class), most locked in by regression tests.
- Line coverage (gcov): audio 64% → 80.3%, node 28% → 69.3%, render 23% → 39.9% (~66% excluding GPU-only files), plugin 24% → 33.6%.
Key Bug Fixes (by category)
Crashes / stability
AudioPlaybackCachezero padding never written (write(const char*)truncated at NUL) plus aWriteSilence()infinite loop.- Uninitialized
NodeKeyframepointers;Projectconstruction before OCIO default config (segfault);Core::ShowStatusBarMessage,PanelManagersingleton,ProjectLoadTask,RenderManagermembers under unknown backends,CurveView/SeekableWidgetderefs — a dozen crash fixes. - Null/out-of-range guards for
NodeGroup::GetInputName,DespillNodewithout a project,Sequence::GetTrackFromReference, PortAudio device indices.
Logic errors
- Sync:
PanNodekeyframed pan silently dropped,ViewerOutputaudio stream tag lost,AudioVisualWaveformunsigned underflow and length bookkeeping. - Nodes:
MathNode/TrigonometryNodecombo/enum misalignment, recursive dependency move, broken RemoveAllKeyframes undo,NodeValueTable::Hasbitwise misuse, invertedProject::cache_path()custom branch, failed footage probes cached forever, rich-text alpha color RGB loss, sequence preset interlacing loss, mosaic single-axis skip. - Build: unquoted
CMAKE_C_FLAGSbroke any custom C flags.
Resources / state
delete_all_keyframesinfinite loop,TrackListsignal leak,Renderer::Destroycolor-cache leak,OpacityEffectinternal node leak, dead custom disk-cache path.
Compatibility
- Serialized ID typos unified (ChromaKey
tolerence→tolerance, flip/ripple/swirl/tile/wave node ID domain); old projects keep loading via a new legacy-ID mapping hook (values and connections preserved).
CI / cross-platform
- Windows path-separator test failure, on-demand OCIO default config (Windows suite-order crash), hardware-decoded frame assertions per platform, icon assertions robust across Qt builds,
ViewerSmokeTimer.DifferentTimebasestoo sensitive to scheduling jitter on macOS.
Packaging
- The Vulkan render backend now ships in every platform's package (previously only the OpenGL backend
liboakgl): Linux packages (AppImage/deb/rpm/Arch) build with Vulkan enabled and bundleliboakvulkan(the AppImage also bundles libvulkan; deb/rpm gainlibvulkan1/vulkan-loaderdependencies); macOS adds thevulkan-loaderdependency and exportsVULKAN_SDK(the Vulkan backend was never built on macOS before); Windows already shippedoakvulkan.dll. libffmpeg_bridge.sonow installs into the standardlibdirectory instead of the non-standard/usr/ffmpeg_bridge/bin.- Build guides (EN/ZH) document the macOS Vulkan backend dependencies and the
VULKAN_SDKvariable.
v0.4.1-alpha
Oak Video Editor v0.4.1-alpha 更新说明 / Release Notes
中文版
代理剪辑
• 新增独立的代理对话框,统一入口:工具菜单"代理设置..."、项目面板右键、时间轴片段右键;可查看各素材代理状态、批量生成/删除。
• 支持按素材独立的代理预设:单个素材可使用自定义分辨率、CRF、编码预设、封装格式和音频开关,随项目文件保存;未自定义的素材仍使用全局设置。
• 代理文件现在包含音频(AAC),预览时代理音画均可使用;导出仍始终使用原始高质量素材。
• ffmpeg 路径可配置:依次尝试 用户配置路径 → 系统 PATH → 常见安装位置(如 macOS 的 Homebrew 路径),找不到时给出明确提示。
• 偏好设置"磁盘"页新增"在代理中包含音频"和"ffmpeg 可执行文件"设置项。
LUT 与色彩
• 新增全局 LUT 库:在"偏好设置 > LUT"中管理库目录(递归扫描 .cube/.3dl);OCIO LUT 节点的文件行提供库内容下拉选择,"其他(自定义文件)..."仍可手动指定路径。
• OCIO LUT 节点不再静默透传:文件缺失、扩展名不支持或加载失败时会在状态栏显示原因(渲染仍安全透传)。
• 重新启用 ColorDialog 中 display → reference 的逆向转换和 Display 选项卡(旧 OCIO 反向崩溃已修复并有回归测试覆盖)。
• OCIO 线性调色节点:逐帧强制 white clamp > black clamp,关键帧/连接驱动下也不会产生非法变换;静态黑位钳制时白位钳制的 UI 最小值自动跟随。
音频同步
• 波形同步精度提升:未缓存的波形区域不再按静音参与计算,互相关自动跳过无效窗口。
• 素材属性对话框新增源起始时间手动编辑(支持撤销),不再完全依赖元数据自动探测。
• 新增变速同步:"按波形同步(调整速度)"在整体偏移对齐置信度不足时自动估计速率差并应用为片段速度(单次可撤销操作)。
平台与打包修复
• 修复 macOS 上语言为英语时"工具 > 首选项"菜单项不显示的问题。
• 修复视频节点直接连接输出节点时预览黑屏的问题。
• 修复 Linux 上音频后端默认直接使用 ALSA 导致没有声音的问题。
• 修复 Linux 安装包(AppImage/deb/rpm/Arch)缺少 oak-render-worker 导致渲染不可用的问题。
• 修复 Windows 安装包缺少 ffmpeg_bridge.dll(及其依赖的 FFmpeg 运行库)导致无法启动的问题。
其他
...
v0.4.0-alpha
Oak Video Editor v0.4.0-alpha Release Notes
⚠️ Pre-release / 预发布版本
This is an alpha pre-release intended for testing and feedback. It may contain crashes, data-loss bugs, or unfinished workflows. Please test broadly in non-production environments and report issues.
这是一个 alpha 预发布版本,仅供测试和收集反馈。它可能包含崩溃、数据丢失风险或未完成的工作流。请在非生产环境中广泛测试,并提交问题反馈。
Highlights / 主要更新
Color & LUT / 色彩与 LUT
- LUT file support (.cube / .3dl)
Added an OCIO LUT node that supports industry-standard.cubeand.3dllookup tables, with robust direction handling and render-worker compatibility. - LUT 文件支持(.cube / .3dl)
新增 OCIO LUT 节点,支持行业标准的.cube和.3dl查找表,优化方向切换处理,并兼容独立渲染进程。
Scopes & Color Wheels / 示波器与色轮
- Software scope rendering
New backend-neutral scopes for waveform, vectorscope, and histogram monitoring. - Three-way color wheels panel
Added lift/gamma/gain color correction controls. - 软件示波器渲染
新增后端无关的波形图、矢量示波器和直方图监看。 - 三向色轮面板
新增 Lift / Gamma / Gain 色彩校正控件。
Audio Sync / 音频同步
- Waveform auto-sync
Automatic alignment of dual-system audio recordings by matching waveforms directly on the timeline. - BWF timecode sync
Support for synchronizing clips using Broadcast Wave Format (BWF) timecode. - Audio meters (LUFS / VU)
Added loudness and VU metering for audio monitoring. - 波形自动同步
支持在时间线上直接匹配波形,自动对齐双系统录音。 - BWF 时间码同步
支持使用 Broadcast Wave Format(BWF)时间码同步片段。 - 音频表(LUFS / VU)
新增响度(LUFS)和 VU 表用于音频监看。
Proxy Media Workflow / 代理媒体工作流
- Implemented full proxy generation, decoding, and toggle workflow to improve playback performance on high-resolution footage.
- Added batch proxy actions in the Project Explorer and persistent "Use Proxy" state.
- 实现完整的代理生成、解码和开关工作流,以提升高分辨率素材的播放性能。
- 在项目资源管理器中新增批量代理操作,并持久化“使用代理”状态。
Render Engine / 渲染引擎
- Dynamic render backend split
Separated OpenGL and Vulkan backends into dynamically loaded libraries with a backend-neutral viewer path. - Out-of-process render worker
Heavy rendering is now offloaded to a dedicatedoak-render-workerprocess for improved stability and isolation. - Hardware decoding support
Added GPU-accelerated video decoding path. - 动态渲染后端拆分
将 OpenGL 和 Vulkan 后端拆分为可动态加载的库,并提供后端无关的 Viewer 路径。 - 独立渲染进程
繁重渲染任务现在由独立的oak-render-worker进程承担,提高稳定性与隔离性。 - 硬件解码支持
新增 GPU 加速视频解码路径。
UI / UX / 用户界面与体验
- Improved node parameter editor: jump from node view, correct dock/tab activation, and drag-release crash fixes.
- Flattened Behavior preferences into sidebar categories.
- Added node parameter editor shortcut and double-click to scroll to node.
- 改进节点参数编辑器:支持从节点视图跳转、正确激活停靠/标签页、修复拖拽释放崩溃。
- 将“行为”首选项平铺为侧边栏分类。
- 新增节点参数编辑器快捷键,双击节点可滚动定位。
Preview & Playback / 预览与播放
- Default to full-resolution preview.
- Use F16 and 10-bit packed preview formats to reduce GPU-to-CPU readback bandwidth.
- Fixed audio waveform freeze, scene rect, and timebase refresh issues.
- Fixed crashes when toggling proxy or closing the export dialog during export.
- 默认使用完整分辨率预览。
- 使用 F16 和 10-bit packed 预览格式,降低 GPU 到 CPU 的回读带宽。
- 修复音频波形冻结、场景范围和时间基刷新问题。
- 修复播放中切换代理以及导出时关闭导出对话框导致的崩溃。
Code Quality / 代码质量
- Expanded Google Test coverage across core, codec, render, and UI modules.
- Reformatted C/C++ sources and headers with the project's
.clang-formatconfiguration. - Updated
CONTRIBUTING.mdto reference the Linux Kernel Coding Style (tabs, Javadoc comments, original naming rules retained). - 扩展核心、编解码、渲染和 UI 模块的 Google Test 覆盖。
- 使用项目
.clang-format配置重新格式化 C/C++ 源文件和头文件。 - 更新
CONTRIBUTING.md,采用 Linux Kernel Coding Style(使用 Tab、Javadoc 注释、保留原命名规则)。
Testing Needed / 需要广泛测试
We need broad testing across Windows, macOS, and Linux on:
- LUT workflow with
.cube/.3dlfiles and OCIO config switching. - Scope panels under different color spaces.
- Three-way color wheel behavior on timeline clips.
- Waveform sync accuracy for dual-system audio.
- BWF timecode sync with professional recorders.
- Proxy workflow generation, decoding, and toggle during playback.
- Out-of-process render worker stability on long renders and exports.
- macOS app bundle launch and code signing after the rebrand.
我们诚挚邀请用户在 Windows、macOS 和 Linux 上广泛测试以下场景:
.cube/.3dlLUT 工作流及 OCIO 配置切换。- 不同色彩空间下的示波器面板。
- 时间线片段上三向色轮的实际效果。
- 双系统录音的波形同步精度。
- 专业录音机生成的 BWF 时间码同步。
- 代理生成、解码及播放中切换代理的稳定性。
- 长时间渲染和导出时独立渲染 worker 的稳定性。
- 重命名后的 macOS 应用包启动与签名情况。
Downloads / 下载
See the Assets section below for installers and packages for your platform.
请在下方的 Assets 区域下载适合您平台的安装包。
v0.3.0-alpha
Add OpenFX plugin support.