voyeur 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore ADDED
@@ -0,0 +1,14 @@
1
+ *.gem
2
+ .DS_Store
3
+ Vagrantfile
4
+ .vagrant
5
+ .rvmrc
6
+ .bundle
7
+ Gemfile.lock
8
+ pkg/*
9
+ bin
10
+ test_data/*
11
+ *.mp4
12
+ *.swp
13
+ *.swo
14
+ *.box
data/Gemfile ADDED
@@ -0,0 +1,4 @@
1
+ source "http://rubygems.org"
2
+
3
+ # Specify your gem's dependencies in Voyeur.gemspec
4
+ gemspec
data/README.md ADDED
@@ -0,0 +1,100 @@
1
+ # Voyeur
2
+ Voyeur is a ruby library that will take your video files and convert
3
+ them to common HTML5 formats exposing an easy to use API. Seriously
4
+ it's like falling out of a tree then climbing back.
5
+
6
+ ## Installation
7
+ The gem is easily installed by including the following line in your
8
+ Gemfile (if you role that way)
9
+
10
+ gem 'voyeur'
11
+
12
+ or on the command line
13
+
14
+ gem install voyeur
15
+ require 'voyeur'
16
+
17
+ ## Setup
18
+ This gem requires ffmpeg to be installed. If you require assistance
19
+ there is a basic guide included in the [wiki page](https://github.com/devthenet/Voyeur/wiki/Installing-ffmpeg-%28Ubuntu%29). Feel free to add more!
20
+ You can also try out automated [setup scripts](https://github.com/devthenet/ffmpeg_setup) (at the moment we only have for ubuntu):
21
+
22
+
23
+
24
+
25
+ ## Usage
26
+ Simple conversions may be done by simply:
27
+
28
+ Voyeur::Video.new( filename: path_to_file ).convert( to: :mp4 )
29
+
30
+ This will convert the video into Mp4 and save it in the same directory
31
+ as the original video.
32
+
33
+ Alternatively you can convert to all 3 types at once:
34
+
35
+ Voyeur::Video.new( filename: path_to_file ).convert_to_html5
36
+ This will convert the video into 3 formats. Mp4, Ogv and Webm and place
37
+ them in the same folder as the parent.
38
+
39
+ I have allowed the user to specify an output filename. (Note: if no
40
+ output filename the file is just named after the original file):
41
+
42
+ Voyeur::Video.new( filename: path_to_file ).convert( to: :mp4, output_filename: "my_cool_video" )
43
+
44
+ This will give you a converted video called "my_cool_video.mp4".
45
+
46
+ You can also convert to all with the following:
47
+
48
+ Voyeur::Video.new( filename: path_to_file ).convert_to_html5( output_filename: "my_cool_video" )
49
+
50
+ It is also possible to place the formatted video in a custom folder:
51
+
52
+ Voyeur::Video.new( filename: path_to_file ).convert( to: :mp4, output_path: "my/cool/file/path" )
53
+
54
+ or
55
+
56
+ Voyeur::Video.new( filename: path_to_file ).convert_to_html5( output_path: "my/cool/file/path" )
57
+
58
+ ## Extendibility
59
+
60
+ I've designed this in the hopes that others will be able to add
61
+ other formats / conversion options (haven't quite gone that far yet).
62
+ Right now it's as simple as creating a file similar to this:
63
+
64
+ module Voyeur
65
+ class Mp4 < Converter
66
+
67
+ def file_extension
68
+ "mp4"
69
+ end
70
+
71
+ def convert_options
72
+ "-b 1500k -vcodec libx264 -g 30"
73
+ end
74
+ end
75
+ end
76
+
77
+
78
+ The two methods file_extension and convert options are mandatory.
79
+
80
+ ## Todo
81
+ 1. Spawn processes simultaniously so more than one video can be converted
82
+ at once.
83
+ 2. Add functionality so that users can use more specific convert
84
+ options
85
+
86
+ ## Authors
87
+ #### Peter Garbers
88
+ * https://github.com/petergarbers
89
+ * http://twitter.com/petergarbers
90
+
91
+ #### Hendrik Louw
92
+ * https://github.com/HendrikLouw
93
+ * http://twitter.com/hendrik_louw
94
+
95
+ ## Sources
96
+
97
+ ### Links
98
+ * http://stackoverflow.com/questions/5487085/ffmpeg-covert-html-5-video-not-working
99
+ * http://johndyer.name/ffmpeg-settings-for-html5-codecs-h264mp4-theoraogg-vp8webm/
100
+ * http://rodrigopolo.com/ffmpeg/cheats.html
data/Rakefile ADDED
@@ -0,0 +1,3 @@
1
+ require "bundler/gem_tasks"
2
+ require 'rspec/core/rake_task'
3
+ RSpec::Core::RakeTask.new('spec')
data/Voyeur.gemspec ADDED
@@ -0,0 +1,23 @@
1
+ # -*- encoding: utf-8 -*-
2
+ $:.push File.expand_path("../lib", __FILE__)
3
+ require "Voyeur/version"
4
+
5
+ Gem::Specification.new do |s|
6
+ s.name = "voyeur"
7
+ s.version = Voyeur::VERSION
8
+ s.authors = ["Peter Garbers", "Hendrik F. Louw"]
9
+ s.email = ["peter.garbers@gmail.com", "hflouw@gmail.com"]
10
+ s.homepage = "http://devthenet.github.com/"
11
+ s.summary = %q{Ruby library to convert common video formats to HTML5 formats}
12
+ s.description = %q{A ruby library to convert videos into common html5 formats}
13
+
14
+ s.rubyforge_project = "Voyeur"
15
+
16
+ s.files = `git ls-files`.split("\n")
17
+ s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
19
+ s.require_paths = ["lib"]
20
+
21
+ s.add_development_dependency "rspec"
22
+ s.add_dependency "open4"
23
+ end
@@ -0,0 +1,55 @@
1
+ module Voyeur
2
+ class Converter
3
+ attr_accessor :input_video
4
+ attr_reader :output_video
5
+ attr_reader :status
6
+
7
+ def self.create(options)
8
+ constant = Voyeur
9
+ klass = "#{options[:format].capitalize}"
10
+ raise Voyeur::Exceptions::InvalidFormat unless constant.const_defined? klass
11
+ klass = constant.const_get klass
12
+ klass.new
13
+ end
14
+
15
+ def convert(options)
16
+ @input_video = options[:video]
17
+ raise Voyeur::Exceptions::NoVideoPresent unless @input_video
18
+ output_filename = self.output_path( options[:output_path] )
19
+ @output_video = Video.new(filename: output_file(options[:output_path], options[:output_filename]))
20
+ self.call_external_converter
21
+ end
22
+
23
+ protected
24
+
25
+ def output_file(path, filename)
26
+ "#{output_path(path)}/#{output_filename(filename)}"
27
+ end
28
+
29
+ def output_path(output_path = nil)
30
+ raise Voyeur::Exceptions::InvalidLocation if output_path && !File.directory?(output_path)
31
+ output_path ? output_path : File.dirname(@input_video.filename)
32
+ end
33
+
34
+ def output_filename(input_filename = nil)
35
+ filename = input_filename.nil? ? @input_video.filename : input_filename
36
+ File.basename(filename, '.*') + ".#{self.file_extension}"
37
+ end
38
+
39
+ def call_external_converter
40
+ command = "ffmpeg -i #{@input_video.filename} #{self.convert_options} #{@output_video.filename}"
41
+ out, err = ""
42
+
43
+ status = Open4::popen4(command) do |pid, stdin, stdout, stderr|
44
+ out = stdout.read.strip
45
+ err = stderr.read.strip
46
+ end
47
+
48
+ error_message = err.split('\n').last
49
+
50
+ @status = { status: status.exitstatus, stdout: out, stderr: err,
51
+ error_message: error_message, video: @output_video }
52
+ return @status
53
+ end
54
+ end
55
+ end
@@ -0,0 +1,7 @@
1
+ module Voyeur
2
+ module Exceptions
3
+ class NoVideoPresent < StandardError; end
4
+ class InvalidFormat < StandardError; end
5
+ class InvalidLocation < StandardError; end
6
+ end
7
+ end
@@ -0,0 +1,3 @@
1
+ module Voyeur
2
+ VERSION = "0.0.1"
3
+ end
@@ -0,0 +1,23 @@
1
+ module Voyeur
2
+ class Video
3
+ attr_reader :filename
4
+ def initialize(options)
5
+ @filename = options[:filename]
6
+ end
7
+
8
+ def convert(options)
9
+ converter = Voyeur::Converter.create(format: options[:to])
10
+ converter.convert(video: self,
11
+ output_filename: options[:output_filename],
12
+ output_path: options[:output_path])
13
+ end
14
+
15
+ def convert_to_html5(options = nil)
16
+ [:mp4, :ogv, :webm].each do |f|
17
+ options_hash = {to: f}
18
+ options_hash.merge!(options) if options
19
+ convert(options_hash)
20
+ end
21
+ end
22
+ end
23
+ end
@@ -0,0 +1,13 @@
1
+ module Voyeur
2
+ class Mp4 < Converter
3
+
4
+ def file_extension
5
+ "mp4"
6
+ end
7
+
8
+ def convert_options
9
+ "-b 1500k -vcodec libx264 -g 30"
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,12 @@
1
+ module Voyeur
2
+ class Ogv < Converter
3
+
4
+ def file_extension
5
+ "ogv"
6
+ end
7
+
8
+ def convert_options
9
+ "-b 1500k -vcodec libtheora -acodec libvorbis -ab 160000 -g 30"
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,12 @@
1
+ module Voyeur
2
+ class Webm < Converter
3
+
4
+ def file_extension
5
+ "webm"
6
+ end
7
+
8
+ def convert_options
9
+ "-b 1500k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30"
10
+ end
11
+ end
12
+ end
data/lib/Voyeur.rb ADDED
@@ -0,0 +1,8 @@
1
+ require "Voyeur/version"
2
+ require "Voyeur/video"
3
+ require "Voyeur/exceptions"
4
+ require "Voyeur/converter"
5
+ require "Voyeur/video_converters/ogv"
6
+ require "Voyeur/video_converters/mp4"
7
+ require "Voyeur/video_converters/webm"
8
+ require 'open4'
@@ -0,0 +1,7 @@
1
+ require 'spec_helper'
2
+
3
+ describe Voyeur::Converter do
4
+ it "should raise an exception if there is not a proper video type" do
5
+ -> { Voyeur::Converter.create(format: :asd) }.should raise_error
6
+ end
7
+ end
@@ -0,0 +1,73 @@
1
+ require 'spec_helper'
2
+
3
+ describe Voyeur::Mp4 do
4
+ before :each do
5
+ @converter = Voyeur::Converter.create(format: :mp4)
6
+ @video = Voyeur::Video.new(filename: valid_mpeg_file_path)
7
+ end
8
+
9
+ it "should use the correct factory" do
10
+ @converter.class.to_s.should == "Voyeur::Mp4"
11
+ end
12
+
13
+ it "default convert string" do
14
+ @converter.convert_options.should == "-b 1500k -vcodec libx264 -g 30"
15
+ end
16
+
17
+ context "A valid Video" do
18
+ after :each do
19
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "mp4")) if File.exists?(valid_mpeg_file_path.gsub(/mpeg/, "mp4"))
20
+ end
21
+
22
+ context "#convert_options" do
23
+ it "should name the video correctly" do
24
+ @converter.convert(video: @video)
25
+ output_file = valid_mpeg_file_path.gsub(/mpeg/, "mp4")
26
+ @converter.output_video.filename.should == output_file
27
+ end
28
+
29
+ it "should return a video" do
30
+ @converter.convert(video: @video)
31
+ @converter.input_video.should == @video
32
+ end
33
+
34
+ context "real video" do
35
+ it "should return conversion status indicating success" do
36
+ result = @converter.convert(video: @video)
37
+ result[:status].should == 0
38
+ result[:video].should == @converter.output_video
39
+ end
40
+
41
+ it "should allow them to name the video" do
42
+ result = @converter.convert(video: @video)
43
+ result[:status].should == 0
44
+ result[:video].should == @converter.output_video
45
+ end
46
+
47
+ it "should return stdout" do
48
+ pending "why do we want this? this is returning ffmpeg version stuff"
49
+ result = @converter.convert(video: @video)
50
+ result[:stderr].should == ""
51
+ result[:stdout].should == ""
52
+ end
53
+ end
54
+ end
55
+ end
56
+
57
+ context "An invalid Video" do
58
+ before :each do
59
+ @converter = Voyeur::Converter.create(format: :mp4)
60
+ @video = Voyeur::Video.new(filename: 'test_video.mpeg')
61
+ end
62
+
63
+ context "File does not exist" do
64
+ it "should return conversion status indicating failure" do
65
+ result = @converter.convert(video: @video)
66
+ result[:status].should == 1
67
+ result[:video].should == @converter.output_video
68
+ result[:error_message].should match(/test_video.mpeg: No such file or directory/)
69
+ result[:stderr].nil?.should == false
70
+ end
71
+ end
72
+ end
73
+ end
@@ -0,0 +1,46 @@
1
+ require 'spec_helper'
2
+
3
+ describe Voyeur::Ogv do
4
+ context "New Video" do
5
+ before :each do
6
+ @converter = Voyeur::Converter.create(format: :ogv)
7
+ @video = Voyeur::Video.new(filename: 'test_video.ogv')
8
+ end
9
+
10
+ it "should use the correct factory" do
11
+ @converter.class.to_s.should == "Voyeur::Ogv"
12
+ end
13
+
14
+ context "#convert_options" do
15
+ it "default convert string" do
16
+ @converter.convert_options.should == "-b 1500k -vcodec libtheora -acodec libvorbis -ab 160000 -g 30"
17
+ end
18
+
19
+ it "should raise an exception if no video is passed" do
20
+ @video = nil
21
+ -> { @converter.convert(video: @video) }.should raise_error Voyeur::Exceptions::NoVideoPresent
22
+ end
23
+
24
+ it "should return a video" do
25
+ @converter.convert(video: @video)
26
+ @converter.input_video.should == @video
27
+ end
28
+ end
29
+ end
30
+
31
+ context "An invalid Video" do
32
+ before :each do
33
+ @converter = Voyeur::Converter.create(format: :ogv)
34
+ @video = Voyeur::Video.new(filename: 'test_video.mpeg')
35
+ end
36
+ context "File does not exist" do
37
+ it "should return conversion status indicating failure" do
38
+ result = @converter.convert(video: @video)
39
+ result[:status].should == 1
40
+ result[:video].should == @converter.output_video
41
+ result[:error_message].should match(/test_video.mpeg: No such file or directory/)
42
+ result[:stderr].nil?.should == false
43
+ end
44
+ end
45
+ end
46
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe Voyeur::Webm do
4
+ context "New Video" do
5
+ before :each do
6
+ @converter = Voyeur::Converter.create(format: :webm)
7
+ @video = Voyeur::Video.new(filename: 'test_video.webm')
8
+ end
9
+
10
+ it "should use the correct factory" do
11
+ @converter.class.to_s.should == "Voyeur::Webm"
12
+ end
13
+
14
+ context "#convert_options" do
15
+ it "default convert string" do
16
+ @converter.convert_options.should == "-b 1500k -vcodec libvpx -acodec libvorbis -ab 160000 -f webm -g 30"
17
+ end
18
+
19
+ it "should raise an exception if no video is passed" do
20
+ @video = nil
21
+ -> { @converter.convert(video: @video) }.should raise_error Voyeur::Exceptions::NoVideoPresent
22
+ end
23
+
24
+ it "should return a video" do
25
+ @converter.convert(video: @video)
26
+ @converter.input_video.should == @video
27
+ end
28
+ end
29
+ end
30
+
31
+ context "An invalid Video" do
32
+ before :each do
33
+ @converter = Voyeur::Converter.create(format: :webm)
34
+ @video = Voyeur::Video.new(filename: 'test_video.mpeg')
35
+ end
36
+
37
+ context "File does not exist" do
38
+ it "should return conversion status indicating failure" do
39
+ result = @converter.convert(video: @video)
40
+ result[:status].should == 1
41
+ result[:video].should == @converter.output_video
42
+ result[:error_message].should match(/test_video.mpeg: No such file or directory/)
43
+ result[:stderr].nil?.should == false
44
+ end
45
+ end
46
+ end
47
+
48
+ end
@@ -0,0 +1,2 @@
1
+ Nothing to see here, just so github saves the folder else shit breaks, just trust me, k love?
2
+
Binary file
Binary file
@@ -0,0 +1,10 @@
1
+ require 'rspec'
2
+ require 'Voyeur'
3
+ require 'spec_helpers/video_file_spec_helper'
4
+
5
+ RSpec.configure do |config|
6
+ config.color_enabled = true
7
+ config.formatter = 'documentation'
8
+ end
9
+
10
+ include SpecHelper::VideoFileSpecHelper
@@ -0,0 +1,19 @@
1
+ module SpecHelper
2
+ module VideoFileSpecHelper
3
+ def current_path
4
+ File.join( File.dirname(__FILE__), "../" )
5
+ end
6
+
7
+ def fixture_file_path
8
+ File.join(current_path, "fixtures")
9
+ end
10
+
11
+ def valid_3g_file_path
12
+ File.join(fixture_file_path, "test.3gp")
13
+ end
14
+
15
+ def valid_mpeg_file_path
16
+ File.join(fixture_file_path, "test.mpeg")
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,78 @@
1
+ require 'spec_helper'
2
+
3
+ describe Voyeur::Video do
4
+ it 'should create a new video object from a filename' do
5
+ video_input_name = 'test_file.mpeg'
6
+ video = Voyeur::Video.new filename: video_input_name
7
+ video.filename.should == video_input_name
8
+ end
9
+
10
+ it "should convert a video to ogv" do
11
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).convert(to: :ogv)
12
+ File.exist?(valid_mpeg_file_path.gsub(/mpeg/, "ogv")).should be_true
13
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "ogv"))
14
+ end
15
+
16
+ it "should convert a video to mp4" do
17
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).convert(to: :mp4)
18
+ File.exist?(valid_mpeg_file_path.gsub(/mpeg/, "mp4")).should be_true
19
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "mp4"))
20
+ end
21
+
22
+ it "should convert a video to webm" do
23
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).convert(to: :webm)
24
+ File.exist?(valid_mpeg_file_path.gsub(/mpeg/, "webm")).should be_true
25
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "webm"))
26
+ end
27
+
28
+ it "should convert a video to all HTML5 video formats" do
29
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).convert_to_html5
30
+ File.exists?(valid_mpeg_file_path.gsub(/mpeg/, "mp4")).should be_true
31
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "mp4"))
32
+ File.exists?(valid_mpeg_file_path.gsub(/mpeg/, "ogv")).should be_true
33
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "ogv"))
34
+ File.exists?(valid_mpeg_file_path.gsub(/mpeg/, "webm")).should be_true
35
+ File.delete(valid_mpeg_file_path.gsub(/mpeg/, "webm"))
36
+ end
37
+
38
+ it "should allow the user to name the video" do
39
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).
40
+ convert(to: :webm, output_filename: "sexypants")
41
+ File.exists?("#{fixture_file_path}/sexypants.webm").should be_true
42
+ File.delete("#{fixture_file_path}/sexypants.webm")
43
+ end
44
+
45
+ it "should allow the user to specify a video path" do
46
+ output_path = "#{fixture_file_path}/converted"
47
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).
48
+ convert(to: :ogv, output_path: output_path)
49
+ File.exists?("#{output_path}/test.ogv").should be_true
50
+ File.delete("#{output_path}/test.ogv")
51
+ end
52
+
53
+ it "should allow a user to specify a video path and filename" do
54
+ output_path = "#{fixture_file_path}/converted"
55
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).
56
+ convert(to: :ogv, output_path: output_path, output_filename: "supersexypants")
57
+ File.exists?("#{output_path}/supersexypants.ogv").should be_true
58
+ File.delete("#{output_path}/supersexypants.ogv")
59
+ end
60
+
61
+ it "should allow a user to specify a video path and filename when converting all formats" do
62
+ output_path = "#{fixture_file_path}/converted"
63
+ Voyeur::Video.new( filename: valid_mpeg_file_path ).
64
+ convert_to_html5(output_path: output_path, output_filename: "supersexypants")
65
+ File.exists?("#{output_path}/supersexypants.ogv").should be_true
66
+ File.delete("#{output_path}/supersexypants.ogv")
67
+ File.exists?("#{output_path}/supersexypants.mp4").should be_true
68
+ File.delete("#{output_path}/supersexypants.mp4")
69
+ File.exists?("#{output_path}/supersexypants.webm").should be_true
70
+ File.delete("#{output_path}/supersexypants.webm")
71
+ end
72
+
73
+ it "should not allow the user to specify a folder that doesn't exist" do
74
+ output_path = "#{fixture_file_path}/icecream"
75
+ -> { Voyeur::Video.new( filename: valid_mpeg_file_path ).
76
+ convert(to: :ogv, output_path: output_path) }.should raise_error Voyeur::Exceptions::InvalidLocation
77
+ end
78
+ end
metadata ADDED
@@ -0,0 +1,102 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: voyeur
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Peter Garbers
9
+ - Hendrik F. Louw
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2011-11-24 00:00:00.000000000Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rspec
17
+ requirement: &70172804487660 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ! '>='
21
+ - !ruby/object:Gem::Version
22
+ version: '0'
23
+ type: :development
24
+ prerelease: false
25
+ version_requirements: *70172804487660
26
+ - !ruby/object:Gem::Dependency
27
+ name: open4
28
+ requirement: &70172804487240 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ! '>='
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *70172804487240
37
+ description: A ruby library to convert videos into common html5 formats
38
+ email:
39
+ - peter.garbers@gmail.com
40
+ - hflouw@gmail.com
41
+ executables: []
42
+ extensions: []
43
+ extra_rdoc_files: []
44
+ files:
45
+ - .gitignore
46
+ - Gemfile
47
+ - README.md
48
+ - Rakefile
49
+ - Voyeur.gemspec
50
+ - lib/Voyeur.rb
51
+ - lib/Voyeur/converter.rb
52
+ - lib/Voyeur/exceptions.rb
53
+ - lib/Voyeur/version.rb
54
+ - lib/Voyeur/video.rb
55
+ - lib/Voyeur/video_converters/mp4.rb
56
+ - lib/Voyeur/video_converters/ogv.rb
57
+ - lib/Voyeur/video_converters/webm.rb
58
+ - spec/converter_spec.rb
59
+ - spec/converters/mp4_spec.rb
60
+ - spec/converters/ogv_spec.rb
61
+ - spec/converters/webm_spec.rb
62
+ - spec/fixtures/converted/PLACEHOLDER
63
+ - spec/fixtures/test.3gp
64
+ - spec/fixtures/test.mpeg
65
+ - spec/spec_helper.rb
66
+ - spec/spec_helpers/video_file_spec_helper.rb
67
+ - spec/video_spec.rb
68
+ homepage: http://devthenet.github.com/
69
+ licenses: []
70
+ post_install_message:
71
+ rdoc_options: []
72
+ require_paths:
73
+ - lib
74
+ required_ruby_version: !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ! '>='
78
+ - !ruby/object:Gem::Version
79
+ version: '0'
80
+ required_rubygems_version: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ requirements: []
87
+ rubyforge_project: Voyeur
88
+ rubygems_version: 1.8.10
89
+ signing_key:
90
+ specification_version: 3
91
+ summary: Ruby library to convert common video formats to HTML5 formats
92
+ test_files:
93
+ - spec/converter_spec.rb
94
+ - spec/converters/mp4_spec.rb
95
+ - spec/converters/ogv_spec.rb
96
+ - spec/converters/webm_spec.rb
97
+ - spec/fixtures/converted/PLACEHOLDER
98
+ - spec/fixtures/test.3gp
99
+ - spec/fixtures/test.mpeg
100
+ - spec/spec_helper.rb
101
+ - spec/spec_helpers/video_file_spec_helper.rb
102
+ - spec/video_spec.rb