Class: FFSplitter::FFMpeg

Inherits:
Object
  • Object
show all
Defined in:
lib/ffsplitter/ffmpeg.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(filename, output_directory = nil) ⇒ FFMpeg

Returns a new instance of FFMpeg.



5
6
7
8
9
# File 'lib/ffsplitter/ffmpeg.rb', line 5

def initialize(filename, output_directory=nil)
  @filename = filename
  @output_directory = output_directory
  @runner = CommandRunner
end

Instance Attribute Details

#filenameObject

Returns the value of attribute filename.



3
4
5
# File 'lib/ffsplitter/ffmpeg.rb', line 3

def filename
  @filename
end

#output_directoryObject

Returns the value of attribute output_directory.



3
4
5
# File 'lib/ffsplitter/ffmpeg.rb', line 3

def output_directory
  @output_directory
end

#runnerObject

Returns the value of attribute runner.



3
4
5
# File 'lib/ffsplitter/ffmpeg.rb', line 3

def runner
  @runner
end

Instance Method Details

#chapter_command(chapter) ⇒ Object



20
21
22
23
# File 'lib/ffsplitter/ffmpeg.rb', line 20

def chapter_command(chapter)
  output_file = File.expand_path(chapter.filename, output_directory)
  "-i '#{filename}' -ss #{chapter.start_time} -to #{chapter.end_time} -c copy '#{output_file}.mp4'"
end

#encode(chapters) ⇒ Object



11
12
13
14
# File 'lib/ffsplitter/ffmpeg.rb', line 11

def encode(chapters)
  commands = chapters.collect { |c| chapter_command(c) }
  runner.run("ffmpeg #{commands.join(" ")}")
end

#read_metadataObject



16
17
18
# File 'lib/ffsplitter/ffmpeg.rb', line 16

def 
  runner.run("ffmpeg -i '#{filename}' -v quiet -f ffmetadata -")
end