voyeur 0.0.1

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 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