PROJECT // Fluorite // Libraries
Modern FFMPEG bindings, fluent Crystal DSL, streaming process wrapper, smart presets, and interactive Opal TUI.
Fluorite delivers next-generation FFMPEG bindings, a fluent Crystal DSL, an asynchronous streaming process wrapper, smart conversion presets, and a full-screen Opal terminal UI. It turns complex, arcane ffmpeg and ffprobe command strings into elegant, type-safe, and self-documenting Crystal code.
Key Features:
- Fluent Block & Chainable DSL: Express complex inputs, multi-stream mappings, hardware acceleration, video/audio codecs, and filter graphs naturally in type-safe Crystal (
Fluorite.build do ... end). - Microsecond Real-Time Progress Streaming: Non-blocking asynchronous fiber execution with structured progress events (FPS, percentage, speed, dynamic ETA countdown, bitrate, size).
- Smart Conversion Presets:
- Discord Bit Budgeting: Automatically measures media duration, calculates total bit allocation ($V + A$), and transcodes video guaranteed to fit under Discord's 10MB/25MB/50MB upload limits. - Crisp 2-Pass GIF: Generates optimum 256-color palettes with Lanczos scaling for non-dithered high-definition GIFs. - Web FastStart: Optimizes MP4 containers for instant browser playback by moving the moov atom up front. - Lossless Stream-Copy Trim: Millisecond cutting (-c copy) without re-encoding. - Hardware Acceleration: Automatic GPU detection and mapping for NVIDIA NVENC (h264_nvenc, hevc_nvenc, av1_nvenc), Intel QSV, AMD AMF, and Apple VideoToolbox.
- Deep Media Probing (
Fluorite::Probe): Type-safe parser forffprobeJSON, providing structured containers, audio/video stream specs, framerates, color spaces, aspect ratios, and tags. - Interactive Opal Terminal UI (
fluorite tui): Full-screen workspace built onsol-vin/opalfeaturing file browsing, media inspector cards, preset launcher, live Unicode progress gauges, FPS sparklines, and raw command preview. - Low-Level C FFI Bindings (
Fluorite::C/LibAV): Native declarations forlibavcodec,libavformat, andlibavutil.