Module: AviGlitch

Defined in:
lib/aviglitch.rb,
lib/aviglitch/avi.rb,
lib/aviglitch/base.rb,
lib/aviglitch/frame.rb,
lib/aviglitch/frames.rb

Overview

AviGlitch provides the ways to glitch AVI formatted video files.

Synopsis:

You can manipulate each frame, like:

avi = AviGlitch.open '/path/to/your.avi'
avi.frames.each do |frame|
  if frame.is_keyframe?
    frame.data = frame.data.gsub(/\d/, '0')
  end
end
avi.output '/path/to/broken.avi'

Using the method glitch, it can be written like:

avi = AviGlitch.open '/path/to/your.avi'
avi.glitch(:keyframe) do |data|
  data.gsub(/\d/, '0')
end
avi.output '/path/to/broken.avi'

Since v0.2.2, it allows to specify the temporary directory. This library duplicates and processes a input file in the temporary directory, which by default is Dir.tmpdir. To specify the custom temporary directory, use tmpdir: option, like:

avi = AviGlitch.open '/path/to/your.avi', tmpdir: '/path/to/tmpdir'

Defined Under Namespace

Classes: Avi, Base, Frame, Frames

Constant Summary collapse

VERSION =
'0.2.2'
BUFFER_SIZE =
2 ** 24

Class Method Summary collapse

Class Method Details

.open(path_or_frames, tmpdir: nil) ⇒ Object

Returns AviGlitch::Base instance. It requires path_or_frames as String or Pathname, or Frames instance. Additionally, it allows tmpdir: as the internal temporary directory.



49
50
51
52
53
54
55
# File 'lib/aviglitch.rb', line 49

def open path_or_frames, tmpdir: nil
  if path_or_frames.kind_of?(Frames)
    path_or_frames.to_avi
  else
    AviGlitch::Base.new(Pathname(path_or_frames), tmpdir: tmpdir)
  end
end