Module: FFmpegCore

Defined in:
lib/ffmpeg_core.rb,
lib/ffmpeg_core/movie.rb,
lib/ffmpeg_core/probe.rb,
lib/ffmpeg_core/errors.rb,
lib/ffmpeg_core/version.rb,
lib/ffmpeg_core/screenshot.rb,
lib/ffmpeg_core/transcoder.rb,
lib/ffmpeg_core/configuration.rb

Overview

FFmpegCore - Modern Ruby wrapper for FFmpeg

A clean, well-tested alternative to streamio-ffmpeg with:

  • Modern Ruby 3+ conventions

  • Proper error handling with detailed context

  • Zero Rails dependencies (gem-ready architecture)

Examples:

Basic usage

movie = FFmpegCore::Movie.new("input.mp4")
movie.transcode("output.mp4", video_codec: "libx264", video_bitrate: "1000k")
movie.screenshot("thumb.jpg", seek_time: 1, resolution: "640x360")

Defined Under Namespace

Classes: BinaryNotFoundError, Configuration, Error, ExecutionError, InvalidInputError, Movie, OutputError, Probe, ProbeError, Screenshot, ScreenshotError, Transcoder, TranscodingError

Constant Summary collapse

VERSION =
"0.1.0"

Class Method Summary collapse

Class Method Details

.configurationObject



38
39
40
41
42
43
# File 'lib/ffmpeg_core/configuration.rb', line 38

def configuration
  @configuration_mutex ||= Mutex.new
  @configuration_mutex.synchronize do
    @configuration ||= Configuration.new
  end
end

.configuration=(config) ⇒ Object



45
46
47
48
49
50
# File 'lib/ffmpeg_core/configuration.rb', line 45

def configuration=(config)
  @configuration_mutex ||= Mutex.new
  @configuration_mutex.synchronize do
    @configuration = config
  end
end

.configure {|configuration| ... } ⇒ Object

Yields:



52
53
54
# File 'lib/ffmpeg_core/configuration.rb', line 52

def configure
  yield(configuration)
end

.reset_configuration!Object



56
57
58
59
60
61
# File 'lib/ffmpeg_core/configuration.rb', line 56

def reset_configuration!
  @configuration_mutex ||= Mutex.new
  @configuration_mutex.synchronize do
    @configuration = Configuration.new
  end
end