Class: CutCut::Timelapse
- Inherits:
-
Base
- Object
- Base
- CutCut::Timelapse
show all
- Defined in:
- lib/cutcut/timelapse.rb
Overview
Instance Attribute Summary
Attributes inherited from Base
#input, #output
Instance Method Summary
collapse
Methods inherited from Base
#initialize
Constructor Details
This class inherits a constructor from CutCut::Base
Instance Method Details
#basenames ⇒ Object
8
9
10
|
# File 'lib/cutcut/timelapse.rb', line 8
def basenames
files.map { |e| File.basename(e, '.JPG').to_s }
end
|
#common_substring ⇒ Object
#convert(options = {}) ⇒ Object
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/cutcut/timelapse.rb', line 29
def convert(options = {})
fps = options[:fps] || 30
execute_ffmpeg_command(
input: File.join(@input, input_basename), output: @output,
raw_options: {
input: "-f image2 -start_number #{start_number} -framerate #{fps}",
output: '-c:v libx264 -r 30 -vf scale=-1:1080 -crf 23 -preset ultrafast -pix_fmt yuv420p'
}
)
Helpers.copy_metadata(files.first, @output)
@output
end
|
#files ⇒ Object
4
5
6
|
# File 'lib/cutcut/timelapse.rb', line 4
def files
Dir.glob(File.join(input, '*.JPG'))
end
|
20
21
22
|
# File 'lib/cutcut/timelapse.rb', line 20
def input_basename
common_substring + "%#{start_number.chars.count}d.JPG"
end
|
#original_date_time ⇒ Object
24
25
26
27
|
# File 'lib/cutcut/timelapse.rb', line 24
def original_date_time
exif = MiniExiftool.new(files.first)
exif.date_time_original || exif.create_date || exif.modify_date
end
|
#start_number ⇒ Object
16
17
18
|
# File 'lib/cutcut/timelapse.rb', line 16
def start_number
basenames.first.gsub(common_substring, '')
end
|