axtro-rvideo 0.9.6
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/CHANGELOG +70 -0
- data/ENV +100 -0
- data/ENV2 +129 -0
- data/LICENSE +20 -0
- data/Manifest +67 -0
- data/README +91 -0
- data/RULES +11 -0
- data/Rakefile +63 -0
- data/axtro-rvideo.gemspec +36 -0
- data/config/boot.rb +25 -0
- data/lib/rvideo.rb +44 -0
- data/lib/rvideo/errors.rb +24 -0
- data/lib/rvideo/float.rb +7 -0
- data/lib/rvideo/frame_capturer.rb +129 -0
- data/lib/rvideo/inspector.rb +483 -0
- data/lib/rvideo/reporter.rb +176 -0
- data/lib/rvideo/reporter/views/index.html.erb +27 -0
- data/lib/rvideo/reporter/views/report.css +27 -0
- data/lib/rvideo/reporter/views/report.html.erb +81 -0
- data/lib/rvideo/reporter/views/report.js +9 -0
- data/lib/rvideo/string.rb +5 -0
- data/lib/rvideo/tools/abstract_tool.rb +414 -0
- data/lib/rvideo/tools/ffmpeg.rb +286 -0
- data/lib/rvideo/tools/ffmpeg2theora.rb +42 -0
- data/lib/rvideo/tools/flvtool2.rb +50 -0
- data/lib/rvideo/tools/mencoder.rb +103 -0
- data/lib/rvideo/tools/mp4box.rb +21 -0
- data/lib/rvideo/tools/mp4creator.rb +35 -0
- data/lib/rvideo/tools/mplayer.rb +31 -0
- data/lib/rvideo/tools/qtfaststart.rb +37 -0
- data/lib/rvideo/tools/yamdi.rb +44 -0
- data/lib/rvideo/transcoder.rb +120 -0
- data/lib/rvideo/version.rb +9 -0
- data/rvideo.gemspec +36 -0
- data/scripts/txt2html +67 -0
- data/setup.rb +1585 -0
- data/spec/files/boat.avi +0 -0
- data/spec/files/kites.mp4 +0 -0
- data/spec/fixtures/ffmpeg_builds.yml +28 -0
- data/spec/fixtures/ffmpeg_results.yml +608 -0
- data/spec/fixtures/files.yml +398 -0
- data/spec/fixtures/recipes.yml +58 -0
- data/spec/integrations/formats_spec.rb +315 -0
- data/spec/integrations/frame_capturer_spec.rb +26 -0
- data/spec/integrations/inspection_spec.rb +112 -0
- data/spec/integrations/recipes_spec.rb +0 -0
- data/spec/integrations/rvideo_spec.rb +17 -0
- data/spec/integrations/transcoder_integration_spec.rb +29 -0
- data/spec/integrations/transcoding_spec.rb +9 -0
- data/spec/spec.opts +1 -0
- data/spec/spec_helper.rb +16 -0
- data/spec/support.rb +36 -0
- data/spec/units/abstract_tool_spec.rb +123 -0
- data/spec/units/ffmpeg_spec.rb +327 -0
- data/spec/units/flvtool2_spec.rb +324 -0
- data/spec/units/frame_capturer_spec.rb +72 -0
- data/spec/units/inspector_spec.rb +59 -0
- data/spec/units/mencoder_spec.rb +4994 -0
- data/spec/units/mp4box_spec.rb +34 -0
- data/spec/units/mp4creator_spec.rb +34 -0
- data/spec/units/mplayer_spec.rb +34 -0
- data/spec/units/qtfaststart_spec.rb +35 -0
- data/spec/units/string_spec.rb +8 -0
- data/spec/units/transcoder_spec.rb +156 -0
- data/tasks/deployment.rake +5 -0
- data/tasks/testing.rake +27 -0
- data/tasks/transcoding.rake +40 -0
- data/tasks/website.rake +8 -0
- metadata +178 -0
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
module RVideo
|
|
4
|
+
module Tools
|
|
5
|
+
|
|
6
|
+
describe Mp4box do
|
|
7
|
+
before do
|
|
8
|
+
setup_mp4box_spec
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should initialize with valid arguments" do
|
|
12
|
+
@mp4box.class.should == Mp4box
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the correct tool_command" do
|
|
16
|
+
@mp4box.tool_command.should == 'MP4Box'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should mixin AbstractTool" do
|
|
20
|
+
Mp4box.included_modules.include?(AbstractTool::InstanceMethods).should be_true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should set supported options successfully" do
|
|
24
|
+
@mp4box.options[:output_file].should == @options[:output_file]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def setup_mp4box_spec
|
|
31
|
+
@options = {:output_file => "foo"}
|
|
32
|
+
@command = "MP4Box $output_file$ -ipod"
|
|
33
|
+
@mp4box = RVideo::Tools::Mp4box.new(@command, @options)
|
|
34
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
module RVideo
|
|
4
|
+
module Tools
|
|
5
|
+
|
|
6
|
+
describe Mp4creator do
|
|
7
|
+
before do
|
|
8
|
+
setup_mp4creator_spec
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should initialize with valid arguments" do
|
|
12
|
+
@mp4creator.class.should == Mp4creator
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the correct tool_command" do
|
|
16
|
+
@mp4creator.tool_command.should == 'mp4creator'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should mixin AbstractTool" do
|
|
20
|
+
Mp4creator.included_modules.include?(AbstractTool::InstanceMethods).should be_true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should set supported options successfully" do
|
|
24
|
+
@mp4creator.options[:output_file].should == @options[:output_file]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def setup_mp4creator_spec
|
|
31
|
+
@options = {:output_file => "foo"}
|
|
32
|
+
@command = "mp4creator -create=temp.aac $output_file$"
|
|
33
|
+
@mp4creator = RVideo::Tools::Mp4creator.new(@command, @options)
|
|
34
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
module RVideo
|
|
4
|
+
module Tools
|
|
5
|
+
|
|
6
|
+
describe Mplayer do
|
|
7
|
+
before do
|
|
8
|
+
setup_mplayer_spec
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should initialize with valid arguments" do
|
|
12
|
+
@mplayer.class.should == Mplayer
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the correct tool_command" do
|
|
16
|
+
@mplayer.tool_command.should == 'mplayer'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should mixin AbstractTool" do
|
|
20
|
+
Mplayer.included_modules.include?(AbstractTool::InstanceMethods).should be_true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should set supported options successfully" do
|
|
24
|
+
@mplayer.options[:output_file].should == @options[:output_file]
|
|
25
|
+
end
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
def setup_mplayer_spec
|
|
31
|
+
@options = {:output_file => "foo"}
|
|
32
|
+
@command = "mplayer temp.avi -dumpaudio -dumpfile temp.aac"
|
|
33
|
+
@mplayer = RVideo::Tools::Mplayer.new(@command, @options)
|
|
34
|
+
end
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
module RVideo
|
|
4
|
+
module Tools
|
|
5
|
+
|
|
6
|
+
describe QtFaststart do
|
|
7
|
+
before do
|
|
8
|
+
setup_qtfaststart_spec
|
|
9
|
+
end
|
|
10
|
+
|
|
11
|
+
it "should initialize with valid arguments" do
|
|
12
|
+
@qtfaststart.class.should == QtFaststart
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
it "should have the correct tool_command" do
|
|
16
|
+
@qtfaststart.tool_command.should == 'qt-faststart'
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
it "should mixin AbstractTool" do
|
|
20
|
+
QtFaststart.included_modules.include?(AbstractTool::InstanceMethods).should be_true
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
it "should set supported options successfully" do
|
|
24
|
+
@qtfaststart.options[:output_file].should == @options[:output_file]
|
|
25
|
+
@qtfaststart.options[:input_file].should == @options[:input_file]
|
|
26
|
+
end
|
|
27
|
+
end
|
|
28
|
+
end
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
def setup_qtfaststart_spec
|
|
32
|
+
@options = {:input_file => "foo.mp4", :output_file => "foo2.mp4"}
|
|
33
|
+
@command = "qt-faststart $input_file$ $output_file$"
|
|
34
|
+
@qtfaststart = RVideo::Tools::QtFaststart.new(@command, @options)
|
|
35
|
+
end
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
require File.dirname(__FILE__) + '/../spec_helper'
|
|
2
|
+
|
|
3
|
+
def setup_spec
|
|
4
|
+
@options = {
|
|
5
|
+
:output_file => "bar",
|
|
6
|
+
:resolution => "baz"
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
@input_file = spec_file "kites.mp4"
|
|
10
|
+
@simple_avi = "ffmpeg -i $input_file$ -ar 44100 -ab 64 -vcodec xvid -acodec mp3 -r 29.97 $resolution$ -y $output_file$"
|
|
11
|
+
|
|
12
|
+
@transcoder = RVideo::Transcoder.new(@input_file)
|
|
13
|
+
@transcoder.stub! :do_execute
|
|
14
|
+
|
|
15
|
+
@mock_original_file = mock(:original)
|
|
16
|
+
@mock_original_file.stub!(:raw_response)
|
|
17
|
+
RVideo::Inspector.stub!(:new).and_return(@mock_original_file)
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
# TODO it would be nice if there was less mocking in here
|
|
21
|
+
# also some of these tests are worthless, but anyway..
|
|
22
|
+
|
|
23
|
+
module RVideo
|
|
24
|
+
|
|
25
|
+
describe Transcoder, "execution" do
|
|
26
|
+
before do
|
|
27
|
+
setup_spec
|
|
28
|
+
@transcoder.stub!(:check_integrity).and_return(true)
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
it "should pass a string as-is, along with options" do
|
|
32
|
+
@transcoder.stub!(:parse_and_execute)
|
|
33
|
+
@simple_avi = "ffmpeg -i foo"
|
|
34
|
+
@transcoder.execute(@simple_avi, @options)
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
it "should store a Tool object at transcoder.executed_commands" do
|
|
38
|
+
@mock_ffmpeg = mock("ffmpeg")
|
|
39
|
+
Tools::AbstractTool.stub!(:assign).and_return(@mock_ffmpeg)
|
|
40
|
+
@mock_ffmpeg.should_receive(:execute)
|
|
41
|
+
@mock_ffmpeg.stub!(:original=)
|
|
42
|
+
@transcoder.execute(@simple_avi, @options)
|
|
43
|
+
@transcoder.executed_commands.size.should == 1
|
|
44
|
+
@transcoder.executed_commands.first.should == @mock_ffmpeg
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
it "should set original file" do
|
|
48
|
+
@mock_ffmpeg = mock("ffmpeg")
|
|
49
|
+
Tools::AbstractTool.stub!(:assign).and_return(@mock_ffmpeg)
|
|
50
|
+
@mock_ffmpeg.stub!(:execute)
|
|
51
|
+
@mock_ffmpeg.should_receive(:original=).with(@transcoder.original)
|
|
52
|
+
@transcoder.execute(@simple_avi, @options)
|
|
53
|
+
end
|
|
54
|
+
|
|
55
|
+
# FIXME
|
|
56
|
+
# it "should raise an exception when trying to call a tool that doesn't exist" do
|
|
57
|
+
# lambda {
|
|
58
|
+
# @transcoder.send(:parse_and_execute, "foo -i bar", {})
|
|
59
|
+
# }.should raise_error(TranscoderError::UnknownTool, /recipe tried to use the 'foo' tool/)
|
|
60
|
+
# end
|
|
61
|
+
|
|
62
|
+
it "should raise an exception when the first argument is not a string" do
|
|
63
|
+
[String, 1, 1.0, true, nil, :foo].each do |obj|
|
|
64
|
+
lambda {
|
|
65
|
+
@transcoder.execute(obj, @options)
|
|
66
|
+
}.should raise_error(TranscoderError::ParameterError, /expected.*recipe.*string/i)
|
|
67
|
+
end
|
|
68
|
+
end
|
|
69
|
+
end
|
|
70
|
+
|
|
71
|
+
describe Transcoder, "file integrity checks" do
|
|
72
|
+
|
|
73
|
+
before do
|
|
74
|
+
setup_spec
|
|
75
|
+
@transcoder.stub!(:parse_and_execute)
|
|
76
|
+
@mock_processed_file = mock("processed")
|
|
77
|
+
@mock_original_file.stub!(:duration).and_return 10
|
|
78
|
+
@mock_original_file.stub!(:invalid?).and_return false
|
|
79
|
+
@mock_processed_file.stub!(:duration).and_return 10
|
|
80
|
+
@mock_processed_file.stub!(:invalid?).and_return false
|
|
81
|
+
#Inspector.should_receive(:new).once.with(:file => "foo").and_return(@mock_original_file)
|
|
82
|
+
Inspector.should_receive(:new).once.with(:file => "bar").and_return(@mock_processed_file)
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
it "should call the inspector twice on a successful job, and should set @original and @processed" do
|
|
86
|
+
@transcoder.original.should_not be_nil
|
|
87
|
+
@transcoder.processed.should be_nil
|
|
88
|
+
|
|
89
|
+
@transcoder.execute(@simple_avi, @options)
|
|
90
|
+
@transcoder.original.should == @mock_original_file
|
|
91
|
+
@transcoder.processed.should == @mock_processed_file
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
it "should check integrity" do
|
|
95
|
+
@transcoder.should_receive(:check_integrity).once.and_return true
|
|
96
|
+
@transcoder.execute(@simple_avi, @options).should be_true
|
|
97
|
+
@transcoder.errors.should be_empty
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
it "should fail if output duration is more than 10% different than the original" do
|
|
101
|
+
@mock_original_file.should_receive(:duration).twice.and_return(10)
|
|
102
|
+
@mock_processed_file.should_receive(:duration).twice.and_return(13)
|
|
103
|
+
@transcoder.execute(@simple_avi, @options).should be_false
|
|
104
|
+
@transcoder.errors.should == ["Original file has a duration of 10, but processed file has a duration of 13"]
|
|
105
|
+
end
|
|
106
|
+
|
|
107
|
+
it "should fail if the processed file is invalid" do
|
|
108
|
+
@mock_processed_file.should_receive(:invalid?).and_return(true)
|
|
109
|
+
@transcoder.execute(@simple_avi, @options).should be_false
|
|
110
|
+
@transcoder.errors.should_not be_empty
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
end
|
|
114
|
+
|
|
115
|
+
describe Transcoder, "#parse_and_execute" do
|
|
116
|
+
before do
|
|
117
|
+
setup_spec
|
|
118
|
+
@mock_tool = mock("tool")
|
|
119
|
+
@mock_tool.stub!(:execute)
|
|
120
|
+
@mock_tool.stub!(:original=)
|
|
121
|
+
@options_plus_input = @options.merge(:input_file => @input_file)
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
it "should assign a command via AbstractTool.assign, and pass the right options" do
|
|
125
|
+
Tools::AbstractTool.should_receive(:assign).with(@simple_avi, @options_plus_input).and_return(@mock_tool)
|
|
126
|
+
@transcoder.send(:parse_and_execute, @simple_avi, @options)
|
|
127
|
+
end
|
|
128
|
+
|
|
129
|
+
it "should call Tools::AbstractTool once with a one-line recipe" do
|
|
130
|
+
Tools::AbstractTool.should_receive(:assign).once.and_return(@mock_tool)
|
|
131
|
+
@transcoder.send(:parse_and_execute, @simple_avi, @options)
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
it "should call twice with a two-line recipe" do
|
|
135
|
+
two_line = "ffmpeg -i foo \n ffmpeg -i bar"
|
|
136
|
+
Tools::AbstractTool.should_receive(:assign).twice.and_return(@mock_tool)
|
|
137
|
+
@transcoder.send(:parse_and_execute, two_line, @options)
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
it "should call five times with a five-line recipe" do
|
|
141
|
+
five_line = "ffmpeg -i foo \n ffmpeg -i bar \n flvtool -i foo \n mp4box \n qt tools 8"
|
|
142
|
+
Tools::AbstractTool.should_receive(:assign).exactly(5).and_return(@mock_tool)
|
|
143
|
+
@transcoder.stub!(:do_execute)
|
|
144
|
+
@transcoder.send(:parse_and_execute, five_line, @options)
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
it "should pass an exception from the abstract tool" do
|
|
148
|
+
Tools::AbstractTool.should_receive(:assign).and_raise(TranscoderError::UnexpectedResult)
|
|
149
|
+
|
|
150
|
+
lambda {
|
|
151
|
+
@transcoder.send(:parse_and_execute, @simple_avi, @options)
|
|
152
|
+
}.should raise_error(TranscoderError::UnexpectedResult)
|
|
153
|
+
end
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
end
|
data/tasks/testing.rake
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
begin
|
|
2
|
+
require "spec/rake/spectask"
|
|
3
|
+
rescue LoadError
|
|
4
|
+
puts "To use rspec for testing you must install rspec gem:"
|
|
5
|
+
puts "$ sudo gem install rspec"
|
|
6
|
+
exit
|
|
7
|
+
end
|
|
8
|
+
|
|
9
|
+
namespace :spec do
|
|
10
|
+
desc "Run Unit Specs"
|
|
11
|
+
Spec::Rake::SpecTask.new("units") do |t|
|
|
12
|
+
t.spec_files = FileList['spec/units/**/*.rb']
|
|
13
|
+
t.spec_opts = %w( --color )
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
desc "Run Integration Specs"
|
|
17
|
+
Spec::Rake::SpecTask.new("integrations") do |t|
|
|
18
|
+
t.spec_files = FileList['spec/integrations/**/*.rb']
|
|
19
|
+
t.spec_opts = %w( --color )
|
|
20
|
+
end
|
|
21
|
+
end
|
|
22
|
+
|
|
23
|
+
desc "Run unit and integration specs"
|
|
24
|
+
task :spec => ["spec:units", "spec:integrations"]
|
|
25
|
+
|
|
26
|
+
# Echo defines the :default task to run the :test task
|
|
27
|
+
task :test => :spec
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
def transcode_single_job(recipe, input_file)
|
|
2
|
+
puts "Transcoding #{File.basename(input_file)} to #{recipe}"
|
|
3
|
+
r = YAML.load_file(File.dirname(__FILE__) + '/test/recipes.yml')[recipe]
|
|
4
|
+
transcoder = RVideo::Transcoder.new(input_file)
|
|
5
|
+
output_file = "#{TEMP_PATH}/#{File.basename(input_file, ".*")}-#{recipe}.#{r['extension']}"
|
|
6
|
+
FileUtils.mkdir_p(File.dirname(output_file))
|
|
7
|
+
begin
|
|
8
|
+
transcoder.execute(r['command'], {:output_file => output_file}.merge(r))
|
|
9
|
+
puts "Finished #{File.basename(output_file)} in #{transcoder.total_time}"
|
|
10
|
+
rescue StandardError => e
|
|
11
|
+
puts "Error transcoding #{File.basename(output_file)} - #{e.class} (#{e.message}\n#{e.backtrace})"
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def set_logger(path_or_io)
|
|
16
|
+
RVideo::Transcoder.logger = Logger.new(path_or_io)
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
###
|
|
20
|
+
|
|
21
|
+
desc "Process a file"
|
|
22
|
+
task :transcode do
|
|
23
|
+
set_logger STDOUT
|
|
24
|
+
transcode_single_job ENV['RECIPE'], ENV['FILE']
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
desc "Batch transcode files"
|
|
28
|
+
task "transcode:batch" do
|
|
29
|
+
set_logger File.dirname(__FILE__) + '/test/output.log'
|
|
30
|
+
|
|
31
|
+
f = YAML.load_file(File.dirname(__FILE__) + '/test/batch_transcode.yml')
|
|
32
|
+
|
|
33
|
+
recipes = f['recipes']
|
|
34
|
+
files = f['files']
|
|
35
|
+
|
|
36
|
+
files.each do |f|
|
|
37
|
+
file = "#{File.dirname(__FILE__)}/test/files/#{f}"
|
|
38
|
+
recipes.each { |r| transcode_single_job r, file }
|
|
39
|
+
end
|
|
40
|
+
end
|
data/tasks/website.rake
ADDED
metadata
ADDED
|
@@ -0,0 +1,178 @@
|
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
|
2
|
+
name: axtro-rvideo
|
|
3
|
+
version: !ruby/object:Gem::Version
|
|
4
|
+
version: 0.9.6
|
|
5
|
+
platform: ruby
|
|
6
|
+
authors:
|
|
7
|
+
- Peter Boling, Jonathan Dahl (Slantwise Design), Seth Thomas Rasmussen
|
|
8
|
+
autorequire:
|
|
9
|
+
bindir: bin
|
|
10
|
+
cert_chain: []
|
|
11
|
+
|
|
12
|
+
date: 2010-09-24 00:00:00 +02:00
|
|
13
|
+
default_executable:
|
|
14
|
+
dependencies:
|
|
15
|
+
- !ruby/object:Gem::Dependency
|
|
16
|
+
name: activesupport
|
|
17
|
+
type: :runtime
|
|
18
|
+
version_requirement:
|
|
19
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
20
|
+
requirements:
|
|
21
|
+
- - ">="
|
|
22
|
+
- !ruby/object:Gem::Version
|
|
23
|
+
version: "0"
|
|
24
|
+
version:
|
|
25
|
+
- !ruby/object:Gem::Dependency
|
|
26
|
+
name: rspec
|
|
27
|
+
type: :development
|
|
28
|
+
version_requirement:
|
|
29
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
30
|
+
requirements:
|
|
31
|
+
- - ">="
|
|
32
|
+
- !ruby/object:Gem::Version
|
|
33
|
+
version: "0"
|
|
34
|
+
version:
|
|
35
|
+
description: Inspect and transcode video and audio files.
|
|
36
|
+
email: sethrasmussen@gmail.com
|
|
37
|
+
executables: []
|
|
38
|
+
|
|
39
|
+
extensions: []
|
|
40
|
+
|
|
41
|
+
extra_rdoc_files:
|
|
42
|
+
- CHANGELOG
|
|
43
|
+
- lib/rvideo/errors.rb
|
|
44
|
+
- lib/rvideo/float.rb
|
|
45
|
+
- lib/rvideo/frame_capturer.rb
|
|
46
|
+
- lib/rvideo/inspector.rb
|
|
47
|
+
- lib/rvideo/reporter/views/index.html.erb
|
|
48
|
+
- lib/rvideo/reporter/views/report.css
|
|
49
|
+
- lib/rvideo/reporter/views/report.html.erb
|
|
50
|
+
- lib/rvideo/reporter/views/report.js
|
|
51
|
+
- lib/rvideo/reporter.rb
|
|
52
|
+
- lib/rvideo/string.rb
|
|
53
|
+
- lib/rvideo/tools/abstract_tool.rb
|
|
54
|
+
- lib/rvideo/tools/ffmpeg.rb
|
|
55
|
+
- lib/rvideo/tools/ffmpeg2theora.rb
|
|
56
|
+
- lib/rvideo/tools/flvtool2.rb
|
|
57
|
+
- lib/rvideo/tools/mencoder.rb
|
|
58
|
+
- lib/rvideo/tools/mp4box.rb
|
|
59
|
+
- lib/rvideo/tools/mp4creator.rb
|
|
60
|
+
- lib/rvideo/tools/mplayer.rb
|
|
61
|
+
- lib/rvideo/tools/qtfaststart.rb
|
|
62
|
+
- lib/rvideo/tools/yamdi.rb
|
|
63
|
+
- lib/rvideo/transcoder.rb
|
|
64
|
+
- lib/rvideo/version.rb
|
|
65
|
+
- lib/rvideo.rb
|
|
66
|
+
- LICENSE
|
|
67
|
+
- README
|
|
68
|
+
- tasks/deployment.rake
|
|
69
|
+
- tasks/testing.rake
|
|
70
|
+
- tasks/transcoding.rake
|
|
71
|
+
- tasks/website.rake
|
|
72
|
+
files:
|
|
73
|
+
- CHANGELOG
|
|
74
|
+
- config/boot.rb
|
|
75
|
+
- ENV
|
|
76
|
+
- ENV2
|
|
77
|
+
- lib/rvideo/errors.rb
|
|
78
|
+
- lib/rvideo/float.rb
|
|
79
|
+
- lib/rvideo/frame_capturer.rb
|
|
80
|
+
- lib/rvideo/inspector.rb
|
|
81
|
+
- lib/rvideo/reporter/views/index.html.erb
|
|
82
|
+
- lib/rvideo/reporter/views/report.css
|
|
83
|
+
- lib/rvideo/reporter/views/report.html.erb
|
|
84
|
+
- lib/rvideo/reporter/views/report.js
|
|
85
|
+
- lib/rvideo/reporter.rb
|
|
86
|
+
- lib/rvideo/string.rb
|
|
87
|
+
- lib/rvideo/tools/abstract_tool.rb
|
|
88
|
+
- lib/rvideo/tools/ffmpeg.rb
|
|
89
|
+
- lib/rvideo/tools/ffmpeg2theora.rb
|
|
90
|
+
- lib/rvideo/tools/flvtool2.rb
|
|
91
|
+
- lib/rvideo/tools/mencoder.rb
|
|
92
|
+
- lib/rvideo/tools/mp4box.rb
|
|
93
|
+
- lib/rvideo/tools/mp4creator.rb
|
|
94
|
+
- lib/rvideo/tools/mplayer.rb
|
|
95
|
+
- lib/rvideo/tools/qtfaststart.rb
|
|
96
|
+
- lib/rvideo/tools/yamdi.rb
|
|
97
|
+
- lib/rvideo/transcoder.rb
|
|
98
|
+
- lib/rvideo/version.rb
|
|
99
|
+
- lib/rvideo.rb
|
|
100
|
+
- LICENSE
|
|
101
|
+
- Manifest
|
|
102
|
+
- Rakefile
|
|
103
|
+
- README
|
|
104
|
+
- RULES
|
|
105
|
+
- rvideo.gemspec
|
|
106
|
+
- scripts/txt2html
|
|
107
|
+
- setup.rb
|
|
108
|
+
- spec/files/boat.avi
|
|
109
|
+
- spec/files/kites.mp4
|
|
110
|
+
- spec/fixtures/ffmpeg_builds.yml
|
|
111
|
+
- spec/fixtures/ffmpeg_results.yml
|
|
112
|
+
- spec/fixtures/files.yml
|
|
113
|
+
- spec/fixtures/recipes.yml
|
|
114
|
+
- spec/integrations/formats_spec.rb
|
|
115
|
+
- spec/integrations/frame_capturer_spec.rb
|
|
116
|
+
- spec/integrations/inspection_spec.rb
|
|
117
|
+
- spec/integrations/recipes_spec.rb
|
|
118
|
+
- spec/integrations/rvideo_spec.rb
|
|
119
|
+
- spec/integrations/transcoder_integration_spec.rb
|
|
120
|
+
- spec/integrations/transcoding_spec.rb
|
|
121
|
+
- spec/spec.opts
|
|
122
|
+
- spec/spec_helper.rb
|
|
123
|
+
- spec/support.rb
|
|
124
|
+
- spec/units/abstract_tool_spec.rb
|
|
125
|
+
- spec/units/ffmpeg_spec.rb
|
|
126
|
+
- spec/units/flvtool2_spec.rb
|
|
127
|
+
- spec/units/frame_capturer_spec.rb
|
|
128
|
+
- spec/units/inspector_spec.rb
|
|
129
|
+
- spec/units/mencoder_spec.rb
|
|
130
|
+
- spec/units/mp4box_spec.rb
|
|
131
|
+
- spec/units/mp4creator_spec.rb
|
|
132
|
+
- spec/units/mplayer_spec.rb
|
|
133
|
+
- spec/units/qtfaststart_spec.rb
|
|
134
|
+
- spec/units/string_spec.rb
|
|
135
|
+
- spec/units/transcoder_spec.rb
|
|
136
|
+
- tasks/deployment.rake
|
|
137
|
+
- tasks/testing.rake
|
|
138
|
+
- tasks/transcoding.rake
|
|
139
|
+
- tasks/website.rake
|
|
140
|
+
- axtro-rvideo.gemspec
|
|
141
|
+
has_rdoc: true
|
|
142
|
+
homepage: http://github.com/greatseth/rvideo
|
|
143
|
+
licenses: []
|
|
144
|
+
|
|
145
|
+
post_install_message:
|
|
146
|
+
rdoc_options:
|
|
147
|
+
- --quiet
|
|
148
|
+
- --title
|
|
149
|
+
- rvideo documentation
|
|
150
|
+
- --opname
|
|
151
|
+
- index.html
|
|
152
|
+
- --line-numbers
|
|
153
|
+
- --main
|
|
154
|
+
- README
|
|
155
|
+
- --inline-source
|
|
156
|
+
require_paths:
|
|
157
|
+
- lib
|
|
158
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
|
159
|
+
requirements:
|
|
160
|
+
- - ">="
|
|
161
|
+
- !ruby/object:Gem::Version
|
|
162
|
+
version: "0"
|
|
163
|
+
version:
|
|
164
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
165
|
+
requirements:
|
|
166
|
+
- - ">="
|
|
167
|
+
- !ruby/object:Gem::Version
|
|
168
|
+
version: "1.2"
|
|
169
|
+
version:
|
|
170
|
+
requirements: []
|
|
171
|
+
|
|
172
|
+
rubyforge_project: axtro-rvideo
|
|
173
|
+
rubygems_version: 1.3.5
|
|
174
|
+
signing_key:
|
|
175
|
+
specification_version: 3
|
|
176
|
+
summary: Inspect and transcode video and audio files.
|
|
177
|
+
test_files: []
|
|
178
|
+
|