class Bagel::Video::ClipSaver
Public Class Methods
new(clip)
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 5 def initialize(clip) @clip = clip end
Public Instance Methods
save()
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 9 def save FFMPEG.trim( source: Bagel.config.source_video, start: clip.start, duration: clip.duration, destination: clip.trim_path ) FFMPEG.filter( inputs: inputs, filters: filters, destination: clip.clip_path ) end
Private Instance Methods
fade_filter_clip()
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 34 def fade_filter_clip clip.fade ? [ FFMPEG::FadeFilter.for_clip(clip.fade) ] : [] end
fade_filters_overlay()
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 38 def fade_filters_overlay clip.overlays.map.with_index do |overlay, index| next unless overlay.fade FFMPEG::FadeFilter.for_overlay(overlay.fade, index) end.compact end
filters()
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 30 def filters fade_filter_clip + fade_filters_overlay + overlay_filters end
inputs()
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 26 def inputs [ clip.trim_path ] + clip.overlays.map(&:asset) end
overlay_filters()
click to toggle source
# File lib/bagel/video/clip_saver.rb, line 45 def overlay_filters clip.overlays.map.with_index do |overlay, index| is_last = index == clip.overlays.count - 1 FFMPEG::OverlayFilter.new( fade: overlay.fade, padding: overlay.padding, orientation: overlay.orientation, index: index, is_last: is_last ).to_s end end