class SrtSlicer::SrtSlicer
Public Class Methods
new(input_file, srt_file, start_time=nil, end_time=nil)
click to toggle source
# File lib/srt_slicer.rb, line 6 def initialize(input_file, srt_file, start_time=nil, end_time=nil) @input_file = input_file.split(".") @srt_file = srt_file @start_time = start_time @end_time = end_time @output_files = [] end
Public Instance Methods
clear()
click to toggle source
# File lib/srt_slicer.rb, line 35 def clear @output_files.each { |f| system "rm #{f}" } end
slice()
click to toggle source
# File lib/srt_slicer.rb, line 14 def slice f = open(srt_file) num = 1 f.each do |line| next unless line.index("-->") line = line.chomp.split(" ") delta = Time.parse(line[2]) - Time.parse(line[0]) current = line[0].gsub(',', '.') output_file = "#{input_file[0]}-#{num.to_s.rjust(3, 0.to_s)}.#{input_file[1]}" next unless (start_time.nil? && end_time.nil?) || (Time.parse(current) > Time.parse(start_time) && Time.parse(line[2]) < Time.parse(end_time)) system "ffmpeg -ss #{current} -t #{delta} -i #{input_file.join(".")} #{output_file}" @output_files << output_file num += 1 end f.close end
Private Instance Methods
end_time()
click to toggle source
# File lib/srt_slicer.rb, line 52 def end_time @end_time end
input_file()
click to toggle source
# File lib/srt_slicer.rb, line 40 def input_file @input_file end
srt_file()
click to toggle source
# File lib/srt_slicer.rb, line 44 def srt_file @srt_file end
start_time()
click to toggle source
# File lib/srt_slicer.rb, line 48 def start_time @start_time end