abrizer 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (77) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +11 -0
  3. data/.travis.yml +5 -0
  4. data/Gemfile +6 -0
  5. data/LICENSE.txt +21 -0
  6. data/README.md +91 -0
  7. data/Rakefile +10 -0
  8. data/Vagrantfile +76 -0
  9. data/abrizer.gemspec +31 -0
  10. data/ansible/development-playbook.retry +1 -0
  11. data/ansible/development-playbook.yml +19 -0
  12. data/ansible/development.ini +2 -0
  13. data/ansible/roles/basic-setup/tasks/main.yml +39 -0
  14. data/ansible/roles/bento4/tasks/main.yml +14 -0
  15. data/ansible/roles/ffmpeg/defaults/main.yml +6 -0
  16. data/ansible/roles/ffmpeg/tasks/ff-libraries.yml +21 -0
  17. data/ansible/roles/ffmpeg/tasks/ffmpeg.yml +18 -0
  18. data/ansible/roles/ffmpeg/tasks/libfdk_aac.yml +19 -0
  19. data/ansible/roles/ffmpeg/tasks/libmp3lame.yml +20 -0
  20. data/ansible/roles/ffmpeg/tasks/libogg.yml +18 -0
  21. data/ansible/roles/ffmpeg/tasks/libopus.yml +20 -0
  22. data/ansible/roles/ffmpeg/tasks/libvorbis.yml +18 -0
  23. data/ansible/roles/ffmpeg/tasks/libvpx.yml +18 -0
  24. data/ansible/roles/ffmpeg/tasks/main.yml +80 -0
  25. data/ansible/roles/ffmpeg/tasks/x264.yml +18 -0
  26. data/ansible/roles/ffmpeg/tasks/x265.yml +14 -0
  27. data/ansible/roles/ffmpeg/tasks/yasm.yml +19 -0
  28. data/ansible/roles/franklinkim.environment/.clog.toml +4 -0
  29. data/ansible/roles/franklinkim.environment/.editorconfig +16 -0
  30. data/ansible/roles/franklinkim.environment/.gitignore +2 -0
  31. data/ansible/roles/franklinkim.environment/.travis.yml +17 -0
  32. data/ansible/roles/franklinkim.environment/CHANGELOG.md +14 -0
  33. data/ansible/roles/franklinkim.environment/LICENSE +22 -0
  34. data/ansible/roles/franklinkim.environment/Makefile +11 -0
  35. data/ansible/roles/franklinkim.environment/README.md +100 -0
  36. data/ansible/roles/franklinkim.environment/Vagrantfile +23 -0
  37. data/ansible/roles/franklinkim.environment/defaults/main.yml +13 -0
  38. data/ansible/roles/franklinkim.environment/meta/.galaxy_install_info +1 -0
  39. data/ansible/roles/franklinkim.environment/meta/main.yml +143 -0
  40. data/ansible/roles/franklinkim.environment/meta/readme.yml +11 -0
  41. data/ansible/roles/franklinkim.environment/tasks/config.yml +21 -0
  42. data/ansible/roles/franklinkim.environment/tasks/main.yml +8 -0
  43. data/ansible/roles/franklinkim.environment/tests/main.yml +8 -0
  44. data/ansible/roles/rvm_io.rvm1-ruby/.gitignore +6 -0
  45. data/ansible/roles/rvm_io.rvm1-ruby/.travis.yml +52 -0
  46. data/ansible/roles/rvm_io.rvm1-ruby/LICENSE +22 -0
  47. data/ansible/roles/rvm_io.rvm1-ruby/README.md +142 -0
  48. data/ansible/roles/rvm_io.rvm1-ruby/defaults/main.yml +44 -0
  49. data/ansible/roles/rvm_io.rvm1-ruby/meta/main.yml +21 -0
  50. data/ansible/roles/rvm_io.rvm1-ruby/tasks/main.yml +4 -0
  51. data/ansible/roles/rvm_io.rvm1-ruby/tasks/rubies.yml +78 -0
  52. data/ansible/roles/rvm_io.rvm1-ruby/tasks/rvm.yml +55 -0
  53. data/ansible/roles/rvm_io.rvm1-ruby/tests/inventory +1 -0
  54. data/ansible/roles/rvm_io.rvm1-ruby/tests/test.yml +14 -0
  55. data/ansible/roles/rvm_io.rvm1-ruby/vars/main.yml +22 -0
  56. data/bin/console +14 -0
  57. data/bin/setup +8 -0
  58. data/exe/abrizer +5 -0
  59. data/lib/abrizer/adaptation.rb +53 -0
  60. data/lib/abrizer/adaptation_finder.rb +59 -0
  61. data/lib/abrizer/all.rb +20 -0
  62. data/lib/abrizer/cleaner.rb +37 -0
  63. data/lib/abrizer/cli.rb +84 -0
  64. data/lib/abrizer/ffmpeg_processor.rb +59 -0
  65. data/lib/abrizer/ffprobe_informer.rb +69 -0
  66. data/lib/abrizer/filepath_helpers.rb +33 -0
  67. data/lib/abrizer/package_dash_bento.rb +35 -0
  68. data/lib/abrizer/package_dash_shaka.rb +49 -0
  69. data/lib/abrizer/package_hls_bento.rb +35 -0
  70. data/lib/abrizer/package_hls_shaka.rb +50 -0
  71. data/lib/abrizer/processor.rb +8 -0
  72. data/lib/abrizer/progressive_mp4.rb +37 -0
  73. data/lib/abrizer/progressive_vp9.rb +57 -0
  74. data/lib/abrizer/sprites.rb +24 -0
  75. data/lib/abrizer/version.rb +3 -0
  76. data/lib/abrizer.rb +22 -0
  77. metadata +232 -0
@@ -0,0 +1,33 @@
1
+ module Abrizer
2
+ module FilepathHelpers
3
+ def audio_filepath
4
+ File.join output_directory, "#{basename}-audio.m4a"
5
+ end
6
+
7
+ def audio_filepath_fragmented
8
+ File.join output_directory, "#{basename}-audio-frag.m4a"
9
+ end
10
+
11
+ def webvtt_input_filepath
12
+ File.join filename_directory, "#{basename}.vtt"
13
+ end
14
+
15
+ def output_directory
16
+ if @output_directory
17
+ @output_directory
18
+ else
19
+ File.join filename_directory, basename
20
+ end
21
+ end
22
+
23
+ def filename_directory
24
+ File.dirname @filename
25
+ end
26
+
27
+ # TODO: don't assume all incoming files will be .mp4
28
+ def basename
29
+ extname = File.extname @filename
30
+ File.basename @filename, extname
31
+ end
32
+ end
33
+ end
@@ -0,0 +1,35 @@
1
+ module Abrizer
2
+ class PackageDashBento
3
+
4
+ include FilepathHelpers
5
+
6
+ def initialize(filename, output_dir=nil)
7
+ @filename = filename
8
+ @output_directory = output_dir
9
+ @adaptations = Abrizer::AdaptationFinder.new(@filename).adaptations
10
+ end
11
+
12
+ def package
13
+ # Must change to output directory so this all works as intended
14
+ Dir.chdir output_directory
15
+ `#{bento_cmd}`
16
+ end
17
+
18
+ def video_inputs
19
+ @adaptations.map do |adaptation|
20
+ adaptation.filepath_fragmented(@filename, output_directory)
21
+ end
22
+ end
23
+
24
+ def bento_cmd
25
+ cmd = %Q|mp4dash --output-dir=fmp4 --force --use-segment-template-number-padding --profiles=live --hls |
26
+ if File.exist? webvtt_input_filepath
27
+ cmd += %Q| [+format=webvtt,+language=eng]#{webvtt_input_filepath} |
28
+ end
29
+ cmd += %Q| #{video_inputs.join(' ')} [+language=eng]#{audio_filepath_fragmented} |
30
+ puts cmd
31
+ cmd
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,49 @@
1
+ module Abrizer
2
+ class PackageDashShaka
3
+
4
+ include FilepathHelpers
5
+
6
+ def initialize(filename, output_dir=nil)
7
+ @filename = filename
8
+ @adaptations = Abrizer::AdaptationFinder.new(@filename).adaptations
9
+ end
10
+
11
+ def package
12
+ make_directory
13
+ Dir.chdir output_directory
14
+ `#{shaka_cmd}`
15
+ end
16
+
17
+ def video_inputs
18
+ @adaptations.map do |adaptation|
19
+ filepath = adaptation.filepath(@filename)
20
+ adaptation_basename = File.basename filepath, '.mp4'
21
+ output_filename = File.join 'dash', "#{adaptation_basename}-dash.mp4"
22
+ %Q|"input=#{filepath},stream=video,output=#{output_filename}"|
23
+ end
24
+ end
25
+
26
+ def audio_input
27
+ dash_audio_filename = File.join 'dash', "#{basename}-audio-dash.m4a"
28
+ "input=#{audio_filepath},stream=audio,output=#{dash_audio_filename}"
29
+ end
30
+
31
+ def mpd_filename
32
+ File.join 'dash', "#{basename}.mpd"
33
+ end
34
+
35
+ def shaka_cmd
36
+ %Q|shaka-packager #{video_inputs.join(' ')} #{audio_input} --profile on-demand --mpd_output #{mpd_filename}|
37
+ end
38
+
39
+ def make_directory
40
+ FileUtils.mkdir dash_directory unless File.exist? dash_directory
41
+ end
42
+
43
+ def dash_directory
44
+ File.join output_directory, 'dash'
45
+ end
46
+
47
+
48
+ end
49
+ end
@@ -0,0 +1,35 @@
1
+ module Abrizer
2
+ class PackageHlsBento
3
+
4
+ include FilepathHelpers
5
+
6
+ def initialize(filename, output_dir=nil)
7
+ @filename = filename
8
+ @output_directory = output_dir
9
+ @adaptations = Abrizer::AdaptationFinder.new(@filename).adaptations
10
+ end
11
+
12
+ def package
13
+ # Must change to output directory so this all works as intended
14
+ Dir.chdir output_directory
15
+ `#{bento_cmd}`
16
+ end
17
+
18
+ def video_inputs
19
+ @adaptations.map do |adaptation|
20
+ adaptation.filepath_fragmented(@filename, output_directory)
21
+ end
22
+ end
23
+
24
+ def bento_cmd
25
+ cmd = %Q|mp4hls --output-dir=hls --force --output-single-file |
26
+ if File.exist? webvtt_input_filepath
27
+ cmd += %Q| [+format=webvtt,+language=eng]#{webvtt_input_filepath} |
28
+ end
29
+ cmd += %Q| #{video_inputs.join(' ')} [+language=eng]#{audio_filepath_fragmented} |
30
+ puts cmd
31
+ cmd
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,50 @@
1
+ module Abrizer
2
+ class PackageHlsShaka
3
+
4
+ include FilepathHelpers
5
+
6
+ def initialize(filename, output_dir=nil)
7
+ @filename = filename
8
+ @adaptations = Abrizer::AdaptationFinder.new(@filename).adaptations
9
+ end
10
+
11
+ def package
12
+ make_directory
13
+ Dir.chdir hls_directory
14
+ `#{shaka_cmd}`
15
+ end
16
+
17
+ def video_inputs
18
+ @adaptations.map do |adaptation|
19
+ filepath = adaptation.filepath(@filename)
20
+ adaptation_basename = File.basename filepath, '.mp4'
21
+ segment_template = "#{adaptation_basename}-$Number$.ts"
22
+ adaptation_hls_playlist = "#{adaptation_basename}.m3u8"
23
+ %Q|'input=#{filepath},stream=video,segment_template=#{segment_template},playlist_name=#{adaptation_hls_playlist}'|
24
+ end
25
+ end
26
+
27
+ def audio_input
28
+ hls_audio_filename = "#{basename}-audio-$Number$.ts"
29
+ hls_audio_playlist = "#{basename}-audio.m3u8"
30
+ %Q| 'input=#{audio_filepath},stream=audio,segment_template=#{hls_audio_filename},playlist_name=#{hls_audio_playlist},hls_group_id=AUDIO,hls_name=ENGLISH' |
31
+ end
32
+
33
+ def mpd_filename
34
+ File.join 'dash', "#{basename}.mpd"
35
+ end
36
+
37
+ def shaka_cmd
38
+ %Q|shaka-packager #{video_inputs.join(' ')} #{audio_input} --single_segment=false --hls_master_playlist_output=#{basename}.m3u8|
39
+ end
40
+
41
+ def make_directory
42
+ FileUtils.mkdir hls_directory unless File.exist? hls_directory
43
+ end
44
+
45
+ def hls_directory
46
+ File.join output_directory, 'hls'
47
+ end
48
+
49
+ end
50
+ end
@@ -0,0 +1,8 @@
1
+ module Abrizer
2
+ class Processor
3
+ def self.process(filename, output_dir=nil)
4
+ ffp = FfmpegProcessor.new(filename, output_dir)
5
+ ffp.process
6
+ end
7
+ end
8
+ end
@@ -0,0 +1,37 @@
1
+ module Abrizer
2
+ class ProgressiveMp4
3
+
4
+ include FilepathHelpers
5
+
6
+ def initialize(filename, output_dir=nil)
7
+ @filename = filename
8
+ @output_directory = output_dir
9
+ find_adaptation
10
+ end
11
+
12
+ def create
13
+ `#{ffmpeg_cmd}`
14
+ end
15
+
16
+ def find_adaptation
17
+ adaptations = Abrizer::AdaptationFinder.new(@filename).adaptations
18
+ sorted = adaptations.sort_by do |adaptation|
19
+ adaptation.width
20
+ end
21
+ @adaptation = sorted[-2]
22
+ end
23
+
24
+ def input_video_filepath
25
+ @adaptation.filepath_fragmented(@filename, output_directory)
26
+ end
27
+
28
+ def ffmpeg_cmd
29
+ "ffmpeg -y -i #{input_video_filepath} -i #{audio_filepath_fragmented} -c:v copy -c:a copy #{static_filepath}"
30
+ end
31
+
32
+ def static_filepath
33
+ File.join output_directory, "progressive.mp4"
34
+ end
35
+
36
+ end
37
+ end
@@ -0,0 +1,57 @@
1
+ module Abrizer
2
+ class ProgressiveVp9
3
+
4
+ include FilepathHelpers
5
+
6
+ def initialize(filename, output_dir=nil)
7
+ @filename = filename
8
+ @output_directory = output_dir
9
+ make_directory
10
+ Dir.chdir @output_directory
11
+ find_adaptation
12
+ end
13
+
14
+ def create
15
+ `#{ffmpeg_cmd_pass1}`
16
+ `#{ffmpeg_cmd_pass2}`
17
+ end
18
+
19
+ def make_directory
20
+ FileUtils.mkdir @output_directory unless File.exist? @output_directory
21
+ end
22
+
23
+ def find_adaptation
24
+ adaptations = Abrizer::AdaptationFinder.new(@filename).adaptations
25
+ sorted = adaptations.sort_by do |adaptation|
26
+ adaptation.width
27
+ end
28
+ @adaptation = sorted.last
29
+ end
30
+
31
+ # Since we are using the VP9 as a fallback we use half the bitrate
32
+ # we would use for an MP4 encode.
33
+ def bitrate
34
+ @adaptation.bitrate/2
35
+ end
36
+
37
+ def ffmpeg_cmd_pass1
38
+ "ffmpeg -y -i #{@filename} -c:v libvpx-vp9 -b:v #{bitrate}k -c:a libvorbis \
39
+ -vf scale='#{@adaptation.width}:trunc(#{@adaptation.width}/dar/2)*2',setsar=1 \
40
+ -speed 4 -tile-columns 6 -frame-parallel 1 \
41
+ -pass 1 -passlogfile ffmpeg2pass-webm -f webm /dev/null"
42
+ end
43
+
44
+ def ffmpeg_cmd_pass2
45
+ "ffmpeg -y -i #{@filename} -c:v libvpx-vp9 -b:v #{bitrate}k -c:a libvorbis \
46
+ -vf scale='#{@adaptation.width}:trunc(#{@adaptation.width}/dar/2)*2',setsar=1 \
47
+ -speed 1 -tile-columns 6 -frame-parallel 1 -auto-alt-ref 1 -lag-in-frames 25 \
48
+ -pass 2 -passlogfile ffmpeg2pass-webm -y #{static_filepath}"
49
+ end
50
+
51
+ def static_filepath
52
+ File.join output_directory, "progressive-vp9.webm"
53
+ end
54
+
55
+
56
+ end
57
+ end
@@ -0,0 +1,24 @@
1
+ module Abrizer
2
+ class Sprites
3
+
4
+ def initialize(filename, output_dir=nil)
5
+ @filename = filename
6
+ @output_directory = File.join output_dir, 'sprites'
7
+ # TODO: make video sprites options configurable
8
+ @options = {
9
+ seconds: 10,
10
+ width: 160,
11
+ columns: 4,
12
+ group: 20,
13
+ gif: false,
14
+ keep_images: true
15
+ }
16
+ end
17
+
18
+ def create
19
+ processor = VideoSprites::Processor.new(@filename, @output_directory, @options)
20
+ processor.process
21
+ end
22
+
23
+ end
24
+ end
@@ -0,0 +1,3 @@
1
+ module Abrizer
2
+ VERSION = "0.1.0"
3
+ end
data/lib/abrizer.rb ADDED
@@ -0,0 +1,22 @@
1
+ require 'json'
2
+ require 'video_sprites'
3
+ require "abrizer/version"
4
+ require 'abrizer/filepath_helpers'
5
+ require 'abrizer/package_dash_shaka'
6
+ require 'abrizer/package_hls_shaka'
7
+ require 'abrizer/package_dash_bento'
8
+ require 'abrizer/package_hls_bento'
9
+ require 'abrizer/adaptation'
10
+ require 'abrizer/adaptation_finder'
11
+ require 'abrizer/ffmpeg_processor'
12
+ require 'abrizer/ffprobe_informer'
13
+ require 'abrizer/processor'
14
+ require 'abrizer/cleaner'
15
+ require 'abrizer/progressive_mp4'
16
+ require 'abrizer/progressive_vp9'
17
+ require 'abrizer/sprites'
18
+ require 'abrizer/all'
19
+
20
+ module Abrizer
21
+ # Your code goes here...
22
+ end
metadata ADDED
@@ -0,0 +1,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: abrizer
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Jason Ronallo
8
+ autorequire:
9
+ bindir: exe
10
+ cert_chain: []
11
+ date: 2017-01-29 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: bundler
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '1.12'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '1.12'
27
+ - !ruby/object:Gem::Dependency
28
+ name: rake
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: '10.0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: '10.0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: minitest
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: '5.0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: '5.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: colorize
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: bundler-audit
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: thor
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ type: :runtime
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: json
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :runtime
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: video_sprites
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - '='
116
+ - !ruby/object:Gem::Version
117
+ version: 0.2.0
118
+ type: :runtime
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - '='
123
+ - !ruby/object:Gem::Version
124
+ version: 0.2.0
125
+ description: Creates adaptive bitrate streams and other delivery derivatives.
126
+ email:
127
+ - jronallo@gmail.com
128
+ executables:
129
+ - abrizer
130
+ extensions: []
131
+ extra_rdoc_files: []
132
+ files:
133
+ - ".gitignore"
134
+ - ".travis.yml"
135
+ - Gemfile
136
+ - LICENSE.txt
137
+ - README.md
138
+ - Rakefile
139
+ - Vagrantfile
140
+ - abrizer.gemspec
141
+ - ansible/development-playbook.retry
142
+ - ansible/development-playbook.yml
143
+ - ansible/development.ini
144
+ - ansible/roles/basic-setup/tasks/main.yml
145
+ - ansible/roles/bento4/tasks/main.yml
146
+ - ansible/roles/ffmpeg/defaults/main.yml
147
+ - ansible/roles/ffmpeg/tasks/ff-libraries.yml
148
+ - ansible/roles/ffmpeg/tasks/ffmpeg.yml
149
+ - ansible/roles/ffmpeg/tasks/libfdk_aac.yml
150
+ - ansible/roles/ffmpeg/tasks/libmp3lame.yml
151
+ - ansible/roles/ffmpeg/tasks/libogg.yml
152
+ - ansible/roles/ffmpeg/tasks/libopus.yml
153
+ - ansible/roles/ffmpeg/tasks/libvorbis.yml
154
+ - ansible/roles/ffmpeg/tasks/libvpx.yml
155
+ - ansible/roles/ffmpeg/tasks/main.yml
156
+ - ansible/roles/ffmpeg/tasks/x264.yml
157
+ - ansible/roles/ffmpeg/tasks/x265.yml
158
+ - ansible/roles/ffmpeg/tasks/yasm.yml
159
+ - ansible/roles/franklinkim.environment/.clog.toml
160
+ - ansible/roles/franklinkim.environment/.editorconfig
161
+ - ansible/roles/franklinkim.environment/.gitignore
162
+ - ansible/roles/franklinkim.environment/.travis.yml
163
+ - ansible/roles/franklinkim.environment/CHANGELOG.md
164
+ - ansible/roles/franklinkim.environment/LICENSE
165
+ - ansible/roles/franklinkim.environment/Makefile
166
+ - ansible/roles/franklinkim.environment/README.md
167
+ - ansible/roles/franklinkim.environment/Vagrantfile
168
+ - ansible/roles/franklinkim.environment/defaults/main.yml
169
+ - ansible/roles/franklinkim.environment/meta/.galaxy_install_info
170
+ - ansible/roles/franklinkim.environment/meta/main.yml
171
+ - ansible/roles/franklinkim.environment/meta/readme.yml
172
+ - ansible/roles/franklinkim.environment/tasks/config.yml
173
+ - ansible/roles/franklinkim.environment/tasks/main.yml
174
+ - ansible/roles/franklinkim.environment/tests/main.yml
175
+ - ansible/roles/rvm_io.rvm1-ruby/.gitignore
176
+ - ansible/roles/rvm_io.rvm1-ruby/.travis.yml
177
+ - ansible/roles/rvm_io.rvm1-ruby/LICENSE
178
+ - ansible/roles/rvm_io.rvm1-ruby/README.md
179
+ - ansible/roles/rvm_io.rvm1-ruby/defaults/main.yml
180
+ - ansible/roles/rvm_io.rvm1-ruby/meta/main.yml
181
+ - ansible/roles/rvm_io.rvm1-ruby/tasks/main.yml
182
+ - ansible/roles/rvm_io.rvm1-ruby/tasks/rubies.yml
183
+ - ansible/roles/rvm_io.rvm1-ruby/tasks/rvm.yml
184
+ - ansible/roles/rvm_io.rvm1-ruby/tests/inventory
185
+ - ansible/roles/rvm_io.rvm1-ruby/tests/test.yml
186
+ - ansible/roles/rvm_io.rvm1-ruby/vars/main.yml
187
+ - bin/console
188
+ - bin/setup
189
+ - exe/abrizer
190
+ - lib/abrizer.rb
191
+ - lib/abrizer/adaptation.rb
192
+ - lib/abrizer/adaptation_finder.rb
193
+ - lib/abrizer/all.rb
194
+ - lib/abrizer/cleaner.rb
195
+ - lib/abrizer/cli.rb
196
+ - lib/abrizer/ffmpeg_processor.rb
197
+ - lib/abrizer/ffprobe_informer.rb
198
+ - lib/abrizer/filepath_helpers.rb
199
+ - lib/abrizer/package_dash_bento.rb
200
+ - lib/abrizer/package_dash_shaka.rb
201
+ - lib/abrizer/package_hls_bento.rb
202
+ - lib/abrizer/package_hls_shaka.rb
203
+ - lib/abrizer/processor.rb
204
+ - lib/abrizer/progressive_mp4.rb
205
+ - lib/abrizer/progressive_vp9.rb
206
+ - lib/abrizer/sprites.rb
207
+ - lib/abrizer/version.rb
208
+ homepage: https://github.com/jronallo/abrizer
209
+ licenses:
210
+ - MIT
211
+ metadata: {}
212
+ post_install_message:
213
+ rdoc_options: []
214
+ require_paths:
215
+ - lib
216
+ required_ruby_version: !ruby/object:Gem::Requirement
217
+ requirements:
218
+ - - ">="
219
+ - !ruby/object:Gem::Version
220
+ version: '0'
221
+ required_rubygems_version: !ruby/object:Gem::Requirement
222
+ requirements:
223
+ - - ">="
224
+ - !ruby/object:Gem::Version
225
+ version: '0'
226
+ requirements: []
227
+ rubyforge_project:
228
+ rubygems_version: 2.5.2
229
+ signing_key:
230
+ specification_version: 4
231
+ summary: Creates MPEG-DASH and HLS streams from a video file.
232
+ test_files: []