gausian-AI/Gausian_native_editor

Rustgausian.xyz

alternative to Adobe Premiere Pro、Final Cut Pro

Gausian - Rust-based local video editor for AI video production

video-editorai-videorustlocal-editormedia-production
Star Growth
Stars
1k
Forks
29
Weekly Growth
+2
Issues
5
9801k
Nov 25Feb 26Jun 26Oct 26
Artifactscrates.io
README
Gausian logo

Gausian Native Editor

Fast, native video editor and preview tool built in Rust with GPU rendering, timeline editing, and local ComfyUI integration.

Get Started • Features • Architecture • Desktop • CLI • Decoders

Visit gausian.xyz ↗  •  Join our Discord ↗

Rust UI Decoders Platforms Discord Follow on X


Gausian is a native editor focused on snappy preview, practical timeline tools, and smooth ingest/export. It supports hardware decoding (VideoToolbox on macOS, GStreamer pipelines cross‑platform), a WGPU preview pipeline, and integrates with a local ComfyUI for prompt‑based generation via an embedded WebView and auto‑import of outputs. A CLI is included for headless operations.

👥 Contributors

Contributors

✨ Features

  • GPU-accelerated preview (WGPU) with YUV→RGB shaders and readback
  • Timeline editing, assets panel, project persistence (SQLite)
  • Local ingest: FFmpeg/ffprobe probing, image/video/audio
  • Exporters: FCPXML (1.9/1.10), FCP7 XML, EDL, JSON
  • Proxy generation via GStreamer (ProRes/NVENC/VAAPI/software)
  • Local ComfyUI: optional embedded WebView and auto‑import from a local ComfyUI output folder
  • Screenplay/Storyboard helpers with LLM providers (OpenAI, etc.)
  • Footage analysis with Twelve Labs Pegasus (opt‑in): describe, summarise, or shot‑list a clip from a URL or asset
  • Cross-platform desktop (macOS/Windows/Linux)

🚀 Getting Started

Prerequisites

  • Rust (stable)
  • FFmpeg/ffprobe on PATH
  • GStreamer for proxy/advanced decode paths (recommended on all platforms; required for some proxies)
    • macOS (Homebrew): brew install ffmpeg gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad gst-libav
    • Ubuntu/Debian: sudo apt-get install -y ffmpeg gstreamer1.0-libav gstreamer1.0-plugins-{base,good,bad} gstreamer1.0-tools
    • Windows: install a recent GStreamer build (system PATH), FFmpeg
  • ComfyUI (local, optional): required if you want to open the embedded WebView or auto‑import its outputs. Install and run ComfyUI locally (default at http://127.0.0.1:8188). See https://github.com/comfyanonymous/ComfyUI

Desktop app

cargo run --bin desktop

CLI (headless)

# Show commands
cargo run -p cli -- --help

🧩 Architecture

  • apps/desktop (egui + wgpu)
    • Timeline, assets, GPU preview, audio engine, export
    • ComfyUI integration (local only): optional embedded WebView and auto‑import
  • apps/comfywebview
    • Minimal native WebView window for ComfyUI
  • crates/*
    • timeline — graph, tracks, commands
    • project — SQLite DB, migrations, asset/proxy/job tables
    • media-io — probe/export helpers, waveforms, encoders
    • renderer — WGPU renderer and WGSL shaders
    • exporters — FCPXML/FCP7/EDL/JSON
    • plugin-host — WASM/Python stubs
    • native-decoder — VideoToolbox (macOS) + optional GStreamer backend
    • cli — import/export/convert/analyze/new/encoders
Project Structure (click to expand)
apps/
  desktop/          # egui UI, preview, decode, export
  comfywebview/     # lightweight native WebView for ComfyUI

crates/
  timeline/         # timeline data structures and commands
  project/          # SQLite DB + migrations
  media-io/         # probe, waveforms, proxy helpers
  renderer/         # WGPU renderer & shaders (WGSL)
  exporters/        # FCPXML/FCP7/EDL/JSON exporters
  plugin-host/      # plugin runtime stubs (WASM/Python)
  native-decoder/   # VideoToolbox & GStreamer backend
  cli/              # headless commands

formats/            # JSON specs (screenplay/storyboard)

🖥 Desktop App

Build & run

cargo run --bin desktop

Optional features

  • Embedded WebView (macOS only): cargo run --bin desktop --features embed-webview
    • Requires a local ComfyUI installation running (default http://127.0.0.1:8188)
    • In the app, set the ComfyUI Repo Path (folder containing main.py) to enable local integrations

Basic flow

  • Import media in Assets panel (drag drop or “Import path” + Add)
  • Timeline: click to seek, drag to move/trim, snapping to seconds/edges
  • Export: choose preset; FCPXML/FCP7/EDL/JSON also available
  • ComfyUI (local): set Repo Path, enable auto‑import to ingest outputs
    • Note: only local ComfyUI is supported at this time; no remote/cloud connection

🎬 Footage Analysis (Twelve Labs Pegasus)

Optional, opt‑in AI footage understanding for video production. Given a clip (a direct media URL or an uploaded Twelve Labs asset) and a prompt, the Twelve Labs Pegasus model returns a textual analysis — useful for auto‑describing footage, summarising a take, or generating a shot list. Nothing here runs unless you call it explicitly with an API key, so it does not affect any existing behaviour.

use desktop::footage_analysis::{FootageAnalyzer, PegasusConfig, VideoSource};

let analyzer = FootageAnalyzer::new(PegasusConfig::new(std::env::var("TWELVELABS_API_KEY")?))?;
let result = analyzer.analyze(
    VideoSource::url("https://example.com/clip.mp4"),
    "Summarise the action and list every distinct shot.",
)?;
println!("{}", result.text);

The integration test exercises a real Pegasus call and is skipped unless a key is present:

TWELVELABS_API_KEY=tlk_... cargo test -p desktop --test footage_analysis_tests -- --nocapture

You can grab a free API key at https://twelvelabs.io — there's a generous free tier.

🛠 CLI

Examples

# Analyze media and print JSON
cargo run -p cli -- analyze ./media/clip.mp4 --waveforms

# List hardware encoders
cargo run -p cli -- encoders

# Convert to FCPXML/EDL/JSON (demo sequence)
cargo run -p cli -- convert in.edl out.fcpxml --output-format fcpxml

See all commands

cargo run -p cli -- --help

🎞 Proxy Encoding

Cross‑platform GStreamer pipeline with hardware profiles:

  • macOS: VideoToolbox ProRes (vtdec(_hw) + vtenc_prores)
  • NVIDIA: NVENC (nvh264enc, nvvidconv)
  • Intel: VAAPI (vah264enc, vapostproc)
  • Fallback: DNxHR (software)

macOS GStreamer (Homebrew) env (used by the app)

export GST_PLUGIN_PATH=/opt/homebrew/lib/gstreamer-1.0
export GST_PLUGIN_SYSTEM_PATH=/opt/homebrew/lib/gstreamer-1.0
export GST_PLUGIN_SCANNER=/opt/homebrew/libexec/gstreamer-1.0/gst-plugin-scanner
export GST_REGISTRY_REUSE_PLUGIN_SCANNER=no

🧪 Decoder & GStreamer Notes

  • Prefer VideoToolbox on macOS; use GStreamer elsewhere (or as a macOS option)
  • To force VT over libav in GStreamer, set:
export GST_PLUGIN_FEATURE_RANK="vtdec_h264:PRIMARY+1,vtdec_hevc:PRIMARY+1"
  • One-time diagnostics:
export GST_DECODER_DIAG=1

🗺 Roadmap (Upcoming)

  • Timeline polish and UX improvements
  • Automatic LORA creator
  • Advanced color management and LUTs
  • Rich effects and transitions
  • Multi‑window workspace
  • Collaborative editing
  • Plugin marketplace

🤝 Contributing

  • Ensure rustfmt/clippy are green
  • Keep changes focused; update docs as needed
  • File issues with repro steps and logs

Built with Rust, egui, wgpu, GStreamer, and lots of 🧪.

📄 License

  • Core: MPL-2.0 (Mozilla Public License 2.0)
  • Pro Features: Separate commercial license for advanced codecs and pro features

🤝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests for new functionality
  5. Submit a pull request

🐛 Troubleshooting

Common Issues

"FFmpeg not found":

  • Install FFmpeg and ensure it's in your PATH
  • On macOS: brew install ffmpeg
  • On Windows: Download from https://ffmpeg.org/

"No hardware encoders detected":

  • This is normal on some systems
  • Software encoders will be used (slower but functional)
  • Ensure GPU drivers are up to date

Performance Issues:

  • Close other GPU-intensive applications
  • Reduce preview resolution in timeline
  • Enable proxy generation for large files

📞 Support

For questions, bug reports, or feature requests, please open an issue on the project repository.


Star History

Star History Chart

Built with ❤️ in Rust | GPU-Accelerated | Cross-Platform | Open Source