module Ffmprb class Process class Input # TODO? speed-up/slow-down def pace(ratio) Paced.new self, pace: ratio end class Paced < ChainBase attr_reader :ratio def initialize(unfiltered, pace:) super unfiltered @ratio = pace end def filters_for(lbl, video:, audio:) # Pacing lbl_aux = "pc#{lbl}" super(lbl_aux, video: video, audio: audio) + [ *((video && channel?(:video))? Filter.setpts(@ratio, "#{lbl_aux}:v", "#{lbl}:v"): nil), *((audio && channel?(:audio))? Filter.atempo(@ratio, "#{lbl_aux}:a", "#{lbl}:a"): nil) ] end end end end end