module Fluorite

Defined in:

fluorite.cr
fluorite/batch.cr
fluorite/c/libav.cr
fluorite/cli.cr
fluorite/config.cr
fluorite/docs.cr
fluorite/docs/a_getting_started/getting_started.cr
fluorite/docs/b_probe/media_probing.cr
fluorite/docs/c_dsl/fluent_dsl.cr
fluorite/docs/d_presets/conversion_presets.cr
fluorite/docs/e_tui/tui_studio.cr
fluorite/dsl/builder.cr
fluorite/dsl/command.cr
fluorite/dsl/filter_graph.cr
fluorite/dsl/input.cr
fluorite/dsl/output.cr
fluorite/error.cr
fluorite/presets/audio.cr
fluorite/presets/base.cr
fluorite/presets/discord.cr
fluorite/presets/gif.cr
fluorite/presets/trim.cr
fluorite/presets/web.cr
fluorite/probe/models.cr
fluorite/probe/runner.cr
fluorite/runner/process_runner.cr
fluorite/runner/progress.cr
fluorite/tui/app.cr
fluorite/version.cr

Constant Summary

VERSION = "0.1.6"

Class Method Summary

Class Method Detail

def self.build(&) #

Fluent block-based DSL to build a Command


def self.config : Config #

Global configuration singleton


def self.configure(& : Config -> ) #

def self.convert(input_path : String) : DSL::ChainBuilder #

Fluent chainable conversion starting from an input path


def self.discord(input : String, output : String, target_mb : Float64 = 24.5, &progress : Runner::Progress -> Nil) : Process::Status #

Compresses media to strictly fit under Discord's attachment size limit


def self.discord(input : String, output : String, target_mb : Float64 = 24.5) : Process::Status #

def self.gif(input : String, output : String, fps : Int32 = 15, width : Int32 = 480, &progress : Runner::Progress -> Nil) : Process::Status #

Generates high definition GIF using 2-pass palette generation


def self.gif(input : String, output : String, fps : Int32 = 15, width : Int32 = 480) : Process::Status #

def self.input(path : String) : DSL::ChainBuilder #

Fluent chainable builder starting with an input


def self.probe(target : String) : Probe::ProbeResult #

Probes a media file or URL and returns a parsed ProbeResult


def self.trim(input : String, output : String, from : String | Time::Span, to : String | Time::Span | Nil = nil) : Process::Status #

Cuts a media file losslessly in milliseconds without re-encoding


def self.web(input : String, output : String, &progress : Runner::Progress -> Nil) : Process::Status #

Creates a Web-ready MP4 with faststart moov atom


def self.web(input : String, output : String) : Process::Status #