ffprober 0.4.1 → 0.4.2

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 11e951efb9157765fa5194d1fe25032376c32dc7
4
- data.tar.gz: e96082dc6729e9b8773d57d821611bfde7981b08
3
+ metadata.gz: bd7fc350d7f9f66cbb25c6cb55a1e90bf24ce8ff
4
+ data.tar.gz: 7d2acb4d7951acdfc115c7122aa62748af67b70a
5
5
  SHA512:
6
- metadata.gz: 5041177c6adcdde662d115178aeaba8d74430e1c1ac453cd94b2069de51c95751a13a3716a659a4637e6249de36c5fedda8d637b058b1cc4232ac8013263057f
7
- data.tar.gz: aac65347b2f79f44d460fc9d37f9dd79af7d393426f141bc4b8710b5350dfdd422261fde31e737bf85436a1d7a1d4de1f2948000a3b35f212ec25ad67fbb3c18
6
+ metadata.gz: 5150066eddd207d94b2ca21e3c30f7255863deabf923d2229015e786763adbedddfc32901c5ed135e14fd2cdb3a001a7cc2ccd06de7db5f3f672cf6911f9526d
7
+ data.tar.gz: 5f30d8e762965ca83827dd792a87741d76899abe9864a14154315b841dc5d0ea0b357fb5d95d79e88d28cdda225bc61735081d66067b842a6d3822f760f44dfb
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.1.2
1
+ 2.2.1
data/.travis.yml CHANGED
@@ -11,9 +11,9 @@ addons:
11
11
  repo_token: e319ec7d18fb8e1f05b460c3ef8fac58af3844d7bfa3d44de6b82eb874bb3e31
12
12
 
13
13
  rvm:
14
- - 1.9.3
15
14
  - 2.0.0
16
15
  - 2.1.0
17
- - jruby-19mode
16
+ - 2.2.1
18
17
  - rbx-2
19
18
  - ruby-head
19
+ - jruby-head
data/Changes.md CHANGED
@@ -1,3 +1,9 @@
1
+ 0.4.2 / 2015-03-27
2
+ ===================
3
+
4
+ * add support for ffmpeg 2.5.4
5
+ * add support for subtitle streams
6
+ * update Changes.md
1
7
 
2
8
  0.4.1 / 2014-08-27
3
9
  ==================
data/README.md CHANGED
@@ -43,7 +43,7 @@ help me collecting various version outputs of fprobe/ffmpeg
43
43
 
44
44
  ## Supported Rubies
45
45
 
46
- Ffprober is tested under 1.9.3, 2.0, 2.1, JRuby (1.9mode) and Rubinius (1.9mode) and ruby-head.
46
+ Ffprober is tested under 2.0, 2.1, JRuby (head) and Rubinius and ruby-head.
47
47
 
48
48
  [![Build Status](https://secure.travis-ci.org/beanieboi/ffprober.png?branch=master)](http://travis-ci.org/beanieboi/ffprober)
49
49
 
data/Rakefile ADDED
@@ -0,0 +1 @@
1
+ require "bundler/gem_tasks"
data/ffprober.gemspec CHANGED
@@ -1,24 +1,26 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/ffprober/version', __FILE__)
1
+ # coding: utf-8
2
+ lib = File.expand_path('../lib', __FILE__)
3
+ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
+ require "ffprober/version"
3
5
 
4
- Gem::Specification.new do |gem|
5
- gem.authors = ["beanieboi"]
6
- gem.email = ["beanie@benle.de"]
7
- gem.description = %q{a Ruby wrapper for ffprobe}
8
- gem.summary = %q{a Ruby wrapper for ffprobe (part of ffmpeg)}
9
- gem.homepage = "https://github.com/beanieboi/ffprober"
6
+ Gem::Specification.new do |spec|
7
+ spec.name = "ffprober"
8
+ spec.version = Ffprober::VERSION
9
+ spec.authors = ["beanieboi"]
10
+ spec.email = ["beanie@benle.de"]
10
11
 
11
- gem.required_ruby_version = ">= 1.9.3"
12
- gem.rubyforge_project = "ffprober"
12
+ spec.description = %q{a Ruby wrapper for ffprobe}
13
+ spec.summary = %q{a Ruby wrapper for ffprobe (part of ffmpeg)}
14
+ spec.homepage = "https://github.com/beanieboi/ffprober"
15
+ spec.license = "MIT"
13
16
 
14
- gem.licenses = ['MIT']
17
+ spec.files = `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
18
+ spec.bindir = "exe"
19
+ spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
20
+ spec.require_paths = ["lib"]
15
21
 
16
- gem.add_development_dependency "rspec", "~> 3.0"
22
+ spec.required_ruby_version = '~> 2.0'
17
23
 
18
- gem.files = `git ls-files`.split("\n")
19
- gem.executables = gem.files.grep(%r{^bin/}).map{ |f| File.basename(f) }
20
- gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
21
- gem.name = "ffprober"
22
- gem.require_paths = ["lib"]
23
- gem.version = Ffprober::VERSION
24
+ spec.add_development_dependency "rake", "~> 10.0"
25
+ spec.add_development_dependency "rspec", "~> 3.0"
24
26
  end
@@ -4,7 +4,7 @@ module Ffprober
4
4
  NIGHTLY_REGEX = /^(ffprobe|avprobe|ffmpeg) version (N|git)-/
5
5
 
6
6
  MIN_VERSION = Gem::Version.new('0.9.0')
7
- MAX_VERSION = Gem::Version.new('2.3.3')
7
+ MAX_VERSION = Gem::Version.new('2.5.4')
8
8
 
9
9
  def self.valid?
10
10
  new.valid?
@@ -1,3 +1,5 @@
1
+ require 'shellwords'
2
+
1
3
  module Ffprober
2
4
  class Parser
3
5
  def self.from_file(file_to_parse)
@@ -10,7 +12,7 @@ module Ffprober
10
12
  fail ArgumentError.new("File not found #{file_to_parse}")
11
13
  end
12
14
 
13
- json_output = `#{Ffprober.path} #{options} '#{file_to_parse}'`
15
+ json_output = `#{Ffprober.path} #{options} #{Shellwords.escape(file_to_parse)}`
14
16
  from_json(json_output)
15
17
  end
16
18
 
@@ -37,6 +39,10 @@ module Ffprober
37
39
  @audio_streams ||= stream_by_codec('audio').map { |stream| Ffprober::AudioStream.new(stream) }
38
40
  end
39
41
 
42
+ def subtitle_streams
43
+ @subtitle_streams ||= stream_by_codec('subtitle').map { |stream| Ffprober::SubtitleStream.new(stream) }
44
+ end
45
+
40
46
  def chapters
41
47
  @chapters ||= @json[:chapters].map { |chapter| Ffprober::Chapter.new(chapter) }
42
48
  end
@@ -0,0 +1,4 @@
1
+ module Ffprober
2
+ class SubtitleStream < Stream
3
+ end
4
+ end
@@ -1,3 +1,3 @@
1
1
  module Ffprober
2
- VERSION = '0.4.1'
2
+ VERSION = '0.4.2'
3
3
  end
data/lib/ffprober.rb CHANGED
@@ -5,6 +5,7 @@ require_relative 'ffprober/format'
5
5
  require_relative 'ffprober/stream'
6
6
  require_relative 'ffprober/audio_stream'
7
7
  require_relative 'ffprober/video_stream'
8
+ require_relative 'ffprober/subtitle_stream'
8
9
  require_relative 'ffprober/chapter'
9
10
  require_relative 'ffprober/ffprobe_version'
10
11
  require 'json'
metadata CHANGED
@@ -1,15 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ffprober
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.1
4
+ version: 0.4.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - beanieboi
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2014-08-27 00:00:00.000000000 Z
11
+ date: 2015-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: rake
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - "~>"
18
+ - !ruby/object:Gem::Version
19
+ version: '10.0'
20
+ type: :development
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: '10.0'
13
27
  - !ruby/object:Gem::Dependency
14
28
  name: rspec
15
29
  requirement: !ruby/object:Gem::Requirement
@@ -40,6 +54,7 @@ files:
40
54
  - Gemfile
41
55
  - LICENSE
42
56
  - README.md
57
+ - Rakefile
43
58
  - ffprober.gemspec
44
59
  - lib/ffprober.rb
45
60
  - lib/ffprober/audio_stream.rb
@@ -49,29 +64,9 @@ files:
49
64
  - lib/ffprober/format.rb
50
65
  - lib/ffprober/parser.rb
51
66
  - lib/ffprober/stream.rb
67
+ - lib/ffprober/subtitle_stream.rb
52
68
  - lib/ffprober/version.rb
53
69
  - lib/ffprober/video_stream.rb
54
- - spec/assets/301 extracting a ruby gem.m4v
55
- - spec/assets/empty_file
56
- - spec/assets/sample video.json
57
- - spec/assets/sample video.m4v
58
- - spec/assets/version_outputs/linux-nightly
59
- - spec/assets/version_outputs/osx-1_0
60
- - spec/assets/version_outputs/osx-1_2_0
61
- - spec/assets/version_outputs/osx-2_0
62
- - spec/assets/version_outputs/osx-2_0_1
63
- - spec/assets/version_outputs/osx-2_1_2
64
- - spec/assets/version_outputs/osx-2_1_4
65
- - spec/assets/version_outputs/osx-2_2
66
- - spec/assets/version_outputs/osx-2_2_2
67
- - spec/assets/version_outputs/osx-2_3_2
68
- - spec/assets/version_outputs/raspian-0_8_6
69
- - spec/assets/version_outputs/ubuntu-0_10_6
70
- - spec/assets/version_outputs/windows-nightly
71
- - spec/ffprober/ffprobe_version_spec.rb
72
- - spec/ffprober/parser_spec.rb
73
- - spec/ffprober_spec.rb
74
- - spec/spec_helper.rb
75
70
  homepage: https://github.com/beanieboi/ffprober
76
71
  licenses:
77
72
  - MIT
@@ -82,39 +77,18 @@ require_paths:
82
77
  - lib
83
78
  required_ruby_version: !ruby/object:Gem::Requirement
84
79
  requirements:
85
- - - ">="
80
+ - - "~>"
86
81
  - !ruby/object:Gem::Version
87
- version: 1.9.3
82
+ version: '2.0'
88
83
  required_rubygems_version: !ruby/object:Gem::Requirement
89
84
  requirements:
90
85
  - - ">="
91
86
  - !ruby/object:Gem::Version
92
87
  version: '0'
93
88
  requirements: []
94
- rubyforge_project: ffprober
95
- rubygems_version: 2.2.2
89
+ rubyforge_project:
90
+ rubygems_version: 2.4.5
96
91
  signing_key:
97
92
  specification_version: 4
98
93
  summary: a Ruby wrapper for ffprobe (part of ffmpeg)
99
- test_files:
100
- - spec/assets/301 extracting a ruby gem.m4v
101
- - spec/assets/empty_file
102
- - spec/assets/sample video.json
103
- - spec/assets/sample video.m4v
104
- - spec/assets/version_outputs/linux-nightly
105
- - spec/assets/version_outputs/osx-1_0
106
- - spec/assets/version_outputs/osx-1_2_0
107
- - spec/assets/version_outputs/osx-2_0
108
- - spec/assets/version_outputs/osx-2_0_1
109
- - spec/assets/version_outputs/osx-2_1_2
110
- - spec/assets/version_outputs/osx-2_1_4
111
- - spec/assets/version_outputs/osx-2_2
112
- - spec/assets/version_outputs/osx-2_2_2
113
- - spec/assets/version_outputs/osx-2_3_2
114
- - spec/assets/version_outputs/raspian-0_8_6
115
- - spec/assets/version_outputs/ubuntu-0_10_6
116
- - spec/assets/version_outputs/windows-nightly
117
- - spec/ffprober/ffprobe_version_spec.rb
118
- - spec/ffprober/parser_spec.rb
119
- - spec/ffprober_spec.rb
120
- - spec/spec_helper.rb
94
+ test_files: []
File without changes
@@ -1,177 +0,0 @@
1
- {
2
- "streams": [
3
- {
4
- "index": 0,
5
- "codec_name": "aac",
6
- "codec_long_name": "AAC (Advanced Audio Coding)",
7
- "codec_type": "audio",
8
- "codec_time_base": "1/44100",
9
- "codec_tag_string": "mp4a",
10
- "codec_tag": "0x6134706d",
11
- "sample_fmt": "fltp",
12
- "sample_rate": "44100",
13
- "channels": 2,
14
- "channel_layout": "stereo",
15
- "bits_per_sample": 0,
16
- "r_frame_rate": "0/0",
17
- "avg_frame_rate": "0/0",
18
- "time_base": "1/44100",
19
- "start_pts": 0,
20
- "start_time": "0.000000",
21
- "duration_ts": 7168,
22
- "duration": "0.162540",
23
- "bit_rate": "73582",
24
- "nb_frames": "7",
25
- "disposition": {
26
- "default": 1,
27
- "dub": 0,
28
- "original": 0,
29
- "comment": 0,
30
- "lyrics": 0,
31
- "karaoke": 0,
32
- "forced": 0,
33
- "hearing_impaired": 0,
34
- "visual_impaired": 0,
35
- "clean_effects": 0,
36
- "attached_pic": 0
37
- },
38
- "tags": {
39
- "creation_time": "2013-12-28 21:17:44",
40
- "language": "und",
41
- "handler_name": "Core Media Audio"
42
- }
43
- },
44
- {
45
- "index": 1,
46
- "codec_name": "h264",
47
- "codec_long_name": "H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10",
48
- "profile": "Constrained Baseline",
49
- "codec_type": "video",
50
- "codec_time_base": "1/5000",
51
- "codec_tag_string": "avc1",
52
- "codec_tag": "0x31637661",
53
- "width": 480,
54
- "height": 272,
55
- "has_b_frames": 0,
56
- "sample_aspect_ratio": "0:1",
57
- "display_aspect_ratio": "0:1",
58
- "pix_fmt": "yuv420p",
59
- "level": 21,
60
- "r_frame_rate": "25/1",
61
- "avg_frame_rate": "25/1",
62
- "time_base": "1/2500",
63
- "start_pts": 0,
64
- "start_time": "0.000000",
65
- "duration_ts": 300,
66
- "duration": "0.120000",
67
- "bit_rate": "79066",
68
- "nb_frames": "3",
69
- "disposition": {
70
- "default": 1,
71
- "dub": 0,
72
- "original": 0,
73
- "comment": 0,
74
- "lyrics": 0,
75
- "karaoke": 0,
76
- "forced": 0,
77
- "hearing_impaired": 0,
78
- "visual_impaired": 0,
79
- "clean_effects": 0,
80
- "attached_pic": 0
81
- },
82
- "tags": {
83
- "creation_time": "2013-12-28 21:17:44",
84
- "language": "und",
85
- "handler_name": "Core Media Video"
86
- }
87
- },
88
- {
89
- "index": 2,
90
- "codec_name": "mov_text",
91
- "codec_long_name": "3GPP Timed Text subtitle",
92
- "codec_type": "subtitle",
93
- "codec_time_base": "1/1000",
94
- "codec_tag_string": "text",
95
- "codec_tag": "0x74786574",
96
- "r_frame_rate": "0/0",
97
- "avg_frame_rate": "0/0",
98
- "time_base": "1/1000",
99
- "start_pts": 0,
100
- "start_time": "0.000000",
101
- "duration_ts": 98,
102
- "duration": "0.098000",
103
- "bit_rate": "5690",
104
- "nb_frames": "3",
105
- "disposition": {
106
- "default": 0,
107
- "dub": 0,
108
- "original": 0,
109
- "comment": 0,
110
- "lyrics": 0,
111
- "karaoke": 0,
112
- "forced": 0,
113
- "hearing_impaired": 0,
114
- "visual_impaired": 0,
115
- "clean_effects": 0,
116
- "attached_pic": 0
117
- },
118
- "tags": {
119
- "creation_time": "2013-12-28 21:28:08",
120
- "language": "eng"
121
- }
122
- }
123
- ],
124
- "chapters": [
125
- {
126
- "id": 0,
127
- "time_base": "1/1000",
128
- "start": 0,
129
- "start_time": "0.000000",
130
- "end": 10,
131
- "end_time": "0.010000",
132
- "tags": {
133
- "title": "Chapter 1"
134
- }
135
- },
136
- {
137
- "id": 1,
138
- "time_base": "1/1000",
139
- "start": 10,
140
- "start_time": "0.010000",
141
- "end": 20,
142
- "end_time": "0.020000",
143
- "tags": {
144
- "title": "Chapter 2"
145
- }
146
- },
147
- {
148
- "id": 2,
149
- "time_base": "1/1000",
150
- "start": 20,
151
- "start_time": "0.020000",
152
- "end": 97,
153
- "end_time": "0.097000",
154
- "tags": {
155
- "title": "Chapter 3"
156
- }
157
- }
158
- ],
159
- "format": {
160
- "filename": "spec/assets/sample video.m4v",
161
- "nb_streams": 3,
162
- "nb_programs": 0,
163
- "format_name": "mov,mp4,m4a,3gp,3g2,mj2",
164
- "format_long_name": "QuickTime / MOV",
165
- "start_time": "0.000000",
166
- "duration": "0.097600",
167
- "size": "4611",
168
- "bit_rate": "377950",
169
- "probe_score": 100,
170
- "tags": {
171
- "major_brand": "M4V ",
172
- "minor_version": "1",
173
- "compatible_brands": "M4V M4A mp42isom",
174
- "creation_time": "2013-12-28 21:17:44"
175
- }
176
- }
177
- }
Binary file
@@ -1,3 +0,0 @@
1
- ffprobe version git-2013-06-26-034b31d Copyright (c) 2007-2013 the FFmpeg developers
2
- built on Jun 26 2013 15:38:00 with gcc 4.7 (Ubuntu/Linaro 4.7.3-1ubuntu1)
3
- configuration: --enable-gpl --enable-libx264
@@ -1,11 +0,0 @@
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
@@ -1,11 +0,0 @@
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
@@ -1,12 +0,0 @@
1
- ffprobe version 2.0
2
- built on Jul 12 2013 11:15:38 with gcc 4.2.1 (GCC) (Apple Inc. build 5666) (dot 3)
3
- configuration: --prefix=/usr/local/Cellar/ffmpeg/2.0 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=/usr/bin/gcc-4.2 --host-cflags='-Os -w -pipe -march=core2 -msse4.1 -mmacosx-version-min=10.6' --host-ldflags=-L/usr/local/lib --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc
4
- libavutil 52. 38.100 / 52. 38.100
5
- libavcodec 55. 18.102 / 55. 18.102
6
- libavformat 55. 12.100 / 55. 12.100
7
- libavdevice 55. 3.100 / 55. 3.100
8
- libavfilter 3. 79.101 / 3. 79.101
9
- libavresample 1. 1. 0 / 1. 1. 0
10
- libswscale 2. 3.100 / 2. 3.100
11
- libswresample 0. 17.102 / 0. 17.102
12
- libpostproc 52. 3.100 / 52. 3.100
@@ -1,12 +0,0 @@
1
- ffprobe version 2.0.1
2
- built on Aug 15 2013 15:56:26 with gcc 4.2.1 (GCC) (Apple Inc. build 5666) (dot 3)
3
- configuration: --prefix=/usr/local/Cellar/ffmpeg/2.0.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 --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvo-aacenc
4
- libavutil 52. 38.100 / 52. 38.100
5
- libavcodec 55. 18.102 / 55. 18.102
6
- libavformat 55. 12.100 / 55. 12.100
7
- libavdevice 55. 3.100 / 55. 3.100
8
- libavfilter 3. 79.101 / 3. 79.101
9
- libavresample 1. 1. 0 / 1. 1. 0
10
- libswscale 2. 3.100 / 2. 3.100
11
- libswresample 0. 17.102 / 0. 17.102
12
- libpostproc 52. 3.100 / 52. 3.100
@@ -1,11 +0,0 @@
1
- ffprobe version 2.1.2-tessus
2
- built on Jan 13 2014 18:27:44 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
3
- configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
4
- libavutil 52. 48.101 / 52. 48.101
5
- libavcodec 55. 39.101 / 55. 39.101
6
- libavformat 55. 19.104 / 55. 19.104
7
- libavdevice 55. 5.100 / 55. 5.100
8
- libavfilter 3. 90.100 / 3. 90.100
9
- libswscale 2. 5.101 / 2. 5.101
10
- libswresample 0. 17.104 / 0. 17.104
11
- libpostproc 52. 3.100 / 52. 3.100
@@ -1,11 +0,0 @@
1
- ffprobe version 2.1.4-tessus
2
- built on Feb 23 2014 19:51:22 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
3
- configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
4
- libavutil 52. 48.101 / 52. 48.101
5
- libavcodec 55. 39.101 / 55. 39.101
6
- libavformat 55. 19.104 / 55. 19.104
7
- libavdevice 55. 5.100 / 55. 5.100
8
- libavfilter 3. 90.100 / 3. 90.100
9
- libswscale 2. 5.101 / 2. 5.101
10
- libswresample 0. 17.104 / 0. 17.104
11
- libpostproc 52. 3.100 / 52. 3.100
@@ -1,11 +0,0 @@
1
- ffprobe version 2.2-tessus
2
- built on Mar 24 2014 22:25:11 with llvm-gcc 4.2.1 (LLVM build 2336.1.00)
3
- configuration: --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --enable-runtime-cpudetect
4
- libavutil 52. 66.100 / 52. 66.100
5
- libavcodec 55. 52.102 / 55. 52.102
6
- libavformat 55. 33.100 / 55. 33.100
7
- libavdevice 55. 10.100 / 55. 10.100
8
- libavfilter 4. 2.100 / 4. 2.100
9
- libswscale 2. 5.102 / 2. 5.102
10
- libswresample 0. 18.100 / 0. 18.100
11
- libpostproc 52. 3.100 / 52. 3.100
@@ -1,16 +0,0 @@
1
- ffprobe version 2.2.2-tessus Copyright (c) 2007-2014 the FFmpeg developers
2
- built on May 7 2014 23:17:42 with clang version 3.3 (tags/RELEASE_33/final)
3
- configuration: --cc=/opt/local/bin/clang-mp-3.3 --prefix=/Users/tessus/data/ext/ffmpeg/sw --as=yasm --extra-version=tessus --disable-shared --enable-static --disable-ffplay --enable-gpl --enable-pthreads --enable-postproc --enable-libmp3lame --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libx265 --enable-libxvid --enable-libspeex --enable-bzlib --enable-zlib --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libxavs --enable-version3 --enable-libvo-aacenc --enable-libvo-amrwbenc --enable-libvpx --enable-libgsm --enable-libopus --enable-libmodplug --enable-fontconfig --enable-libfreetype --enable-libass --enable-libbluray --enable-filters --disable-indev=qtkit --enable-runtime-cpudetect
4
- libavutil 52. 66.100 / 52. 66.100
5
- libavcodec 55. 52.102 / 55. 52.102
6
- libavformat 55. 33.100 / 55. 33.100
7
- libavdevice 55. 10.100 / 55. 10.100
8
- libavfilter 4. 2.100 / 4. 2.100
9
- libswscale 2. 5.102 / 2. 5.102
10
- libswresample 0. 18.100 / 0. 18.100
11
- libpostproc 52. 3.100 / 52. 3.100
12
- Simple multimedia streams analyzer
13
- usage: ffprobe [OPTIONS] [INPUT_FILE]
14
-
15
- You have to specify one input file.
16
- Use -h to get full help or, even better, run 'man ffprobe'.
@@ -1,12 +0,0 @@
1
- ffprobe version 2.3.2 Copyright (c) 2007-2014 the FFmpeg developers
2
- built on Aug 22 2014 12:11:42 with Apple LLVM version 5.1 (clang-503.0.40) (based on LLVM 3.4svn)
3
- configuration: --prefix=/usr/local/Cellar/ffmpeg/2.3.2 --enable-shared --enable-pthreads --enable-gpl --enable-version3 --enable-nonfree --enable-hardcoded-tables --enable-avresample --enable-vda --cc=clang --host-cflags= --host-ldflags= --enable-libx264 --enable-libfaac --enable-libmp3lame --enable-libxvid
4
- libavutil 52. 92.100 / 52. 92.100
5
- libavcodec 55. 69.100 / 55. 69.100
6
- libavformat 55. 48.100 / 55. 48.100
7
- libavdevice 55. 13.102 / 55. 13.102
8
- libavfilter 4. 11.100 / 4. 11.100
9
- libavresample 1. 3. 0 / 1. 3. 0
10
- libswscale 2. 6.100 / 2. 6.100
11
- libswresample 0. 19.100 / 0. 19.100
12
- libpostproc 52. 3.100 / 52. 3.100
@@ -1,10 +0,0 @@
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
@@ -1,11 +0,0 @@
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
@@ -1,2 +0,0 @@
1
- ffmpeg version N-50354-g2ecf564 Copyright (c) 2000-2013 the FFmpeg developers
2
- built on Feb 27 2013 17:51:13 with gcc 4.7.2 (GCC)
@@ -1,58 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe Ffprober::FfprobeVersion do
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: '2.9.0', pass: false },
10
- { version: '1.2.1', pass: true },
11
- { version: '2.0', pass: true },
12
- { version: '2.0.1', pass: true },
13
- { version: '2.0.2', pass: true },
14
- { version: '2.1.1', pass: true },
15
- { version: '2.1.2', pass: true },
16
- { version: '2.1.4', pass: true },
17
- { version: '2.2', pass: true },
18
- { version: '2.2.2', pass: true }
19
- ]
20
-
21
- subject(:ffprobe_version) { Ffprober::FfprobeVersion.new }
22
-
23
- context 'validates the ffprobe version' do
24
- VERSION_CHECKS.each do |check|
25
- it "detects version #{check[:version]}" do
26
- allow(ffprobe_version).to receive(:version).and_return(Gem::Version.new(check[:version]))
27
- expect(ffprobe_version.valid?).to be(check[:pass])
28
- end
29
- end
30
- end
31
-
32
- describe 'detects the version of ffprobe' do
33
- Dir.new('spec/assets/version_outputs').each do |entry|
34
- next if ['.', '..', '.DS_Store'].include?(entry)
35
- os, expected_version = entry.split('-')
36
-
37
- it "on #{os} from #{expected_version}" do
38
- version_output = File.read('spec/assets/version_outputs/' + entry)
39
-
40
- allow(ffprobe_version).to receive(:ffprobe_version_output).and_return(version_output)
41
-
42
- if expected_version == 'nightly'
43
- expect(ffprobe_version.nightly?).to eq(true)
44
- expect(ffprobe_version.valid?).to eq(true)
45
- else
46
- expect(ffprobe_version.version).to eq(Gem::Version.new(expected_version.gsub('_', '.')))
47
- end
48
- end
49
- end
50
-
51
- it 'should not be valid if no ffprobe could be found in PATH' do
52
- allow(Ffprober).to receive(:path).and_return(nil)
53
- expect(ffprobe_version.version.to_s).to eq('0.0.0')
54
- expect(Ffprober::FfprobeVersion.valid?).to eq(false)
55
- end
56
-
57
- end
58
- end
@@ -1,93 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- def shared_specs
5
- describe 'format' do
6
- it 'should determine the correct filename' do
7
- expect(ffprobe.format.filename).to eq('spec/assets/sample video.m4v')
8
- end
9
-
10
- it 'should find the correct size' do
11
- expect(ffprobe.format.size).to eq('4611')
12
- end
13
-
14
- it 'should find the correct bit_rate' do
15
- expect(ffprobe.format.bit_rate).to eq('377950')
16
- end
17
- end
18
-
19
- describe 'audio_streams' do
20
- it 'should determine the correct number of audio streams' do
21
- expect(ffprobe.audio_streams.count).to eq(1)
22
- end
23
-
24
- it 'should determine the correct sample rate of the first audio stream' do
25
- expect(ffprobe.audio_streams.first.sample_rate).to eq('44100')
26
- end
27
- end
28
-
29
- describe 'video_streams' do
30
- it 'should determine the correct width of the first video streams' do
31
- expect(ffprobe.video_streams.first.width).to eq(480)
32
- end
33
-
34
- it 'should determine the correct width of the first video streams' do
35
- expect(ffprobe.video_streams.first.height).to eq(272)
36
- end
37
-
38
- it 'should determine the correct number of video streams' do
39
- expect(ffprobe.video_streams.count).to eq(1)
40
- end
41
- end
42
-
43
- describe 'chapters' do
44
- it 'should contain the chapters' do
45
- expect(ffprobe.chapters.count).to eq(3)
46
- end
47
-
48
- describe 'chapter' do
49
- subject(:chapter) { ffprobe.chapters.first }
50
-
51
- it 'should contain id' do expect(chapter.id).to eq(0) end
52
- it 'should contain time_base' do expect(chapter.time_base).to eq('1/1000') end
53
- it 'should contain start' do expect(chapter.start).to eq(0) end
54
- it 'should contain start_time' do expect(chapter.start_time).to eq('0.000000') end
55
- it 'should contain end' do expect(chapter.end).to eq(10) end
56
- it 'should contain end_time' do expect(chapter.end_time).to eq('0.010000') end
57
- it 'should contain tags' do expect(chapter.tags).to eq(title: 'Chapter 1') end
58
- end
59
- end
60
- end
61
-
62
- describe Ffprober::Parser do
63
-
64
- context 'from_file', if: Ffprober::FfprobeVersion.valid? do
65
- let(:ffprobe) { Ffprober::Parser.from_file('spec/assets/sample video.m4v') }
66
-
67
- shared_specs
68
- end
69
-
70
- context 'from_json' do
71
- let(:ffprobe) { Ffprober::Parser.from_json(File.read('spec/assets/sample video.json')) }
72
-
73
- shared_specs
74
- end
75
-
76
- context 'from invalid file', if: Ffprober::FfprobeVersion.valid? do
77
- let(:ffprobe) { Ffprober::Parser.from_file('spec/assets/empty_file') }
78
-
79
- describe 'format' do
80
- it 'should determine the correct filename' do
81
- expect { ffprobe.format.filename }.to raise_error
82
- end
83
-
84
- it 'should find the correct size' do
85
- expect { ffprobe.format.size }.to raise_error
86
- end
87
-
88
- it 'should find the correct bit_rate' do
89
- expect { ffprobe.format.bit_rate }.to raise_error
90
- end
91
- end
92
- end
93
- end
@@ -1,23 +0,0 @@
1
- # encoding: utf-8
2
- require 'spec_helper'
3
-
4
- describe Ffprober do
5
-
6
- describe 'if no ffprobe is found' do
7
- it 'should raise a exception if there is no ffmpeg' do
8
- allow(Ffprober).to receive(:path).and_return('nonexistant')
9
-
10
- expect do
11
- Ffprober::Parser.from_file('spec/assets/301-extracting_a_ruby_gem.m4v')
12
- end.to raise_error
13
- end
14
-
15
- it 'should raise a exception if there is no valid ffmpeg' do
16
- allow(Ffprober::FfprobeVersion).to receive(:valid?).and_return(false)
17
-
18
- expect do
19
- Ffprober::Parser.from_file('spec/assets/301-extracting_a_ruby_gem.m4v')
20
- end.to raise_error(ArgumentError)
21
- end
22
- end
23
- end
data/spec/spec_helper.rb DELETED
@@ -1,63 +0,0 @@
1
- require 'codeclimate-test-reporter'
2
- CodeClimate::TestReporter.start
3
- require 'ffprober'
4
-
5
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
6
- RSpec.configure do |config|
7
- # These two settings work together to allow you to limit a spec run
8
- # to individual examples or groups you care about by tagging them with
9
- # `:focus` metadata. When nothing is tagged with `:focus`, all examples
10
- # get run.
11
- config.filter_run :focus
12
- config.run_all_when_everything_filtered = true
13
-
14
- # Many RSpec users commonly either run the entire suite or an individual
15
- # file, and it's useful to allow more verbose output when running an
16
- # individual spec file.
17
- if config.files_to_run.one?
18
- # Use the documentation formatter for detailed output,
19
- # unless a formatter has already been configured
20
- # (e.g. via a command-line flag).
21
- config.default_formatter = 'doc'
22
- end
23
-
24
- # Print the 10 slowest examples and example groups at the
25
- # end of the spec run, to help surface which specs are running
26
- # particularly slow.
27
- config.profile_examples = 10
28
-
29
- # Run specs in random order to surface order dependencies. If you find an
30
- # order dependency and want to debug it, you can fix the order by providing
31
- # the seed, which is printed after each run.
32
- # --seed 1234
33
- config.order = :random
34
-
35
- # Seed global randomization in this process using the `--seed` CLI option.
36
- # Setting this allows you to use `--seed` to deterministically reproduce
37
- # test failures related to randomization by passing the same `--seed` value
38
- # as the one that triggered the failure.
39
- Kernel.srand config.seed
40
-
41
- # rspec-expectations config goes here. You can use an alternate
42
- # assertion/expectation library such as wrong or the stdlib/minitest
43
- # assertions if you prefer.
44
- config.expect_with :rspec do |expectations|
45
- # Enable only the newer, non-monkey-patching expect syntax.
46
- # For more details, see:
47
- # - http://myronmars.to/n/dev-blog/2012/06/rspecs-new-expectation-syntax
48
- expectations.syntax = :expect
49
- end
50
-
51
- # rspec-mocks config goes here. You can use an alternate test double
52
- # library (such as bogus or mocha) by changing the `mock_with` option here.
53
- config.mock_with :rspec do |mocks|
54
- # Enable only the newer, non-monkey-patching expect syntax.
55
- # For more details, see:
56
- # - http://teaisaweso.me/blog/2013/05/27/rspecs-new-message-expectation-syntax/
57
- mocks.syntax = :expect
58
-
59
- # Prevents you from mocking or stubbing a method that does not exist on
60
- # a real object. This is generally recommended.
61
- mocks.verify_partial_doubles = true
62
- end
63
- end