ffprober 0.4.1 → 0.4.2

Sign up to get free protection for your applications and to get access to all the features.
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