vrtk 0.0.1.2 → 0.0.1.3
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 +4 -4
- data/Gemfile +2 -10
- data/src/vrtk/app.rb +7 -40
- data/src/vrtk/applets/all.rb +3 -1
- data/src/vrtk/applets/base_applet.rb +6 -4
- data/src/vrtk/applets/clipper_applet.rb +9 -3
- data/src/vrtk/applets/collager_applet.rb +11 -5
- data/src/vrtk/applets/help_applet.rb +60 -0
- data/src/vrtk/clipper/ffmpeg.rb +2 -3
- data/src/vrtk/clipper/font_finder.rb +4 -3
- data/src/vrtk/clipper/video_clipper.rb +8 -6
- data/src/vrtk/collager/collager.rb +3 -3
- data/src/vrtk/config.rb +3 -2
- data/src/vrtk/utils/utils.rb +0 -4
- data/src/vrtk/version.rb +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: bc874ea9f679a40013ec8f04468826bf44a49d48
|
|
4
|
+
data.tar.gz: b98fa092ab2fadbff5f7cb04d88c0d4adfc6036c
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 457c131c23c06e8dfa51a401920c9cd11e8448898d54cc7da4a421ff91ae26583c8995dcca110c6929d374b4787000f48b27aa070251d79ebc1848e6914b61ff
|
|
7
|
+
data.tar.gz: ecb880178ba91f4bd62764f9f64bd54491f4e12b610e48f050a40b85c7298998c780bbbc16de6159b77f0b48a432aea0fd1d7c9436edd2a3b39f5360b62099fa
|
data/Gemfile
CHANGED
|
@@ -7,29 +7,21 @@ git_source(:github) { |repo_name| "https://github.com/#{repo_name}" }
|
|
|
7
7
|
gemspec
|
|
8
8
|
|
|
9
9
|
group :video_clipper do
|
|
10
|
-
|
|
11
|
-
require 'logger'
|
|
10
|
+
|
|
12
11
|
end
|
|
13
12
|
|
|
14
13
|
group :collager do
|
|
15
|
-
require 'ostruct'
|
|
16
|
-
require 'logger'
|
|
17
14
|
gem 'mini_magick'
|
|
18
15
|
end
|
|
19
16
|
|
|
20
17
|
group :ffmpeg do
|
|
21
|
-
require 'ostruct'
|
|
22
|
-
require 'logger'
|
|
23
18
|
end
|
|
24
19
|
|
|
25
20
|
|
|
26
21
|
group :applets do
|
|
27
|
-
|
|
28
|
-
require 'optparse'
|
|
29
|
-
require 'logger'
|
|
22
|
+
|
|
30
23
|
end
|
|
31
24
|
|
|
32
25
|
group :app do
|
|
33
26
|
gem 'colorize'
|
|
34
|
-
require 'optparse'
|
|
35
27
|
end
|
data/src/vrtk/app.rb
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
require 'bundler'
|
|
2
|
-
|
|
3
1
|
require_relative 'config'
|
|
4
2
|
require_relative 'version'
|
|
5
3
|
|
|
6
|
-
|
|
4
|
+
require 'colorize'
|
|
5
|
+
require 'optparse'
|
|
7
6
|
|
|
8
7
|
module VRTK
|
|
9
8
|
class App
|
|
@@ -16,14 +15,14 @@ module VRTK
|
|
|
16
15
|
__exec
|
|
17
16
|
rescue VRTKError => error
|
|
18
17
|
STDERR.print 'ERROR: '.colorize :red
|
|
19
|
-
STDERR.puts error.message.colorize :
|
|
20
|
-
STDERR.puts 'Exited.'.colorize :
|
|
18
|
+
STDERR.puts error.message.colorize :light_blue
|
|
19
|
+
STDERR.puts 'Exited.'.colorize :light_blue
|
|
21
20
|
end
|
|
22
21
|
end
|
|
23
22
|
|
|
24
23
|
def __exec
|
|
25
24
|
|
|
26
|
-
opt_parse
|
|
25
|
+
applet_help = opt_parse
|
|
27
26
|
|
|
28
27
|
applet = ARGV.shift
|
|
29
28
|
|
|
@@ -37,50 +36,18 @@ module VRTK
|
|
|
37
36
|
end
|
|
38
37
|
|
|
39
38
|
def opt_parse
|
|
40
|
-
|
|
41
|
-
opts.banner = banner
|
|
42
|
-
|
|
43
|
-
opts.on('-?', '--help', 'See this help') do |_|
|
|
44
|
-
puts opts
|
|
45
|
-
exit 0
|
|
46
|
-
end
|
|
47
|
-
|
|
48
|
-
opts.on('-v', '--version', 'Print version') do |_|
|
|
49
|
-
puts "VRTK #{VRTK::VERSION}"
|
|
50
|
-
exit 0
|
|
51
|
-
end
|
|
52
|
-
end.parse!
|
|
39
|
+
|
|
53
40
|
end
|
|
54
41
|
|
|
55
42
|
private
|
|
56
43
|
|
|
57
|
-
def banner
|
|
58
|
-
<<END
|
|
59
|
-
-== Video Releaser's toolkit ==-
|
|
60
|
-
Usage: #{$PROGRAM_NAME} <applet>
|
|
61
|
-
Applets:
|
|
62
|
-
#{get_applets}
|
|
63
|
-
Options:
|
|
64
|
-
END
|
|
65
|
-
end
|
|
66
44
|
|
|
67
45
|
def no_applet
|
|
68
46
|
STDERR.print 'ERROR: '.colorize(:red)
|
|
69
|
-
STDERR.puts "invalid usage!\nCall #{$
|
|
47
|
+
STDERR.puts "invalid usage!\nCall #{File.basename($PROGRAM_NAME)} help.".colorize :light_blue
|
|
70
48
|
exit 0
|
|
71
49
|
end
|
|
72
50
|
|
|
73
|
-
def get_applets
|
|
74
|
-
text = []
|
|
75
|
-
VRTK::Config::APPLETS.each do |_, applet|
|
|
76
|
-
text << <<END
|
|
77
|
-
#{applet.id}
|
|
78
|
-
#{applet.name}
|
|
79
|
-
#{applet.desc}
|
|
80
|
-
END
|
|
81
|
-
end
|
|
82
51
|
|
|
83
|
-
text.join $\
|
|
84
|
-
end
|
|
85
52
|
end
|
|
86
53
|
end
|
data/src/vrtk/applets/all.rb
CHANGED
|
@@ -2,7 +2,9 @@ require 'bundler'
|
|
|
2
2
|
|
|
3
3
|
require_relative '../../vrtk'
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
require 'ostruct'
|
|
6
|
+
require 'optparse'
|
|
7
|
+
require 'logger'
|
|
6
8
|
|
|
7
9
|
module VRTK::Applets
|
|
8
10
|
class BaseApplet
|
|
@@ -10,9 +12,9 @@ module VRTK::Applets
|
|
|
10
12
|
@argv = argv
|
|
11
13
|
|
|
12
14
|
@applet = {
|
|
13
|
-
name: name,
|
|
14
|
-
id: id,
|
|
15
|
-
desc: desc,
|
|
15
|
+
name: self.class.name,
|
|
16
|
+
id: self.class.id,
|
|
17
|
+
desc: self.class.desc,
|
|
16
18
|
|
|
17
19
|
}
|
|
18
20
|
|
|
@@ -4,10 +4,11 @@ require_relative '../../vrtk'
|
|
|
4
4
|
require_relative 'base_applet'
|
|
5
5
|
require_relative '../clipper/video_clipper'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
require 'ostruct'
|
|
8
|
+
require 'optparse'
|
|
9
|
+
require 'logger'
|
|
8
10
|
|
|
9
11
|
module VRTK::Applets
|
|
10
|
-
|
|
11
12
|
class ClipperApplet < BaseApplet
|
|
12
13
|
def init_options
|
|
13
14
|
|
|
@@ -15,7 +16,7 @@ module VRTK::Applets
|
|
|
15
16
|
|
|
16
17
|
OptionParser.new do |opts|
|
|
17
18
|
|
|
18
|
-
opts.banner = "-== #{name} ==-\n#{desc}\nUsage: #{$PROGRAM_NAME} #{id} [options]"
|
|
19
|
+
opts.banner = "-== #{self.class.name} ==-\n#{self.class.desc}\nUsage: #{File.basename($PROGRAM_NAME)} #{self.class.id} [options]"
|
|
19
20
|
|
|
20
21
|
opts.on('-?', '--help', 'This message') do |_|
|
|
21
22
|
puts opts
|
|
@@ -30,6 +31,10 @@ module VRTK::Applets
|
|
|
30
31
|
@options.count = v.to_i
|
|
31
32
|
end
|
|
32
33
|
|
|
34
|
+
opts.on('-f', '--font-size <n>', 'Font size for timestamp. If not specified, 200 is used.') do |v|
|
|
35
|
+
@options.font_size = v.to_i
|
|
36
|
+
end
|
|
37
|
+
|
|
33
38
|
opts.on('-q', '--silent', 'Do not generate additional output') do |v|
|
|
34
39
|
@options.silent = v
|
|
35
40
|
end
|
|
@@ -49,6 +54,7 @@ module VRTK::Applets
|
|
|
49
54
|
input_file: @options.input,
|
|
50
55
|
clips_count: @options.count,
|
|
51
56
|
output_dir: @options.output_dir,
|
|
57
|
+
font_size: @options.font_size,
|
|
52
58
|
logger: Logger.new(STDERR, level: (@options.silent ? Logger::Severity::FATAL : Logger::Severity::INFO))
|
|
53
59
|
)
|
|
54
60
|
.perform
|
|
@@ -4,23 +4,28 @@ require_relative '../../vrtk'
|
|
|
4
4
|
require_relative 'base_applet'
|
|
5
5
|
require_relative '../collager/collager'
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
require 'ostruct'
|
|
8
|
+
require 'optparse'
|
|
9
|
+
require 'logger'
|
|
8
10
|
|
|
9
11
|
module VRTK::Applets
|
|
10
12
|
|
|
11
13
|
class CollagerApplet < BaseApplet
|
|
12
14
|
|
|
15
|
+
include VRTK
|
|
13
16
|
include VRTK::Collage
|
|
14
17
|
|
|
15
18
|
WILDCARDS = "(wildcards allowed, '%' instead of '*', '\#' instead of '?')"
|
|
16
19
|
|
|
17
20
|
def init_options
|
|
18
21
|
|
|
19
|
-
@options = OpenStruct.new({
|
|
22
|
+
@options = OpenStruct.new({
|
|
23
|
+
files: []
|
|
24
|
+
})
|
|
20
25
|
|
|
21
26
|
OptionParser.new do |opts|
|
|
22
27
|
|
|
23
|
-
opts.banner = "-== #{name} ==-\n#{desc}\nUsage: #{$PROGRAM_NAME} #{id} [options]"
|
|
28
|
+
opts.banner = "-== #{self.class.name} ==-\n#{self.class.desc}\nUsage: #{File.basename($PROGRAM_NAME)} #{self.class.id} [options]"
|
|
24
29
|
|
|
25
30
|
opts.on('-?', '--help', 'This message') do |v|
|
|
26
31
|
puts opts
|
|
@@ -63,10 +68,10 @@ module VRTK::Applets
|
|
|
63
68
|
|
|
64
69
|
def run
|
|
65
70
|
|
|
66
|
-
raise CollagerError, 'no input file specified!' unless @options.
|
|
71
|
+
raise CollagerError, 'no input file specified!' unless @options.files
|
|
67
72
|
|
|
68
73
|
VRTK::Collager.new(
|
|
69
|
-
|
|
74
|
+
input_files: @options.files,
|
|
70
75
|
output_file: @options.output,
|
|
71
76
|
tile_ratio: @options.ratio,
|
|
72
77
|
collage_width: @options.width
|
|
@@ -86,4 +91,5 @@ module VRTK::Applets
|
|
|
86
91
|
'collager'
|
|
87
92
|
end
|
|
88
93
|
end
|
|
94
|
+
|
|
89
95
|
end
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
require 'bundler'
|
|
2
|
+
|
|
3
|
+
require_relative '../../vrtk'
|
|
4
|
+
require_relative 'base_applet'
|
|
5
|
+
|
|
6
|
+
require 'ostruct'
|
|
7
|
+
require 'optparse'
|
|
8
|
+
require 'logger'
|
|
9
|
+
|
|
10
|
+
module VRTK::Applets
|
|
11
|
+
class HelpApplet < BaseApplet
|
|
12
|
+
|
|
13
|
+
def init_options
|
|
14
|
+
OptionParser.new do |opts|
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
def run
|
|
20
|
+
puts banner
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
def self.name
|
|
24
|
+
'Help applet'
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
def self.id
|
|
28
|
+
'help'
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def self.desc
|
|
32
|
+
'Displays this message'
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
private
|
|
36
|
+
def banner
|
|
37
|
+
<<END
|
|
38
|
+
-== Video Releaser's toolkit ==-
|
|
39
|
+
Usage: #{File.basename($PROGRAM_NAME)} <applet>
|
|
40
|
+
Applets:
|
|
41
|
+
#{get_applets}
|
|
42
|
+
END
|
|
43
|
+
end
|
|
44
|
+
|
|
45
|
+
def get_applets
|
|
46
|
+
text = []
|
|
47
|
+
VRTK::Config::APPLETS.each do |_, applet|
|
|
48
|
+
text << <<END
|
|
49
|
+
#{applet.id}
|
|
50
|
+
#{applet.name}
|
|
51
|
+
#{applet.desc}
|
|
52
|
+
END
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
text.join $\
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
end
|
|
59
|
+
|
|
60
|
+
end
|
data/src/vrtk/clipper/ffmpeg.rb
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
require 'bundler'
|
|
2
|
-
|
|
3
1
|
require_relative '../../vrtk'
|
|
4
2
|
require_relative '../utils/utils'
|
|
5
3
|
|
|
6
|
-
|
|
4
|
+
require 'ostruct'
|
|
5
|
+
require 'logger'
|
|
7
6
|
|
|
8
7
|
module VRTK::Clipper
|
|
9
8
|
|
|
@@ -12,6 +11,8 @@ module VRTK::Clipper
|
|
|
12
11
|
|
|
13
12
|
class FontFinder
|
|
14
13
|
|
|
14
|
+
include VRTK
|
|
15
|
+
|
|
15
16
|
DEFAULT_DIRS = ['.', File.dirname(__FILE__)]
|
|
16
17
|
|
|
17
18
|
def initialize
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
require 'bundler'
|
|
2
|
-
|
|
3
1
|
require_relative 'ffmpeg'
|
|
4
2
|
require_relative 'font_finder'
|
|
5
3
|
require_relative '../utils/utils'
|
|
6
4
|
require_relative 'clipper_error'
|
|
7
5
|
|
|
8
|
-
|
|
6
|
+
require 'ostruct'
|
|
7
|
+
require 'logger'
|
|
9
8
|
|
|
10
9
|
STDNUL = (File.open(File::NULL, 'w'))
|
|
11
10
|
|
|
@@ -17,17 +16,19 @@ module VRTK
|
|
|
17
16
|
include VRTK::Utils
|
|
18
17
|
|
|
19
18
|
CMD_DURATION = "%{ffprobe} -show_format -i \"%{input_file}\" -v 0 | sed -n \"s/duration=//p\""
|
|
20
|
-
CMD_CLIPS = "%{ffmpeg} -v 0 -i \"%{input_file}\" -vframes %{count} -vf \"drawtext=fontfile='%{font_file}': timecode='0\\:0\\:0\\:0': timecode_rate=60: x=100: y=50: fontsize
|
|
19
|
+
CMD_CLIPS = "%{ffmpeg} -v 0 -i \"%{input_file}\" -vframes %{count} -vf \"drawtext=fontfile='%{font_file}': timecode='0\\:0\\:0\\:0': timecode_rate=60: x=100: y=50: fontsize=%{font_size}: fontcolor=white@1: borderw=3: bordercolor=black@1\" -r %{freq} -f image2 \"%{output_dir}/sc%%06d.jpeg\""
|
|
21
20
|
|
|
22
21
|
def initialize(
|
|
23
22
|
input_file:,
|
|
24
23
|
clips_count: 16,
|
|
25
24
|
output_dir: nil,
|
|
25
|
+
font_size: 200,
|
|
26
26
|
logger: nil
|
|
27
27
|
)
|
|
28
28
|
@options = OpenStruct.new ({
|
|
29
29
|
input: mk_input(input_file),
|
|
30
|
-
count: clips_count,
|
|
30
|
+
count: clips_count || 16,
|
|
31
|
+
font_size: font_size || 200,
|
|
31
32
|
output: output_dir || "#{input_file}.dir",
|
|
32
33
|
logger: logger || Logger.new(STDNUL)
|
|
33
34
|
})
|
|
@@ -55,7 +56,8 @@ module VRTK
|
|
|
55
56
|
freq: get_clip_frequency(get_duration, @options.count),
|
|
56
57
|
output_dir: @options.output,
|
|
57
58
|
count: @options.count,
|
|
58
|
-
font_file: FontFinder.find_font('
|
|
59
|
+
font_file: FontFinder.find_font('consola'),
|
|
60
|
+
font_size: @options.font_size
|
|
59
61
|
})
|
|
60
62
|
|
|
61
63
|
@options.logger.info "shell.exec #{cmd}"
|
data/src/vrtk/config.rb
CHANGED
|
@@ -5,7 +5,8 @@ require_relative 'applets/all'
|
|
|
5
5
|
module VRTK::Config
|
|
6
6
|
# noinspection RubyStringKeysInHashInspection
|
|
7
7
|
APPLETS = {
|
|
8
|
-
'clipper'
|
|
9
|
-
'collager' => VRTK::Applets::CollagerApplet
|
|
8
|
+
'clipper' => VRTK::Applets::ClipperApplet,
|
|
9
|
+
'collager' => VRTK::Applets::CollagerApplet,
|
|
10
|
+
'help' => VRTK::Applets::HelpApplet
|
|
10
11
|
}
|
|
11
12
|
end
|
data/src/vrtk/utils/utils.rb
CHANGED
data/src/vrtk/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: vrtk
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.0.1.
|
|
4
|
+
version: 0.0.1.3
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- MRAKOBEZE
|
|
@@ -59,6 +59,7 @@ files:
|
|
|
59
59
|
- src/vrtk/applets/base_applet.rb
|
|
60
60
|
- src/vrtk/applets/clipper_applet.rb
|
|
61
61
|
- src/vrtk/applets/collager_applet.rb
|
|
62
|
+
- src/vrtk/applets/help_applet.rb
|
|
62
63
|
- src/vrtk/clipper/clipper_error.rb
|
|
63
64
|
- src/vrtk/clipper/ffmpeg.rb
|
|
64
65
|
- src/vrtk/clipper/font_finder.rb
|