abrizer 0.1.0
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 +7 -0
- data/.gitignore +11 -0
- data/.travis.yml +5 -0
- data/Gemfile +6 -0
- data/LICENSE.txt +21 -0
- data/README.md +91 -0
- data/Rakefile +10 -0
- data/Vagrantfile +76 -0
- data/abrizer.gemspec +31 -0
- data/ansible/development-playbook.retry +1 -0
- data/ansible/development-playbook.yml +19 -0
- data/ansible/development.ini +2 -0
- data/ansible/roles/basic-setup/tasks/main.yml +39 -0
- data/ansible/roles/bento4/tasks/main.yml +14 -0
- data/ansible/roles/ffmpeg/defaults/main.yml +6 -0
- data/ansible/roles/ffmpeg/tasks/ff-libraries.yml +21 -0
- data/ansible/roles/ffmpeg/tasks/ffmpeg.yml +18 -0
- data/ansible/roles/ffmpeg/tasks/libfdk_aac.yml +19 -0
- data/ansible/roles/ffmpeg/tasks/libmp3lame.yml +20 -0
- data/ansible/roles/ffmpeg/tasks/libogg.yml +18 -0
- data/ansible/roles/ffmpeg/tasks/libopus.yml +20 -0
- data/ansible/roles/ffmpeg/tasks/libvorbis.yml +18 -0
- data/ansible/roles/ffmpeg/tasks/libvpx.yml +18 -0
- data/ansible/roles/ffmpeg/tasks/main.yml +80 -0
- data/ansible/roles/ffmpeg/tasks/x264.yml +18 -0
- data/ansible/roles/ffmpeg/tasks/x265.yml +14 -0
- data/ansible/roles/ffmpeg/tasks/yasm.yml +19 -0
- data/ansible/roles/franklinkim.environment/.clog.toml +4 -0
- data/ansible/roles/franklinkim.environment/.editorconfig +16 -0
- data/ansible/roles/franklinkim.environment/.gitignore +2 -0
- data/ansible/roles/franklinkim.environment/.travis.yml +17 -0
- data/ansible/roles/franklinkim.environment/CHANGELOG.md +14 -0
- data/ansible/roles/franklinkim.environment/LICENSE +22 -0
- data/ansible/roles/franklinkim.environment/Makefile +11 -0
- data/ansible/roles/franklinkim.environment/README.md +100 -0
- data/ansible/roles/franklinkim.environment/Vagrantfile +23 -0
- data/ansible/roles/franklinkim.environment/defaults/main.yml +13 -0
- data/ansible/roles/franklinkim.environment/meta/.galaxy_install_info +1 -0
- data/ansible/roles/franklinkim.environment/meta/main.yml +143 -0
- data/ansible/roles/franklinkim.environment/meta/readme.yml +11 -0
- data/ansible/roles/franklinkim.environment/tasks/config.yml +21 -0
- data/ansible/roles/franklinkim.environment/tasks/main.yml +8 -0
- data/ansible/roles/franklinkim.environment/tests/main.yml +8 -0
- data/ansible/roles/rvm_io.rvm1-ruby/.gitignore +6 -0
- data/ansible/roles/rvm_io.rvm1-ruby/.travis.yml +52 -0
- data/ansible/roles/rvm_io.rvm1-ruby/LICENSE +22 -0
- data/ansible/roles/rvm_io.rvm1-ruby/README.md +142 -0
- data/ansible/roles/rvm_io.rvm1-ruby/defaults/main.yml +44 -0
- data/ansible/roles/rvm_io.rvm1-ruby/meta/main.yml +21 -0
- data/ansible/roles/rvm_io.rvm1-ruby/tasks/main.yml +4 -0
- data/ansible/roles/rvm_io.rvm1-ruby/tasks/rubies.yml +78 -0
- data/ansible/roles/rvm_io.rvm1-ruby/tasks/rvm.yml +55 -0
- data/ansible/roles/rvm_io.rvm1-ruby/tests/inventory +1 -0
- data/ansible/roles/rvm_io.rvm1-ruby/tests/test.yml +14 -0
- data/ansible/roles/rvm_io.rvm1-ruby/vars/main.yml +22 -0
- data/bin/console +14 -0
- data/bin/setup +8 -0
- data/exe/abrizer +5 -0
- data/lib/abrizer/adaptation.rb +53 -0
- data/lib/abrizer/adaptation_finder.rb +59 -0
- data/lib/abrizer/all.rb +20 -0
- data/lib/abrizer/cleaner.rb +37 -0
- data/lib/abrizer/cli.rb +84 -0
- data/lib/abrizer/ffmpeg_processor.rb +59 -0
- data/lib/abrizer/ffprobe_informer.rb +69 -0
- data/lib/abrizer/filepath_helpers.rb +33 -0
- data/lib/abrizer/package_dash_bento.rb +35 -0
- data/lib/abrizer/package_dash_shaka.rb +49 -0
- data/lib/abrizer/package_hls_bento.rb +35 -0
- data/lib/abrizer/package_hls_shaka.rb +50 -0
- data/lib/abrizer/processor.rb +8 -0
- data/lib/abrizer/progressive_mp4.rb +37 -0
- data/lib/abrizer/progressive_vp9.rb +57 -0
- data/lib/abrizer/sprites.rb +24 -0
- data/lib/abrizer/version.rb +3 -0
- data/lib/abrizer.rb +22 -0
- 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,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
|
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: []
|