dragonfly-ffmpeg 0.0.4 → 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.
- data/.gitignore +0 -1
- data/.rspec +3 -0
- data/Gemfile +30 -1
- data/Guardfile +14 -0
- data/dragonfly-ffmpeg.gemspec +6 -4
- data/lib/dragonfly-ffmpeg.rb +8 -7
- data/lib/dragonfly-ffmpeg/analyser.rb +4 -0
- data/lib/dragonfly-ffmpeg/encoder.rb +13 -7
- data/lib/dragonfly-ffmpeg/version.rb +1 -1
- data/spec/dragonfly-ffmpeg/analyser_spec.rb +4 -0
- data/spec/dragonfly-ffmpeg/encoder_spec.rb +86 -28
- data/spec/spec_helper.rb +24 -17
- data/spec/support/video_matchers.rb +49 -0
- metadata +66 -61
data/.gitignore
CHANGED
data/.rspec
ADDED
data/Gemfile
CHANGED
@@ -1,4 +1,33 @@
|
|
1
1
|
source "http://rubygems.org"
|
2
2
|
|
3
|
-
# Specify your gem's dependencies in dragonfly-ffmpeg.gemspec
|
4
3
|
gemspec
|
4
|
+
|
5
|
+
group :development, :test do
|
6
|
+
platforms :ruby do
|
7
|
+
gem 'spork', '>= 0.9.0.rc9'
|
8
|
+
gem 'guard-spork'
|
9
|
+
|
10
|
+
unless ENV['TRAVIS']
|
11
|
+
if RbConfig::CONFIG['target_os'] =~ /darwin/i
|
12
|
+
gem 'rb-fsevent', '>= 0.3.9'
|
13
|
+
gem 'growl', '~> 1.0.3'
|
14
|
+
end
|
15
|
+
if RbConfig::CONFIG['target_os'] =~ /linux/i
|
16
|
+
gem 'rb-inotify', '>= 0.5.1'
|
17
|
+
gem 'libnotify', '~> 0.1.3'
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
platforms :jruby do
|
23
|
+
unless ENV['TRAVIS']
|
24
|
+
if RbConfig::CONFIG['target_os'] =~ /darwin/i
|
25
|
+
gem 'growl', '~> 1.0.3'
|
26
|
+
end
|
27
|
+
if RbConfig::CONFIG['target_os'] =~ /linux/i
|
28
|
+
gem 'rb-inotify', '>= 0.5.1'
|
29
|
+
gem 'libnotify', '~> 0.1.3'
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
data/Guardfile
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
guard 'rspec', :version => 2, :cli => "--format Fuubar --color --drb --drb-port 9089" do
|
2
|
+
watch(%r{^spec/.+_spec\.rb$})
|
3
|
+
watch(%r{^spec/support/(.+)\.rb$}) { "spec" }
|
4
|
+
watch(%r{^lib/(.+)\.rb$}) { |m| "spec/lib/#{m[1]}_spec.rb" }
|
5
|
+
watch('spec/spec_helper.rb') { "spec" }
|
6
|
+
end
|
7
|
+
|
8
|
+
guard 'spork', :wait => 60, :cucumber => false, :rspec_env => { 'RAILS_ENV' => 'test' }, :rspec_port => 9089 do
|
9
|
+
watch('config/application.rb')
|
10
|
+
watch('config/environment.rb')
|
11
|
+
watch(%r{^config/environments/.+\.rb$})
|
12
|
+
watch(%r{^config/initializers/.+\.rb$})
|
13
|
+
watch('spec/spec_helper.rb')
|
14
|
+
end
|
data/dragonfly-ffmpeg.gemspec
CHANGED
@@ -19,8 +19,10 @@ Gem::Specification.new do |s|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
20
20
|
s.require_paths = ["lib"]
|
21
21
|
|
22
|
-
s.add_dependency 'dragonfly', '
|
23
|
-
s.add_dependency 'streamio-ffmpeg', '
|
24
|
-
|
25
|
-
s.add_development_dependency '
|
22
|
+
s.add_dependency 'dragonfly', '~> 0.9'
|
23
|
+
s.add_dependency 'streamio-ffmpeg', '~> 0.8.0'
|
24
|
+
|
25
|
+
s.add_development_dependency 'rspec', '~> 2.6.0'
|
26
|
+
s.add_development_dependency 'guard-rspec', '~> 0.4.2'
|
27
|
+
s.add_development_dependency 'fuubar'
|
26
28
|
end
|
data/lib/dragonfly-ffmpeg.rb
CHANGED
@@ -16,17 +16,18 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
+
require 'dragonfly'
|
20
|
+
require 'dragonfly-ffmpeg/errors'
|
21
|
+
require 'streamio-ffmpeg'
|
22
|
+
|
19
23
|
module EnMasse
|
20
24
|
module Dragonfly
|
21
|
-
module FFMPEG
|
25
|
+
module FFMPEG
|
26
|
+
autoload :Config, 'dragonfly-ffmpeg/config'
|
27
|
+
autoload :Analyser, 'dragonfly-ffmpeg/analyser'
|
28
|
+
autoload :Encoder, 'dragonfly-ffmpeg/encoder'
|
22
29
|
end
|
23
30
|
end
|
24
31
|
end
|
25
32
|
|
26
|
-
require 'dragonfly'
|
27
|
-
require 'dragonfly-ffmpeg/errors'
|
28
|
-
require 'dragonfly-ffmpeg/config'
|
29
|
-
require 'dragonfly-ffmpeg/analyser'
|
30
|
-
require 'dragonfly-ffmpeg/encoder'
|
31
|
-
|
32
33
|
Dragonfly::App.register_configuration(:ffmpeg) { EnMasse::Dragonfly::FFMPEG::Config }
|
@@ -16,14 +16,13 @@
|
|
16
16
|
# limitations under the License.
|
17
17
|
#
|
18
18
|
|
19
|
-
require 'streamio-ffmpeg'
|
20
19
|
require 'pathname'
|
21
|
-
require 'dragonfly-ffmpeg/encoder/profile'
|
22
20
|
|
23
21
|
module EnMasse
|
24
22
|
module Dragonfly
|
25
23
|
module FFMPEG
|
26
24
|
class Encoder
|
25
|
+
autoload :Profile, 'dragonfly-ffmpeg/encoder/profile'
|
27
26
|
|
28
27
|
include ::Dragonfly::Configurable
|
29
28
|
|
@@ -69,6 +68,7 @@ module EnMasse
|
|
69
68
|
|
70
69
|
def encode(temp_object, format, profile = :html5, options = {})
|
71
70
|
format = format.to_sym
|
71
|
+
|
72
72
|
raise UnsupportedFormat, "Format not supported - #{format}" unless supported_format?(format)
|
73
73
|
unless profile.is_a?(Profile)
|
74
74
|
raise UnknownEncoderProfile unless profile_defined?(format, profile.to_sym)
|
@@ -78,15 +78,21 @@ module EnMasse
|
|
78
78
|
options.merge!(profile.encoding_options)
|
79
79
|
|
80
80
|
origin = ::FFMPEG::Movie.new(temp_object.path)
|
81
|
-
tempfile = new_tempfile(format)
|
82
|
-
|
83
|
-
|
81
|
+
tempfile = new_tempfile(format, File.basename(temp_object.path, '.*'))
|
82
|
+
transcoded_file = origin.transcode(tempfile.path, options)
|
83
|
+
|
84
|
+
[
|
85
|
+
::Dragonfly::TempObject.new(File.new(transcoded_file.path)),
|
86
|
+
:name => File.basename(transcoded_file.path),
|
87
|
+
:format => format,
|
88
|
+
:ext => File.extname(transcoded_file.path)
|
89
|
+
]
|
84
90
|
end
|
85
91
|
|
86
92
|
private
|
87
93
|
|
88
|
-
def new_tempfile(ext = nil)
|
89
|
-
tempfile = ext ? Tempfile.new(["
|
94
|
+
def new_tempfile(ext = nil, name = 'dragonfly-video')
|
95
|
+
tempfile = ext ? Tempfile.new(["#{name}-", ".#{ext}"]) : Tempfile.new("#{name}-")
|
90
96
|
tempfile.binmode
|
91
97
|
tempfile.close
|
92
98
|
tempfile
|
@@ -27,6 +27,10 @@ describe EnMasse::Dragonfly::FFMPEG::Analyser do
|
|
27
27
|
@analyser.log = Logger.new(LOG_FILE)
|
28
28
|
end
|
29
29
|
|
30
|
+
it "should return the extension of the file" do
|
31
|
+
@analyser.ext(@video).should == '.mov'
|
32
|
+
end
|
33
|
+
|
30
34
|
it "should return the width" do
|
31
35
|
@analyser.v_width(@video).should == 1280
|
32
36
|
end
|
@@ -20,46 +20,104 @@ require 'spec_helper'
|
|
20
20
|
|
21
21
|
describe EnMasse::Dragonfly::FFMPEG::Encoder do
|
22
22
|
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
@encoder.output_directory = TMP_DIR
|
23
|
+
subject do
|
24
|
+
encoder = EnMasse::Dragonfly::FFMPEG::Encoder.new
|
25
|
+
encoder.output_directory = TMP_DIR
|
26
|
+
encoder
|
28
27
|
end
|
29
28
|
|
30
|
-
|
31
|
-
|
32
|
-
|
29
|
+
let(:raw_video) { Dragonfly::TempObject.new(File.new(SAMPLES_DIR + '/test-movie.mov')) }
|
30
|
+
|
31
|
+
describe "encode with default mp4 profile" do
|
32
|
+
let(:video) { subject.encode(raw_video, :mp4).first }
|
33
|
+
|
34
|
+
it "should have the h264 video codec" do
|
35
|
+
video.should have_video_codec(:h264)
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should have a mp4 file extension" do
|
39
|
+
video.should have_file_extension('.mp4')
|
40
|
+
end
|
33
41
|
end
|
34
42
|
|
35
|
-
|
36
|
-
video
|
37
|
-
|
43
|
+
describe "encode with default mp4 profile" do
|
44
|
+
let(:video) { subject.encode(raw_video, :ogv).first }
|
45
|
+
|
46
|
+
it "should have the theora video codec" do
|
47
|
+
video.should have_video_codec(:theora)
|
48
|
+
end
|
49
|
+
|
50
|
+
it "should have the ogv file extension" do
|
51
|
+
video.should have_file_extension('.ogv')
|
52
|
+
end
|
38
53
|
end
|
39
54
|
|
40
|
-
|
41
|
-
video
|
42
|
-
|
55
|
+
describe "encode with default webm profile" do
|
56
|
+
let(:video) { subject.encode(raw_video, :webm).first }
|
57
|
+
|
58
|
+
it "should have the libvpx video codec" do
|
59
|
+
video.should have_video_codec(:libvpx)
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should have the webm file extension" do
|
63
|
+
video.should have_file_extension('.webm')
|
64
|
+
end
|
43
65
|
end
|
44
66
|
|
45
|
-
|
46
|
-
profile
|
47
|
-
:
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
67
|
+
describe "encode with an inline defined encoding profile" do
|
68
|
+
let(:profile) do
|
69
|
+
EnMasse::Dragonfly::FFMPEG::Encoder::Profile.new(:webm_720p,
|
70
|
+
:video_codec => "libvpx",
|
71
|
+
:resolution => "1280x720",
|
72
|
+
:frame_rate => 29.97,
|
73
|
+
:video_bitrate => 3072,
|
74
|
+
:audio_codec => "libvorbis",
|
75
|
+
:audio_channels => 2,
|
76
|
+
:audio_sample_rate => 48000,
|
77
|
+
:custom => "-f webm"
|
78
|
+
)
|
79
|
+
end
|
80
|
+
|
81
|
+
let(:video) { subject.encode(raw_video, :webm, profile).first }
|
82
|
+
|
83
|
+
it "should have the specified video codec" do
|
84
|
+
video.should have_video_codec(profile.encoding_options[:video_codec])
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should have the specified resolution" do
|
88
|
+
video.should have_resolution(profile.encoding_options[:resolution])
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should have the specified frame rate" do
|
92
|
+
video.should have_frame_rate(profile.encoding_options[:frame_rate])
|
93
|
+
end
|
94
|
+
|
95
|
+
it "should have the specified bitrate" do
|
96
|
+
video.should have_bitrate(profile.encoding_options[:video_bitrate])
|
97
|
+
end
|
98
|
+
|
99
|
+
it "should have the specified audio codec" do
|
100
|
+
video.should have_audio_codec(profile.encoding_options[:audio_codec])
|
101
|
+
end
|
102
|
+
|
103
|
+
it "should have the specified number of audio channels" do
|
104
|
+
video.should have_audio_channels(profile.encoding_options[:audio_channels])
|
105
|
+
end
|
106
|
+
|
107
|
+
it "should have the specified audio sample rate" do
|
108
|
+
video.should have_audio_sample_rate(profile.encoding_options[:audio_sample_rate])
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
it "should throw UnsupportedFormat if the format specified is not defined" do
|
113
|
+
lambda {
|
114
|
+
subject.encode(raw_video, :lol264, :html5)
|
115
|
+
}.should raise_error(EnMasse::Dragonfly::FFMPEG::UnsupportedFormat)
|
58
116
|
end
|
59
117
|
|
60
118
|
it "should throw UnknownEncoderProfile if the encoding profile is not defined" do
|
61
119
|
lambda {
|
62
|
-
|
120
|
+
subject.encode(raw_video, :webm, :a_fake_profile)
|
63
121
|
}.should raise_error(EnMasse::Dragonfly::FFMPEG::UnknownEncoderProfile)
|
64
122
|
end
|
65
123
|
|
data/spec/spec_helper.rb
CHANGED
@@ -19,26 +19,33 @@
|
|
19
19
|
require 'rubygems'
|
20
20
|
require 'bundler'
|
21
21
|
Bundler.setup(:default, :test)
|
22
|
+
require 'spork'
|
22
23
|
|
23
|
-
|
24
|
-
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
25
|
-
|
26
|
-
require '
|
27
|
-
require '
|
24
|
+
Spork.prefork do
|
25
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
26
|
+
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
27
|
+
require 'rspec'
|
28
|
+
require 'dragonfly-ffmpeg'
|
29
|
+
require 'support/video_matchers'
|
28
30
|
|
29
|
-
SAMPLES_DIR = File.expand_path(File.dirname(__FILE__) + '/../samples') unless defined?(SAMPLES_DIR)
|
31
|
+
SAMPLES_DIR = File.expand_path(File.dirname(__FILE__) + '/../samples') unless defined?(SAMPLES_DIR)
|
30
32
|
|
31
|
-
require 'logger'
|
32
|
-
LOG_FILE = File.dirname(__FILE__) + '/spec.log' unless defined?(LOG_FILE)
|
33
|
-
TMP_DIR = File.dirname(__FILE__) + '/tmp' unless defined?(TMP_DIR)
|
34
|
-
FileUtils.mkdir_p(TMP_DIR)
|
35
|
-
FileUtils.rm_rf Dir.glob(TMP_DIR + '/*')
|
36
|
-
FileUtils.rm_rf(LOG_FILE)
|
33
|
+
require 'logger'
|
34
|
+
LOG_FILE = File.dirname(__FILE__) + '/spec.log' unless defined?(LOG_FILE)
|
35
|
+
TMP_DIR = File.dirname(__FILE__) + '/tmp' unless defined?(TMP_DIR)
|
36
|
+
FileUtils.mkdir_p(TMP_DIR)
|
37
|
+
FileUtils.rm_rf Dir.glob(TMP_DIR + '/*')
|
38
|
+
FileUtils.rm_rf(LOG_FILE)
|
37
39
|
|
38
|
-
logger = Logger.new(LOG_FILE)
|
39
|
-
logger.level = Logger::INFO
|
40
|
-
FFMPEG.logger = logger
|
40
|
+
logger = Logger.new(LOG_FILE)
|
41
|
+
logger.level = Logger::INFO
|
42
|
+
FFMPEG.logger = logger
|
43
|
+
|
44
|
+
def test_app
|
45
|
+
Dragonfly::App.send(:new)
|
46
|
+
end
|
47
|
+
end
|
41
48
|
|
42
|
-
|
43
|
-
|
49
|
+
Spork.each_run do
|
50
|
+
# code for each spork run
|
44
51
|
end
|
@@ -22,3 +22,52 @@ RSpec::Matchers.define :have_video_codec do |v_codec|
|
|
22
22
|
analyser.video_codec(given) == v_codec.to_s
|
23
23
|
end
|
24
24
|
end
|
25
|
+
|
26
|
+
RSpec::Matchers.define :have_resolution do |resolution|
|
27
|
+
match do |given|
|
28
|
+
analyser = EnMasse::Dragonfly::FFMPEG::Analyser.new
|
29
|
+
analyser.resolution(given) == resolution.to_s
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
RSpec::Matchers.define :have_frame_rate do |frame_rate|
|
34
|
+
match do |given|
|
35
|
+
analyser = EnMasse::Dragonfly::FFMPEG::Analyser.new
|
36
|
+
analyser.frame_rate(given) == frame_rate.to_s
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
RSpec::Matchers.define :have_bitrate do |bitrate|
|
41
|
+
match do |given|
|
42
|
+
analyser = EnMasse::Dragonfly::FFMPEG::Analyser.new
|
43
|
+
analyser.bitrate(given) == bitrate.to_s
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
RSpec::Matchers.define :have_audio_codec do |audio_codec|
|
48
|
+
match do |given|
|
49
|
+
analyser = EnMasse::Dragonfly::FFMPEG::Analyser.new
|
50
|
+
analyser.audio_codec(given) == audio_codec.to_s
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
RSpec::Matchers.define :have_audio_channels do |audio_channels|
|
55
|
+
match do |given|
|
56
|
+
analyser = EnMasse::Dragonfly::FFMPEG::Analyser.new
|
57
|
+
analyser.audio_channels(given) == audio_channels.to_s
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
RSpec::Matchers.define :have_audio_sample_rate do |audio_sample_rate|
|
62
|
+
match do |given|
|
63
|
+
analyser = EnMasse::Dragonfly::FFMPEG::Analyser.new
|
64
|
+
analyser.audio_sample_rate(given) == audio_sample_rate.to_s
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
RSpec::Matchers.define :have_file_extension do |file_extension|
|
69
|
+
match do |given|
|
70
|
+
File.extname(given.path) == file_extension
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
metadata
CHANGED
@@ -1,74 +1,83 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: dragonfly-ffmpeg
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.0
|
4
5
|
prerelease:
|
5
|
-
version: 0.0.4
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- Jamie Winsor
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
dependencies:
|
16
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-09-16 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
17
15
|
name: dragonfly
|
18
|
-
|
19
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70265767650100 !ruby/object:Gem::Requirement
|
20
17
|
none: false
|
21
|
-
requirements:
|
22
|
-
- -
|
23
|
-
- !ruby/object:Gem::Version
|
24
|
-
version:
|
18
|
+
requirements:
|
19
|
+
- - ~>
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.9'
|
25
22
|
type: :runtime
|
26
|
-
version_requirements: *id001
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: streamio-ffmpeg
|
29
23
|
prerelease: false
|
30
|
-
|
24
|
+
version_requirements: *70265767650100
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: streamio-ffmpeg
|
27
|
+
requirement: &70265767649420 !ruby/object:Gem::Requirement
|
31
28
|
none: false
|
32
|
-
requirements:
|
33
|
-
- -
|
34
|
-
- !ruby/object:Gem::Version
|
29
|
+
requirements:
|
30
|
+
- - ~>
|
31
|
+
- !ruby/object:Gem::Version
|
35
32
|
version: 0.8.0
|
36
33
|
type: :runtime
|
37
|
-
version_requirements: *id002
|
38
|
-
- !ruby/object:Gem::Dependency
|
39
|
-
name: rspec
|
40
34
|
prerelease: false
|
41
|
-
|
35
|
+
version_requirements: *70265767649420
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: rspec
|
38
|
+
requirement: &70265767648120 !ruby/object:Gem::Requirement
|
42
39
|
none: false
|
43
|
-
requirements:
|
44
|
-
- -
|
45
|
-
- !ruby/object:Gem::Version
|
40
|
+
requirements:
|
41
|
+
- - ~>
|
42
|
+
- !ruby/object:Gem::Version
|
46
43
|
version: 2.6.0
|
47
44
|
type: :development
|
48
|
-
version_requirements: *id003
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: ruby-debug19
|
51
45
|
prerelease: false
|
52
|
-
|
46
|
+
version_requirements: *70265767648120
|
47
|
+
- !ruby/object:Gem::Dependency
|
48
|
+
name: guard-rspec
|
49
|
+
requirement: &70265767647660 !ruby/object:Gem::Requirement
|
53
50
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version:
|
51
|
+
requirements:
|
52
|
+
- - ~>
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 0.4.2
|
58
55
|
type: :development
|
59
|
-
|
60
|
-
|
61
|
-
|
56
|
+
prerelease: false
|
57
|
+
version_requirements: *70265767647660
|
58
|
+
- !ruby/object:Gem::Dependency
|
59
|
+
name: fuubar
|
60
|
+
requirement: &70265767647280 !ruby/object:Gem::Requirement
|
61
|
+
none: false
|
62
|
+
requirements:
|
63
|
+
- - ! '>='
|
64
|
+
- !ruby/object:Gem::Version
|
65
|
+
version: '0'
|
66
|
+
type: :development
|
67
|
+
prerelease: false
|
68
|
+
version_requirements: *70265767647280
|
69
|
+
description: FFMPEG libraries for processesing, encoding, analysing and generating
|
70
|
+
videos with Dragonfly
|
71
|
+
email:
|
62
72
|
- jamie@enmasse.com
|
63
73
|
executables: []
|
64
|
-
|
65
74
|
extensions: []
|
66
|
-
|
67
75
|
extra_rdoc_files: []
|
68
|
-
|
69
|
-
files:
|
76
|
+
files:
|
70
77
|
- .gitignore
|
78
|
+
- .rspec
|
71
79
|
- Gemfile
|
80
|
+
- Guardfile
|
72
81
|
- LICENSE
|
73
82
|
- README.md
|
74
83
|
- Rakefile
|
@@ -85,35 +94,31 @@ files:
|
|
85
94
|
- spec/dragonfly-ffmpeg/encoder_spec.rb
|
86
95
|
- spec/spec_helper.rb
|
87
96
|
- spec/support/video_matchers.rb
|
88
|
-
has_rdoc: true
|
89
97
|
homepage: https://github.com/enmasse-entertainment/dragonfly-ffmpeg
|
90
98
|
licenses: []
|
91
|
-
|
92
99
|
post_install_message:
|
93
100
|
rdoc_options: []
|
94
|
-
|
95
|
-
require_paths:
|
101
|
+
require_paths:
|
96
102
|
- lib
|
97
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
103
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
98
104
|
none: false
|
99
|
-
requirements:
|
100
|
-
- -
|
101
|
-
- !ruby/object:Gem::Version
|
102
|
-
version:
|
103
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
105
|
+
requirements:
|
106
|
+
- - ! '>='
|
107
|
+
- !ruby/object:Gem::Version
|
108
|
+
version: '0'
|
109
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
104
110
|
none: false
|
105
|
-
requirements:
|
106
|
-
- -
|
107
|
-
- !ruby/object:Gem::Version
|
108
|
-
version:
|
111
|
+
requirements:
|
112
|
+
- - ! '>='
|
113
|
+
- !ruby/object:Gem::Version
|
114
|
+
version: '0'
|
109
115
|
requirements: []
|
110
|
-
|
111
116
|
rubyforge_project: dragonfly-ffmpeg
|
112
|
-
rubygems_version: 1.
|
117
|
+
rubygems_version: 1.8.10
|
113
118
|
signing_key:
|
114
119
|
specification_version: 3
|
115
120
|
summary: A video manipulation plugin for Dragonfly
|
116
|
-
test_files:
|
121
|
+
test_files:
|
117
122
|
- spec/dragonfly-ffmpeg/analyser_spec.rb
|
118
123
|
- spec/dragonfly-ffmpeg/encoder_spec.rb
|
119
124
|
- spec/spec_helper.rb
|