newbamboo-rvideo 0.9.6
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGELOG +70 -0
- data/ENV +100 -0
- data/ENV2 +129 -0
- data/LICENSE +20 -0
- data/Manifest +68 -0
- data/README +106 -0
- data/RULES +11 -0
- data/Rakefile +63 -0
- data/config/boot.rb +25 -0
- data/lib/rvideo.rb +46 -0
- data/lib/rvideo/errors.rb +24 -0
- data/lib/rvideo/float.rb +7 -0
- data/lib/rvideo/frame_capturer.rb +127 -0
- data/lib/rvideo/inspector.rb +482 -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 +406 -0
- data/lib/rvideo/tools/ffmpeg.rb +356 -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/segmenter.rb +21 -0
- data/lib/rvideo/tools/yamdi.rb +44 -0
- data/lib/rvideo/transcoder.rb +139 -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 +111 -0
- data/spec/units/ffmpeg_spec.rb +323 -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 +179 -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,179 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: newbamboo-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-01-29 00:00:00 +01: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/tools/segmenter.rb
|
64
|
+
- lib/rvideo/transcoder.rb
|
65
|
+
- lib/rvideo/version.rb
|
66
|
+
- lib/rvideo.rb
|
67
|
+
- LICENSE
|
68
|
+
- README
|
69
|
+
- tasks/deployment.rake
|
70
|
+
- tasks/testing.rake
|
71
|
+
- tasks/transcoding.rake
|
72
|
+
- tasks/website.rake
|
73
|
+
files:
|
74
|
+
- CHANGELOG
|
75
|
+
- config/boot.rb
|
76
|
+
- ENV
|
77
|
+
- ENV2
|
78
|
+
- lib/rvideo/errors.rb
|
79
|
+
- lib/rvideo/float.rb
|
80
|
+
- lib/rvideo/frame_capturer.rb
|
81
|
+
- lib/rvideo/inspector.rb
|
82
|
+
- lib/rvideo/reporter/views/index.html.erb
|
83
|
+
- lib/rvideo/reporter/views/report.css
|
84
|
+
- lib/rvideo/reporter/views/report.html.erb
|
85
|
+
- lib/rvideo/reporter/views/report.js
|
86
|
+
- lib/rvideo/reporter.rb
|
87
|
+
- lib/rvideo/string.rb
|
88
|
+
- lib/rvideo/tools/abstract_tool.rb
|
89
|
+
- lib/rvideo/tools/ffmpeg.rb
|
90
|
+
- lib/rvideo/tools/ffmpeg2theora.rb
|
91
|
+
- lib/rvideo/tools/flvtool2.rb
|
92
|
+
- lib/rvideo/tools/mencoder.rb
|
93
|
+
- lib/rvideo/tools/mp4box.rb
|
94
|
+
- lib/rvideo/tools/mp4creator.rb
|
95
|
+
- lib/rvideo/tools/mplayer.rb
|
96
|
+
- lib/rvideo/tools/qtfaststart.rb
|
97
|
+
- lib/rvideo/tools/yamdi.rb
|
98
|
+
- lib/rvideo/tools/segmenter.rb
|
99
|
+
- lib/rvideo/transcoder.rb
|
100
|
+
- lib/rvideo/version.rb
|
101
|
+
- lib/rvideo.rb
|
102
|
+
- LICENSE
|
103
|
+
- Manifest
|
104
|
+
- Rakefile
|
105
|
+
- README
|
106
|
+
- RULES
|
107
|
+
- rvideo.gemspec
|
108
|
+
- scripts/txt2html
|
109
|
+
- setup.rb
|
110
|
+
- spec/files/boat.avi
|
111
|
+
- spec/files/kites.mp4
|
112
|
+
- spec/fixtures/ffmpeg_builds.yml
|
113
|
+
- spec/fixtures/ffmpeg_results.yml
|
114
|
+
- spec/fixtures/files.yml
|
115
|
+
- spec/fixtures/recipes.yml
|
116
|
+
- spec/integrations/formats_spec.rb
|
117
|
+
- spec/integrations/frame_capturer_spec.rb
|
118
|
+
- spec/integrations/inspection_spec.rb
|
119
|
+
- spec/integrations/recipes_spec.rb
|
120
|
+
- spec/integrations/rvideo_spec.rb
|
121
|
+
- spec/integrations/transcoder_integration_spec.rb
|
122
|
+
- spec/integrations/transcoding_spec.rb
|
123
|
+
- spec/spec.opts
|
124
|
+
- spec/spec_helper.rb
|
125
|
+
- spec/support.rb
|
126
|
+
- spec/units/abstract_tool_spec.rb
|
127
|
+
- spec/units/ffmpeg_spec.rb
|
128
|
+
- spec/units/flvtool2_spec.rb
|
129
|
+
- spec/units/frame_capturer_spec.rb
|
130
|
+
- spec/units/inspector_spec.rb
|
131
|
+
- spec/units/mencoder_spec.rb
|
132
|
+
- spec/units/mp4box_spec.rb
|
133
|
+
- spec/units/mp4creator_spec.rb
|
134
|
+
- spec/units/mplayer_spec.rb
|
135
|
+
- spec/units/qtfaststart_spec.rb
|
136
|
+
- spec/units/string_spec.rb
|
137
|
+
- spec/units/transcoder_spec.rb
|
138
|
+
- tasks/deployment.rake
|
139
|
+
- tasks/testing.rake
|
140
|
+
- tasks/transcoding.rake
|
141
|
+
- tasks/website.rake
|
142
|
+
has_rdoc: true
|
143
|
+
homepage: http://github.com/newbamboo/rvideo
|
144
|
+
licenses: []
|
145
|
+
|
146
|
+
post_install_message:
|
147
|
+
rdoc_options:
|
148
|
+
- --quiet
|
149
|
+
- --title
|
150
|
+
- rvideo documentation
|
151
|
+
- --opname
|
152
|
+
- index.html
|
153
|
+
- --line-numbers
|
154
|
+
- --main
|
155
|
+
- README
|
156
|
+
- --inline-source
|
157
|
+
require_paths:
|
158
|
+
- lib
|
159
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
160
|
+
requirements:
|
161
|
+
- - ">="
|
162
|
+
- !ruby/object:Gem::Version
|
163
|
+
version: "0"
|
164
|
+
version:
|
165
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
166
|
+
requirements:
|
167
|
+
- - ">="
|
168
|
+
- !ruby/object:Gem::Version
|
169
|
+
version: "1.2"
|
170
|
+
version:
|
171
|
+
requirements: []
|
172
|
+
|
173
|
+
rubyforge_project: newbamboo-rvideo
|
174
|
+
rubygems_version: 1.3.5
|
175
|
+
signing_key:
|
176
|
+
specification_version: 3
|
177
|
+
summary: Inspect and transcode video and audio files.
|
178
|
+
test_files: []
|
179
|
+
|