cutcut 1.3.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1ae337b09ec1288623bbf294f99b29fb62aeffdf
4
- data.tar.gz: fce49362ed35c9db79429989c20f7a0baab19004
3
+ metadata.gz: f32227fb2714e7a4f063ad906ddbae63e8114af9
4
+ data.tar.gz: 13d6426b18247c31dc1eb66ca5515071700661d3
5
5
  SHA512:
6
- metadata.gz: b3362d0c71ca3730ae848760230385163444facc53bd8d630fc09d4305eda176e8f410cdccd0518cbc18bbe765f025b6d3f89df85c488b16d4c349552022ac09
7
- data.tar.gz: beee37468252d1e12ec4b402c75a3ea75d328a724fa1e8940e2883f4a1de3983ee6fc26b51d35c2263a5c08b7578db16e7a52e28d057ec941e788c2694063a11
6
+ metadata.gz: b0f40c26b9c1bf20bfe3a60b75035c111b41e0f2b535fa1ef064a1c805afa60c88c5df329e9b4f9f7e9658dc9cb6f56915ddbdee069890b8f48ef8c7bd185d7e
7
+ data.tar.gz: afb46a68b83c4b14790f04c46be3d3a60b921a46acf8350200aca1056397eb183ab3be1c2ed410a04017dfeb274c26e313ec1cdb37dd429ff8a10af2a6d6708d
@@ -1,6 +1,23 @@
1
1
  Changelog
2
2
  =========
3
3
 
4
+ Version 1.4.2 (June 25, 2016)
5
+ -----------------------------
6
+
7
+ * Fix error when converting files with blank space characters
8
+ * Escape all input
9
+ * Rollback to rspec 3.4
10
+
11
+ Version 1.4.1 (June 17, 2016)
12
+ -----------------------------
13
+
14
+ * Update dependencies
15
+
16
+ Version 1.4.0 (June 5, 2016)
17
+ -----------------------------
18
+
19
+ * Add --raw option
20
+
4
21
  Version 1.3.0 (May 11, 2016)
5
22
  -----------------------------
6
23
 
data/README.md CHANGED
@@ -32,6 +32,7 @@ Usage: cutcut [options]
32
32
  --extract-screenshots NUMBER Screenshots per second
33
33
  --input INPUT Input
34
34
  --quality CRF CRF between 0 and 51, 0 lossless. Default to 20
35
+ --raw Raw options
35
36
  --remove-audio Video speed
36
37
  --scale SCALE_RESOLUTION Resolution to scale eg: 1280:720
37
38
  --speed NUMBER Video speed
data/bin/cutcut CHANGED
@@ -11,6 +11,7 @@ OptionParser.new do |opt|
11
11
  opt.on('--extract-screenshots NUMBER', 'Screenshots per second') { |e| options[:extract_screenshots] = e }
12
12
  opt.on('--input INPUT', 'Input') { |e| options[:input] = e }
13
13
  opt.on('--quality CRF', 'CRF between 0 and 51, 0 lossless. Default to 20') { |e| options[:quality] = e }
14
+ opt.on('--raw', 'Raw options') { |e| options[:raw] = e }
14
15
  opt.on('--remove-audio', 'Video speed') { options[:remove_audio] = true }
15
16
  opt.on('--scale SCALE_RESOLUTION', 'Resolution to scale eg: 1280:720') { |e| options[:scale] = e }
16
17
  opt.on('--speed NUMBER', 'Video speed') { |e| options[:speed] = e }
@@ -28,12 +29,14 @@ progressbar = ProgressBar.create(title: 'Converting', starting_at: 0, total: fil
28
29
  puts "#{files.count + folders.count} files found"
29
30
 
30
31
  files.each do |file|
31
- media = CutCut::Media.new(input: file)
32
+ media = CutCut::Media.new(input: Regexp.escape(file))
32
33
  scale = options[:scale] || '1920:1080'
33
34
  speed = options[:speed]
34
35
  remove_audio = options[:remove_audio]
36
+ remove_audio = true if speed.to_i != 1
37
+
35
38
  crf = options[:quality]
36
- media.convert(copy_metadata: options[:copy_metadata], scale: scale, speed: speed, remove_audio: remove_audio, crf: crf)
39
+ media.convert(copy_metadata: options[:copy_metadata], scale: scale, speed: speed, remove_audio: remove_audio, crf: crf, raw: options[:raw])
37
40
  media.extract_screenshots(fps: options[:extract_screenshots], copy_metadata: true) if options[:extract_screenshots]
38
41
  progressbar.increment
39
42
  end
@@ -41,7 +44,8 @@ end
41
44
  folders.each do |folder|
42
45
  timelapse = CutCut::Timelapse.new(input: Regexp.escape(folder), output: Regexp.escape(File.join(options[:input_dir], File.basename(folder).gsub(/\s+/, '_') + '.mp4')))
43
46
  scale = options[:scale] || '1920:1080'
44
- timelapse.convert(fps: options[:timelapse_fps] || 30, scale: scale, remove_audio: true)
47
+ crf = options[:quality]
48
+ timelapse.convert(fps: options[:timelapse_fps] || 30, scale: scale, remove_audio: true, crf: crf)
45
49
  progressbar.increment
46
50
  end
47
51
 
@@ -4,9 +4,9 @@ Gem::Specification.new do |s|
4
4
  s.email = ['stjhimy@gmail.com']
5
5
  s.homepage = 'http://github.com/stjhimy/cutcut'
6
6
  s.license = 'MIT'
7
- s.summary = 'Trim/Cut/Screenshot videos'
7
+ s.summary = 'Easily Trim/Cut/Screenshot videos'
8
8
  s.description = 'CLI for working with videos'
9
- s.version = '1.3.0'
9
+ s.version = '1.4.2'
10
10
 
11
11
  s.executables = ['cutcut']
12
12
  s.files = `git ls-files`.split("\n")
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_development_dependency 'guard', '~> 2.13'
21
21
  s.add_development_dependency 'guard-rspec', '~> 4.6'
22
+ s.add_development_dependency 'rubocop', '~> 0.4'
22
23
  s.add_development_dependency 'guard-rubocop', '~> 1.2'
23
24
  s.add_development_dependency 'rspec', '~> 3.4'
24
25
  end
@@ -14,7 +14,7 @@ module CutCut
14
14
 
15
15
  def self.copy_metadata(origin, target)
16
16
  exif = MiniExiftool.new(target.delete('\\'))
17
- exif.copy_tags_from(origin, '*')
17
+ exif.copy_tags_from(origin.delete('\\'), '*')
18
18
  end
19
19
  end
20
20
  end
@@ -24,7 +24,7 @@ module CutCut
24
24
  speed = "-filter:v \"setpts=#{options[:speed]}*PTS\"" if options[:speed]
25
25
  remove_audio = options[:remove_audio] == true ? '-an' : nil
26
26
  crf = options[:crf] || 20
27
- "-movflags +faststart -vf scale=#{scale} -c:v libx264 -crf #{crf} -preset ultrafast #{speed} #{remove_audio}"
27
+ "-movflags +faststart -vf scale=#{scale} -c:v libx264 -crf #{crf} -preset ultrafast #{speed} #{remove_audio} #{options[:raw]}"
28
28
  end
29
29
 
30
30
  def extract_screenshots(options = {})
@@ -28,12 +28,13 @@ module CutCut
28
28
 
29
29
  def convert(options = {})
30
30
  fps = options[:fps] || 30
31
- execute_ffmpeg_command(input: File.join(@input, input_basename), output: @output,
32
- raw_options: {
33
- input: "-f image2 -start_number #{start_number} -framerate #{fps}",
34
- output: '-c:v libx264 -r 30 -vf scale=-1:1080 -crf 23 -preset ultrafast -pix_fmt yuv420p'
35
- }
36
- )
31
+ execute_ffmpeg_command(
32
+ input: File.join(@input, input_basename), output: @output,
33
+ raw_options: {
34
+ input: "-f image2 -start_number #{start_number} -framerate #{fps}",
35
+ output: '-c:v libx264 -r 30 -vf scale=-1:1080 -crf 23 -preset ultrafast -pix_fmt yuv420p'
36
+ }
37
+ )
37
38
 
38
39
  Helpers.copy_metadata(files.first, @output)
39
40
  @output
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cutcut
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 1.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jhimy Fernandes Villar
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-05-11 00:00:00.000000000 Z
11
+ date: 2016-06-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
@@ -80,6 +80,20 @@ dependencies:
80
80
  - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '4.6'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rubocop
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.4'
83
97
  - !ruby/object:Gem::Dependency
84
98
  name: guard-rubocop
85
99
  requirement: !ruby/object:Gem::Requirement
@@ -161,7 +175,7 @@ rubyforge_project:
161
175
  rubygems_version: 2.4.5.1
162
176
  signing_key:
163
177
  specification_version: 4
164
- summary: Trim/Cut/Screenshot videos
178
+ summary: Easily Trim/Cut/Screenshot videos
165
179
  test_files:
166
180
  - spec/cutcut/base_spec.rb
167
181
  - spec/cutcut/helpers_spec.rb