ffprober 0.2.3 → 0.3.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/Changes.md +68 -0
- data/README.md +13 -0
- data/lib/ffprober/ffprobe_version.rb +28 -9
- data/lib/ffprober/version.rb +1 -1
- data/lib/ffprober.rb +9 -7
- data/spec/assets/version_outputs/osx-1_0 +11 -0
- data/spec/assets/version_outputs/osx-1_2_0 +11 -0
- data/spec/assets/version_outputs/raspian-0_8_6 +10 -0
- data/spec/assets/version_outputs/ubuntu-0_10_6 +11 -0
- data/spec/assets/version_outputs/windows-nightly +2 -0
- data/spec/ffprober/ffprobe_version_spec.rb +28 -25
- data/spec/ffprober/parser_spec.rb +97 -0
- data/spec/ffprober_spec.rb +0 -89
- metadata +17 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 601137d7c5b4608a87e94ee51eecf53b14feed41
|
4
|
+
data.tar.gz: 95281fcb4d95afa5c26624689d49be75c362ce94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 82193fa36d33469563bcda19253d32f8df70f8423c169c0799da6da6ca86993af6d20134caf31122736e5aa7ba8dd9e0e7ba0df1de9f28ad1463b36a3f096ed1
|
7
|
+
data.tar.gz: 4d07d14c7ad89713b97c3cc9b62d3893e6d3e06b11620a5993b61f23a59d65ae766bdfd61326bbae0887d1ad30ced8d3a5cb4a8b30aad84a7c52fcd211262b6e
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.0-
|
1
|
+
2.0.0-p195
|
data/Changes.md
ADDED
@@ -0,0 +1,68 @@
|
|
1
|
+
unrelaesed
|
2
|
+
-----------
|
3
|
+
- correctly detect ffprobe path on windows
|
4
|
+
- correctly detect avprobe
|
5
|
+
- detect nighlt builds
|
6
|
+
- refactor ffprobe version detection (+spec)
|
7
|
+
|
8
|
+
0.2.3
|
9
|
+
-----------
|
10
|
+
- Raise error if input file is invalid (InvalidInputFileError)
|
11
|
+
- Added support for Ffmpeg 1.1.4 and 1.2.1
|
12
|
+
|
13
|
+
0.2.2
|
14
|
+
-----------
|
15
|
+
- Added Caching to instantiated Stream Objects
|
16
|
+
- Switched from attr_reader to of attr_accessor in stream classes
|
17
|
+
|
18
|
+
0.2.1
|
19
|
+
-----------
|
20
|
+
- Refactored Ffmpeg version check
|
21
|
+
- Convert to ruby 1.9 hash syntax
|
22
|
+
- Bumped minmun required ruby version to 1.9.3
|
23
|
+
- JSON input will be parsed lazily
|
24
|
+
- Moved Ffprobe path finder into Ffprober Module
|
25
|
+
|
26
|
+
0.2.0
|
27
|
+
-----------
|
28
|
+
- Droped ruby 1.8 support
|
29
|
+
- Switched from multi_json to json
|
30
|
+
- Updated travis config
|
31
|
+
|
32
|
+
0.1.7
|
33
|
+
-----------
|
34
|
+
- Added support for Ffmpeg 1.1.4 and 1.2
|
35
|
+
|
36
|
+
0.1.6
|
37
|
+
-----------
|
38
|
+
- added bit rate attribute to video stream
|
39
|
+
- Added support for Ffmpeg 1.1.3
|
40
|
+
|
41
|
+
0.1.5
|
42
|
+
-----------
|
43
|
+
- Added support for Ffmpeg 1.1.2
|
44
|
+
|
45
|
+
0.1.4
|
46
|
+
-----------
|
47
|
+
- Added support for Ffmpeg 1.1.1
|
48
|
+
- Bumped rake dependency to 0.10
|
49
|
+
|
50
|
+
0.1.3
|
51
|
+
-----------
|
52
|
+
- Added support for Ffmpeg 1.1 and 1.0.1
|
53
|
+
|
54
|
+
0.1.1
|
55
|
+
-----------
|
56
|
+
- Added support for Ffmpeg 1.0
|
57
|
+
- Added tests for ffmpeg version checker
|
58
|
+
- Updated README
|
59
|
+
|
60
|
+
0.1.0
|
61
|
+
-----------
|
62
|
+
- Added missing License to README
|
63
|
+
- Improved Ffmpeg version detection
|
64
|
+
- Updated README
|
65
|
+
|
66
|
+
0.0.2
|
67
|
+
-----------
|
68
|
+
- first working version (supports Ffmpeg 0.10.2)
|
data/README.md
CHANGED
@@ -33,12 +33,25 @@ according to [ffmpeg changelog](http://git.videolan.org/?p=ffmpeg.git;a=blob_pla
|
|
33
33
|
|
34
34
|
[ffprobe documentation](http://www.ffmpeg.org/ffprobe.html)
|
35
35
|
|
36
|
+
## Improve FFMPEG version detection
|
37
|
+
|
38
|
+
help me collecting various version outputs of fprobe/ffmpeg
|
39
|
+
|
40
|
+
1. run `ffprobe -version` on your system
|
41
|
+
2. open an issue and send the output to me along with the expected version
|
42
|
+
3. profit
|
43
|
+
|
36
44
|
## Supported Rubies
|
37
45
|
|
38
46
|
Ffprober is tested under 1.9.3, 2.0, JRuby (1.9mode) and Rubinius (1.9mode) and ruby-head.
|
39
47
|
|
40
48
|
[](http://travis-ci.org/beanieboi/ffprober)
|
41
49
|
|
50
|
+
## Contributors
|
51
|
+
|
52
|
+
- Michael B. Kulik
|
53
|
+
- rmoriz
|
54
|
+
|
42
55
|
## Contributing
|
43
56
|
|
44
57
|
1. Fork it
|
@@ -1,21 +1,40 @@
|
|
1
1
|
module Ffprober
|
2
2
|
class FfprobeVersion
|
3
|
-
@@version_regex = /^ffprobe version (\d+)\.?(\d+)\.?(
|
3
|
+
@@version_regex = /^(ffprobe|avprobe|ffmpeg) version (\d+)\.?(\d+)\.?(\d+)*/
|
4
|
+
@@nightly_regex = /^(ffprobe|avprobe|ffmpeg) version N-/
|
4
5
|
|
5
6
|
MIN_VERSION = Gem::Version.new("0.9.0")
|
6
7
|
MAX_VERSION = Gem::Version.new("1.2.1")
|
7
8
|
|
8
9
|
def self.valid?
|
9
|
-
|
10
|
+
self.new.valid?
|
10
11
|
end
|
11
12
|
|
12
|
-
def
|
13
|
-
version
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
13
|
+
def valid?
|
14
|
+
nightly? || (MIN_VERSION <= version && version <= MAX_VERSION)
|
15
|
+
end
|
16
|
+
|
17
|
+
def parse_version
|
18
|
+
@parse_version ||= begin
|
19
|
+
_p = version_output.match(@@version_regex)
|
20
|
+
if _p.nil?
|
21
|
+
[0, 0, 0]
|
22
|
+
else
|
23
|
+
[_p[2].to_i, _p[3].to_i, _p[4].to_i]
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def version
|
29
|
+
@version ||= Gem::Version.new(parse_version.join("."))
|
30
|
+
end
|
31
|
+
|
32
|
+
def nightly?
|
33
|
+
!!(version_output =~ @@nightly_regex)
|
34
|
+
end
|
35
|
+
|
36
|
+
def version_output
|
37
|
+
@version_output ||= `#{Ffprober.path} -version`
|
19
38
|
end
|
20
39
|
end
|
21
40
|
end
|
data/lib/ffprober/version.rb
CHANGED
data/lib/ffprober.rb
CHANGED
@@ -10,15 +10,17 @@ require "json"
|
|
10
10
|
module Ffprober
|
11
11
|
def self.path
|
12
12
|
name = 'ffprobe'
|
13
|
+
name << '.exe' if self.windows?
|
13
14
|
|
14
|
-
|
15
|
-
|
16
|
-
else
|
17
|
-
path = ENV['PATH'].split(File::PATH_SEPARATOR).find { |path|
|
18
|
-
File.executable? File.join(path, name)
|
19
|
-
}
|
20
|
-
path && File.expand_path(name, path)
|
15
|
+
path = ENV['PATH'].split(File::PATH_SEPARATOR).find do |path|
|
16
|
+
File.executable?(File.join(path, name))
|
21
17
|
end
|
18
|
+
|
19
|
+
path && File.expand_path(name, path)
|
20
|
+
end
|
21
|
+
|
22
|
+
def self.windows?
|
23
|
+
!!(RUBY_PLATFORM =~ /(mingw|mswin)/)
|
22
24
|
end
|
23
25
|
|
24
26
|
class InvalidInputFileError < ::StandardError; end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
ffprobe version 1.0
|
2
|
+
built on May 18 2013 15:54:36 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
|
3
|
+
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
|
4
|
+
libavutil 52. 18.100 / 52. 18.100
|
5
|
+
libavcodec 54. 92.100 / 54. 92.100
|
6
|
+
libavformat 54. 63.104 / 54. 63.104
|
7
|
+
libavdevice 54. 3.103 / 54. 3.103
|
8
|
+
libavfilter 3. 42.103 / 3. 42.103
|
9
|
+
libswscale 2. 2.100 / 2. 2.100
|
10
|
+
libswresample 0. 17.102 / 0. 17.102
|
11
|
+
libpostproc 52. 2.100 / 52. 2.100
|
@@ -0,0 +1,11 @@
|
|
1
|
+
ffprobe version 1.2.0
|
2
|
+
built on May 18 2013 15:54:36 with Apple LLVM version 4.2 (clang-425.0.28) (based on LLVM 3.2svn)
|
3
|
+
configuration: --prefix=/usr/local/Cellar/ffmpeg/1.2.1 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=cc --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
|
4
|
+
libavutil 52. 18.100 / 52. 18.100
|
5
|
+
libavcodec 54. 92.100 / 54. 92.100
|
6
|
+
libavformat 54. 63.104 / 54. 63.104
|
7
|
+
libavdevice 54. 3.103 / 54. 3.103
|
8
|
+
libavfilter 3. 42.103 / 3. 42.103
|
9
|
+
libswscale 2. 2.100 / 2. 2.100
|
10
|
+
libswresample 0. 17.102 / 0. 17.102
|
11
|
+
libpostproc 52. 2.100 / 52. 2.100
|
@@ -0,0 +1,10 @@
|
|
1
|
+
avprobe version 0.8.6-6:0.8.6-1+rpi1, Copyright (c) 2007-2013 the Libav developers
|
2
|
+
built on Mar 31 2013 13:58:10 with gcc 4.6.3
|
3
|
+
avprobe 0.8.6-6:0.8.6-1+rpi1
|
4
|
+
libavutil 51. 22. 1 / 51. 22. 1
|
5
|
+
libavcodec 53. 35. 0 / 53. 35. 0
|
6
|
+
libavformat 53. 21. 1 / 53. 21. 1
|
7
|
+
libavdevice 53. 2. 0 / 53. 2. 0
|
8
|
+
libavfilter 2. 15. 0 / 2. 15. 0
|
9
|
+
libswscale 2. 1. 0 / 2. 1. 0
|
10
|
+
libpostproc 52. 0. 0 / 52. 0. 0
|
@@ -0,0 +1,11 @@
|
|
1
|
+
ffprobe version 0.10.6-6:0.10.6-0ubuntu0jon1
|
2
|
+
built on Nov 12 2012 12:53:40 with gcc 4.7.2
|
3
|
+
configuration: --arch=amd64 --enable-pthreads --enable-runtime-cpudetect --extra-version='6:0.10.6-0ubuntu0jon1' --libdir=/usr/lib/x86_64-linux-gnu --disable-stripping --prefix=/usr --enable-bzlib --enable-libdc1394 --enable-libfreetype --enable-frei0r --enable-gnutls --enable-libgsm --enable-libmp3lame --enable-librtmp --enable-libopencv --enable-libopenjpeg --enable-libpulse --enable-libschroedinger --enable-libspeex --enable-libtheora --enable-vaapi --enable-vdpau --enable-libvorbis --enable-libvpx --enable-zlib --enable-gpl --enable-postproc --enable-libcdio --enable-x11grab --enable-libx264 --shlibdir=/usr/lib/x86_64-linux-gnu --enable-shared --disable-static
|
4
|
+
libavutil 51. 35.100 / 51. 35.100
|
5
|
+
libavcodec 53. 61.100 / 53. 61.100
|
6
|
+
libavformat 53. 32.100 / 53. 32.100
|
7
|
+
libavdevice 53. 4.100 / 53. 4.100
|
8
|
+
libavfilter 2. 61.100 / 2. 61.100
|
9
|
+
libswscale 2. 1.100 / 2. 1.100
|
10
|
+
libswresample 0. 6.100 / 0. 6.100
|
11
|
+
libpostproc 52. 0.100 / 52. 0.100
|
@@ -2,37 +2,40 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Ffprober::FfprobeVersion do
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
5
|
+
VERSION_CHECKS = [
|
6
|
+
{ version: "0.9.0", pass: true },
|
7
|
+
{ version: "1.0.0", pass: true },
|
8
|
+
{ version: "1.1.0", pass: true },
|
9
|
+
{ version: "1.9.0", pass: false },
|
10
|
+
{ version: "1.2.1", pass: true }
|
11
|
+
]
|
10
12
|
|
11
13
|
context 'validates the ffprobe version' do
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
it 'detects versions 1.0' do
|
18
|
-
Ffprober::FfprobeVersion.stub(:parsed_version) { one_zero }
|
19
|
-
Ffprober::FfprobeVersion.valid?.should be_true
|
14
|
+
VERSION_CHECKS.each do |check|
|
15
|
+
it "detects version #{check[:version]}" do
|
16
|
+
Ffprober::FfprobeVersion.any_instance.stub(:version) { Gem::Version.new(check[:version]) }
|
17
|
+
Ffprober::FfprobeVersion.valid?.should be(check[:pass])
|
18
|
+
end
|
20
19
|
end
|
20
|
+
end
|
21
21
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
22
|
+
describe 'detects the version of ffprobe' do
|
23
|
+
Dir.new("spec/assets/version_outputs").each do |entry|
|
24
|
+
next if [".", "..", ".DS_Store"].include?(entry)
|
25
|
+
os, expected_version = entry.split("-")
|
26
26
|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
27
|
+
it "on #{os} from #{expected_version}" do
|
28
|
+
version_output = File.read("spec/assets/version_outputs/" + entry)
|
29
|
+
Ffprober::FfprobeVersion.any_instance.stub(:version_output) { version_output }
|
30
|
+
version_check = Ffprober::FfprobeVersion.new
|
31
31
|
|
32
|
-
|
33
|
-
|
34
|
-
|
32
|
+
if expected_version == "nightly"
|
33
|
+
version_check.nightly?.should eq(true)
|
34
|
+
version_check.valid?.should eq(true)
|
35
|
+
else
|
36
|
+
version_check.version.should eq(Gem::Version.new(expected_version.gsub("_", ".")))
|
37
|
+
end
|
38
|
+
end
|
35
39
|
end
|
36
|
-
|
37
40
|
end
|
38
41
|
end
|
@@ -0,0 +1,97 @@
|
|
1
|
+
# encoding: utf-8
|
2
|
+
require 'spec_helper'
|
3
|
+
|
4
|
+
describe Ffprober::Parser do
|
5
|
+
|
6
|
+
describe "from_file", if: Ffprober::FfprobeVersion.valid? do
|
7
|
+
before :each do
|
8
|
+
@ffprobe = Ffprober::Parser.from_file('spec/assets/301-extracting_a_ruby_gem.m4v')
|
9
|
+
end
|
10
|
+
|
11
|
+
describe "format" do
|
12
|
+
it "should determine the correct filename" do
|
13
|
+
@ffprobe.format.filename.should eq("spec/assets/301-extracting_a_ruby_gem.m4v")
|
14
|
+
end
|
15
|
+
|
16
|
+
it "should find the correct size" do
|
17
|
+
@ffprobe.format.size.should eq("130694")
|
18
|
+
end
|
19
|
+
|
20
|
+
it "should find the correct bit_rate" do
|
21
|
+
@ffprobe.format.bit_rate.should eq("502669")
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
describe "from invalid file", if: Ffprober::FfprobeVersion.valid? do
|
27
|
+
before :each do
|
28
|
+
@ffprobe = Ffprober::Parser.from_file('spec/assets/empty_file')
|
29
|
+
end
|
30
|
+
|
31
|
+
describe "format" do
|
32
|
+
it "should determine the correct filename" do
|
33
|
+
expect do
|
34
|
+
@ffprobe.format.filename.should eq("spec/assets/empty_file")
|
35
|
+
end.to raise_error
|
36
|
+
end
|
37
|
+
|
38
|
+
it "should find the correct size" do
|
39
|
+
expect do
|
40
|
+
@ffprobe.format.size.should eq("130694")
|
41
|
+
end.to raise_error
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should find the correct bit_rate" do
|
45
|
+
expect do
|
46
|
+
@ffprobe.format.bit_rate.should eq("502669")
|
47
|
+
end.to raise_error
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
describe "from_json" do
|
53
|
+
before :each do
|
54
|
+
@ffprobe = Ffprober::Parser.from_json(File.read('spec/assets/301-extracting_a_ruby_gem.json'))
|
55
|
+
end
|
56
|
+
|
57
|
+
describe "format" do
|
58
|
+
it "should determine the correct filename" do
|
59
|
+
@ffprobe.format.filename.should eq("301-extracting-a-ruby-gem.mp4")
|
60
|
+
end
|
61
|
+
|
62
|
+
it "should find the correct size" do
|
63
|
+
@ffprobe.format.size.should eq("44772490")
|
64
|
+
end
|
65
|
+
|
66
|
+
it "should find the correct bit_rate" do
|
67
|
+
@ffprobe.format.bit_rate.should eq("361309")
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
71
|
+
describe "audio_streams" do
|
72
|
+
it "should determine the correct number of audio streams" do
|
73
|
+
@ffprobe.audio_streams.count.should eq(1)
|
74
|
+
end
|
75
|
+
|
76
|
+
it "should determine the correct sample rate of the first audio stream" do
|
77
|
+
@ffprobe.audio_streams.first.sample_rate.should eq("48000")
|
78
|
+
end
|
79
|
+
|
80
|
+
end
|
81
|
+
|
82
|
+
describe "video_streams" do
|
83
|
+
it "should determine the correct width of the first video streams" do
|
84
|
+
@ffprobe.video_streams.first.width.should eq(960)
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should determine the correct width of the first video streams" do
|
88
|
+
@ffprobe.video_streams.first.height.should eq(600)
|
89
|
+
end
|
90
|
+
|
91
|
+
it "should determine the correct number of video streams" do
|
92
|
+
@ffprobe.video_streams.count.should eq(1)
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
96
|
+
|
97
|
+
end
|
data/spec/ffprober_spec.rb
CHANGED
@@ -2,51 +2,6 @@
|
|
2
2
|
require 'spec_helper'
|
3
3
|
|
4
4
|
describe Ffprober do
|
5
|
-
describe "from_file", if: Ffprober::FfprobeVersion.valid? do
|
6
|
-
before :each do
|
7
|
-
@ffprobe = Ffprober::Parser.from_file('spec/assets/301-extracting_a_ruby_gem.m4v')
|
8
|
-
end
|
9
|
-
|
10
|
-
describe "format" do
|
11
|
-
it "should determine the correct filename" do
|
12
|
-
@ffprobe.format.filename.should eq("spec/assets/301-extracting_a_ruby_gem.m4v")
|
13
|
-
end
|
14
|
-
|
15
|
-
it "should find the correct size" do
|
16
|
-
@ffprobe.format.size.should eq("130694")
|
17
|
-
end
|
18
|
-
|
19
|
-
it "should find the correct bit_rate" do
|
20
|
-
@ffprobe.format.bit_rate.should eq("502669")
|
21
|
-
end
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
describe "from invalid file", if: Ffprober::FfprobeVersion.valid? do
|
26
|
-
before :each do
|
27
|
-
@ffprobe = Ffprober::Parser.from_file('spec/assets/empty_file')
|
28
|
-
end
|
29
|
-
|
30
|
-
describe "format" do
|
31
|
-
it "should determine the correct filename" do
|
32
|
-
expect do
|
33
|
-
@ffprobe.format.filename.should eq("spec/assets/empty_file")
|
34
|
-
end.to raise_error
|
35
|
-
end
|
36
|
-
|
37
|
-
it "should find the correct size" do
|
38
|
-
expect do
|
39
|
-
@ffprobe.format.size.should eq("130694")
|
40
|
-
end.to raise_error
|
41
|
-
end
|
42
|
-
|
43
|
-
it "should find the correct bit_rate" do
|
44
|
-
expect do
|
45
|
-
@ffprobe.format.bit_rate.should eq("502669")
|
46
|
-
end.to raise_error
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
5
|
|
51
6
|
describe "if no ffprobe is found" do
|
52
7
|
it "should raise a exception" do
|
@@ -55,48 +10,4 @@ describe Ffprober do
|
|
55
10
|
end
|
56
11
|
end
|
57
12
|
|
58
|
-
describe "from_json" do
|
59
|
-
before :each do
|
60
|
-
@ffprobe = Ffprober::Parser.from_json(File.read('spec/assets/301-extracting_a_ruby_gem.json'))
|
61
|
-
end
|
62
|
-
|
63
|
-
describe "format" do
|
64
|
-
it "should determine the correct filename" do
|
65
|
-
@ffprobe.format.filename.should eq("301-extracting-a-ruby-gem.mp4")
|
66
|
-
end
|
67
|
-
|
68
|
-
it "should find the correct size" do
|
69
|
-
@ffprobe.format.size.should eq("44772490")
|
70
|
-
end
|
71
|
-
|
72
|
-
it "should find the correct bit_rate" do
|
73
|
-
@ffprobe.format.bit_rate.should eq("361309")
|
74
|
-
end
|
75
|
-
end
|
76
|
-
|
77
|
-
describe "audio_streams" do
|
78
|
-
it "should determine the correct number of audio streams" do
|
79
|
-
@ffprobe.audio_streams.count.should eq(1)
|
80
|
-
end
|
81
|
-
|
82
|
-
it "should determine the correct sample rate of the first audio stream" do
|
83
|
-
@ffprobe.audio_streams.first.sample_rate.should eq("48000")
|
84
|
-
end
|
85
|
-
|
86
|
-
end
|
87
|
-
|
88
|
-
describe "video_streams" do
|
89
|
-
it "should determine the correct width of the first video streams" do
|
90
|
-
@ffprobe.video_streams.first.width.should eq(960)
|
91
|
-
end
|
92
|
-
|
93
|
-
it "should determine the correct width of the first video streams" do
|
94
|
-
@ffprobe.video_streams.first.height.should eq(600)
|
95
|
-
end
|
96
|
-
|
97
|
-
it "should determine the correct number of video streams" do
|
98
|
-
@ffprobe.video_streams.count.should eq(1)
|
99
|
-
end
|
100
|
-
end
|
101
|
-
end
|
102
13
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ffprober
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- beanieboi
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-06-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rspec
|
@@ -49,6 +49,7 @@ files:
|
|
49
49
|
- .rspec
|
50
50
|
- .ruby-version
|
51
51
|
- .travis.yml
|
52
|
+
- Changes.md
|
52
53
|
- Gemfile
|
53
54
|
- LICENSE
|
54
55
|
- README.md
|
@@ -65,7 +66,13 @@ files:
|
|
65
66
|
- spec/assets/301-extracting_a_ruby_gem.json
|
66
67
|
- spec/assets/301-extracting_a_ruby_gem.m4v
|
67
68
|
- spec/assets/empty_file
|
69
|
+
- spec/assets/version_outputs/osx-1_0
|
70
|
+
- spec/assets/version_outputs/osx-1_2_0
|
71
|
+
- spec/assets/version_outputs/raspian-0_8_6
|
72
|
+
- spec/assets/version_outputs/ubuntu-0_10_6
|
73
|
+
- spec/assets/version_outputs/windows-nightly
|
68
74
|
- spec/ffprober/ffprobe_version_spec.rb
|
75
|
+
- spec/ffprober/parser_spec.rb
|
69
76
|
- spec/ffprober_spec.rb
|
70
77
|
- spec/spec_helper.rb
|
71
78
|
homepage: https://github.com/beanieboi/ffprober
|
@@ -88,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
88
95
|
version: '0'
|
89
96
|
requirements: []
|
90
97
|
rubyforge_project: ffprober
|
91
|
-
rubygems_version: 2.0.
|
98
|
+
rubygems_version: 2.0.2
|
92
99
|
signing_key:
|
93
100
|
specification_version: 4
|
94
101
|
summary: a Ruby wrapper for ffprobe (part of ffmpeg)
|
@@ -96,6 +103,13 @@ test_files:
|
|
96
103
|
- spec/assets/301-extracting_a_ruby_gem.json
|
97
104
|
- spec/assets/301-extracting_a_ruby_gem.m4v
|
98
105
|
- spec/assets/empty_file
|
106
|
+
- spec/assets/version_outputs/osx-1_0
|
107
|
+
- spec/assets/version_outputs/osx-1_2_0
|
108
|
+
- spec/assets/version_outputs/raspian-0_8_6
|
109
|
+
- spec/assets/version_outputs/ubuntu-0_10_6
|
110
|
+
- spec/assets/version_outputs/windows-nightly
|
99
111
|
- spec/ffprober/ffprobe_version_spec.rb
|
112
|
+
- spec/ffprober/parser_spec.rb
|
100
113
|
- spec/ffprober_spec.rb
|
101
114
|
- spec/spec_helper.rb
|
115
|
+
has_rdoc:
|