The pure-Rust FFmpeg + OpenCV replacement just closed a wave of codec gaps and got faster spectral math.
Today we released OxiMedia 0.1.6 — a patent-free, memory-safe reconstruction of both FFmpeg (multimedia processing) and OpenCV (computer vision), unified into a single pure-Rust framework.
No C. No C++. No FFmpeg binaries. No OpenCV Python bindings. No pkg-config, no LD_LIBRARY_PATH, no brew install ffmpeg opencv. OxiMedia compiles to a single static binary (or to wasm32-unknown-unknown for the browser) and runs everywhere — laptops, edge servers, cloud, and the web — with zero system libraries and zero patent royalties.
Why OxiMedia 0.1.6 matters
For decades, professional media and computer-vision work meant living inside the massive C/C++ ecosystems of FFmpeg and OpenCV — with their complex build systems, segfault-prone manual memory management, heavy system dependencies, and patent royalties on common codecs (H.264, HEVC, AAC).
0.1.6 is a consolidation release: it turns scaffolding into working code and pays down internal debt. Concrete wins, all grounded in this cycle’s work:
- 13 stubs resolved. Color-conversion paths in
oximedia-accel(RGB↔YCbCr, RGBA↔BGRA, NV12, HSV, linear↔sRGB) now produce real output; the Vorbis codebook VQ decode is wired into the active path; ACES Output Device Transform variants (P3-D65, Rec.709, Rec.2020, D60-sim, sRGB) emit correct results; the DASH segment HTTP fetch is no longer a placeholder; and system font directory scanning is implemented across macOS, Linux, and Windows. - OxiFFT upgraded to 0.3.0. OxiFFT 0.3.0 delivers a Makhoul-reduction DCT-II (~4× faster than 0.2.0), plan caching for the R2r/R2c solvers, and hand-optimized AVX-512 codelets for sizes 16/32/64. All 13 FFT-dependent crates migrated cleanly with zero performance regressions on the spectral-flux and MIR benchmarks.
- 81,582 tests passing (0 failures, 245 skipped,
cargo nextest run --workspace --all-features), with zero clippy warnings workspace-wide and a clean WASM check.
At 0.1.6 the workspace is 108 crates and ~2.69M lines of pure Rust — every crate marked stable.
Technical Deep Dive: how the layers fit
The framework is organized into clean functional layers across its 108 workspace crates:
-
Foundation (
oximedia-core,oximedia-gpu,oximedia-simd,oximedia-accel) — wgpu compute shaders, hand-written SIMD kernels, an async Tokio job queue, zero-copy buffers, and the color-space conversion helpers filled in this cycle. -
Codecs & Containers (
oximedia-codec,oximedia-container) — royalty-free codecs only: AV1, VP9, VP8, Theora, Opus, Vorbis, FLAC, MP3, packed into MP4, MKV, MPEG-TS, and OGG. Streaming via HLS, DASH, RTMP, SRT, WebRTC, and SMPTE 2110. -
Computer Vision & Effects (
oximedia-cv,oximedia-effects,oximedia-image) — detection, tracking, denoising, stabilization, scene and shot detection, color management (ICC, ACES, HDR), professional image I/O (DPX, OpenEXR, TIFF), and quality metrics (PSNR, SSIM, VMAF). -
Pipeline & Production — DAG filter graphs, live streaming, broadcast switching, timeline editing, packaging (CMAF, DRM/CENC), and media asset management.
Workspace-wide guarantees hold: unsafe_code = "deny", single static binary deployment, full WASM + WebGPU support, and zero C/Fortran dependencies in default features (the math comes from the pure-Rust OxiFFT and SciRS2).
Getting Started
cargo add oximedia
A minimal transcode-to-AV1 pipeline reads, encodes, and writes — all in pure Rust, no system FFmpeg required:
use oximedia::prelude::*;
fn main() -> oximedia::Result<()> {
// Decode an input, re-encode video to royalty-free AV1, and mux to MP4.
let input = MediaReader::open("input.mkv")?;
let mut output = MediaWriter::create("output.mp4")?;
output.set_video_codec(VideoCodec::Av1)?;
output.set_audio_codec(AudioCodec::Opus)?;
for frame in input.frames() {
output.write_frame(frame?)?;
}
output.finalize()?;
Ok(())
}
What’s New in 0.1.6
- 13 codec/CV stubs resolved across
oximedia-accel,oximedia-codec,oximedia-audio,oximedia-image,oximedia-lut, andoximedia-caption-gen— color conversion, Vorbis VQ decode, ACES ODT variants, DASH HTTP segment fetch, and system font discovery. - OxiFFT 0.3.0 across the workspace — Makhoul-reduction DCT-II (~4× faster), plan caching, and AVX-512 codelets; all 13 dependent crates migrated cleanly.
exr.rsrefactored into 9 modules withsplitrs— the previously 2,000+ line OpenEXR reader is now split into focusedcore,compression,channels,metadata,scan_lines,tiles,deep,multipart, andmodfiles, all under the 2,000-line policy, with no public API changes.- AWS SDK version constraints aligned to the actual Cargo.lock pins for the S3/MediaConvert/MediaLive/MediaPackage cloud paths (cosmetic).
- RUSTSEC-2026-0104 documented and ignored — a reachable panic in
rustls-webpkiCRL parsing, transitive via the AWS SDK; OxiMedia never performs CRL checks, so the path is unreachable. The patched route requires a C dependency excluded by the Pure-Rust Policy, so the advisory is documented andcargo auditexits 0. - 81,582 tests passing, zero clippy warnings, WASM check clean.
Tips
- Profile the new DCT path. Anything routing through
oximedia-mir,oximedia-audio-analysis, or the spectral-flux metrics benefits directly from OxiFFT 0.3.0’s faster DCT-II and plan caching — re-run your spectral benchmarks and you should see the speedup with no code changes. - ACES is real now. The P3-D65, Rec.709, Rec.2020, D60-sim, and sRGB Output Device Transforms produce correct output in this release, so HDR/wide-gamut grading paths that were previously stubbed will now render as expected.
- Color conversion in
oximedia-accel. RGB↔YCbCr, NV12, RGBA↔BGRA, HSV, and linear↔sRGB helpers are implemented — reach for these instead of hand-rolling pixel format math. - Default builds stay sovereign. The default
oximediabuild pulls in zero C/Fortran symbols. The AWS/cloud SDK surface is the only place native TLS advisories surface, and OxiMedia’s usage keeps the affected code path unreachable. - Keep files small.
oximedia-image/src/exr.rswas over 2,000 lines; we split it withsplitrs. If you vendor or fork EXR handling, the new module boundaries make it far easier to navigate.
This is the foundation
OxiMedia is the pure-Rust media and computer-vision layer of the COOLJAPAN ecosystem, and 0.1.6 leans on its siblings directly:
- OxiFFT 0.3.0 — the spectral engine behind audio analysis, MIR, alignment, and CV math.
- SciRS2 — scientific-computing primitives (linalg, random, SIMD) underpinning the CV and signal paths.
- OxiARC — pure-Rust compression (deflate, lz4, zstd) for containers and archival.
- OxiONNX — the pure-Rust ONNX runtime that powers OxiMedia’s opt-in ML pipelines without any C++
ortdependency.
Repository: https://github.com/cool-japan/oximedia
Star the repo if you’re tired of FFmpeg/OpenCV build hell and patent worries.
Pure Rust media and computer vision is here — fast, safe, patent-free, and sovereign.
— KitaSan at COOLJAPAN OÜ April 26, 2026