mediainfo 1.1.2 → 1.2.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/.gitignore +1 -1
- data/.travis.yml +13 -0
- data/{GemFile → Gemfile} +1 -1
- data/README.md +7 -6
- data/lib/mediainfo.rb +17 -2
- data/lib/mediainfo/version.rb +1 -1
- data/mediainfo.gemspec +2 -2
- metadata +16 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a980499371cba6af063e9a484fefdc52bb0ac1d0cf231c2477a9cad13c5a81c9
|
4
|
+
data.tar.gz: 86137ca8a4adf93980fa3069cd828584b974c53a7e7c43375a0f67f13e19a727
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 754815e1737c88fa9b1512eb79ef0f9d610d472f6a1b0c283009319f5d7a1d7f6277470398df1f66f3bf69483d3392658da8827df1f9a780d1cd7c5dfd680b23
|
7
|
+
data.tar.gz: d984ab7702fbba06307f56f510744ca11a4bd6beb9d7ab5e936a4e470a84fa94a4ced6466e26248adc59f6e31abed251cea8b4d7faa2e66654c218c9782eeecd
|
data/.gitignore
CHANGED
data/.travis.yml
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
language: ruby
|
2
|
+
rvm:
|
3
|
+
- 2.6.1
|
4
|
+
before_install:
|
5
|
+
- sudo apt-get install -y mediainfo
|
6
|
+
env:
|
7
|
+
- MEDIAINFO_PATH=/usr/bin/mediainfo
|
8
|
+
install:
|
9
|
+
# Install bundler 2
|
10
|
+
- gem update --no-document --system
|
11
|
+
- gem install bundler --no-document
|
12
|
+
# Install gems
|
13
|
+
- bundle install
|
data/{GemFile → Gemfile}
RENAMED
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# MediaInfo
|
1
|
+
# MediaInfo [](https://travis-ci.org/greatseth/mediainfo)
|
2
2
|
|
3
3
|
MediaInfo is a class wrapping [the mediainfo CLI](http://mediainfo.sourceforge.net).
|
4
4
|
|
@@ -15,9 +15,9 @@ MediaInfo is a class wrapping [the mediainfo CLI](http://mediainfo.sourceforge.n
|
|
15
15
|
#### Handling a URL
|
16
16
|
media_info = MediaInfo.from('http://techslides.com/demos/sample-videos/small.mp4')
|
17
17
|
|
18
|
-
You can specify an alternate path for the
|
18
|
+
Ensure mediainfo is installed and within your PATH. You can specify an alternate path for the mediainfo binary if needed:
|
19
19
|
|
20
|
-
ENV['MEDIAINFO_PATH'] = "/
|
20
|
+
ENV['MEDIAINFO_PATH'] = "/usr/bin/mediainfo"
|
21
21
|
|
22
22
|
Once you have an MediaInfo object, you can start inspecting tracks:
|
23
23
|
|
@@ -82,7 +82,7 @@ Sometimes you'll have more than one track of a given type:
|
|
82
82
|
- You can review lib/attribute_standardization_rules.yml to see them all
|
83
83
|
|
84
84
|
|
85
|
-
media_info.video.bit_rate => nil (\<Bit_rate>41.2 Mbps\</Bit_rate>)
|
85
|
+
media_info.video.bit_rate => nil (\<Bit_rate>41.2 Mbps\</Bit_rate>)
|
86
86
|
media_info.video.bitrate => "41.2 Mbps" (\<Bit_rate>41.2 Mbps\</Bit_rate>)
|
87
87
|
media_info.general.filesize => "11.5 MiB" (\<File_size>11.5 MiB\</File_size>
|
88
88
|
|
@@ -100,7 +100,7 @@ The track type media_info.video5 is available, but no video2, 3, and 4. This is
|
|
100
100
|
<ID>5</ID>
|
101
101
|
...
|
102
102
|
|
103
|
-
*The ID will take priority for labeling.* Else if no ID exists, you'll see consecutive numbering for duplicate tracks in the Media.
|
103
|
+
*The ID will take priority for labeling.* Else if no ID exists, you'll see consecutive numbering for duplicate tracks in the Media.
|
104
104
|
|
105
105
|
Any second level attributes are also available:
|
106
106
|
|
@@ -133,7 +133,8 @@ should at least return `nil`.
|
|
133
133
|
|
134
134
|
## Contributors
|
135
135
|
|
136
|
-
* Seth Thomas Rasmussen -
|
136
|
+
* Seth Thomas Rasmussen -
|
137
|
+
[http://github.com/greatseth](http://github.com/greatseth)
|
137
138
|
* Peter Vandenberk - [http://github.com/pvdb](http://github.com/pvdb)
|
138
139
|
* Ned Campion - [http://github.com/nedcampion](http://github.com/nedcampion)
|
139
140
|
* Daniel Jagszent - [http://github.com/d--j](http://github.com/d--j)
|
data/lib/mediainfo.rb
CHANGED
@@ -6,9 +6,24 @@ require 'mediainfo/string'
|
|
6
6
|
|
7
7
|
module MediaInfo
|
8
8
|
|
9
|
+
def self.which(cmd)
|
10
|
+
exts = ENV['PATHEXT'] ? ENV['PATHEXT'].split(';') : ['']
|
11
|
+
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
|
12
|
+
exts.each { |ext|
|
13
|
+
exe = File.join(path, "#{cmd}#{ext}")
|
14
|
+
return exe if File.executable?(exe) && !File.directory?(exe)
|
15
|
+
}
|
16
|
+
end
|
17
|
+
return nil
|
18
|
+
end
|
19
|
+
|
9
20
|
# Allow user to set custom mediainfo_path with ENV['MEDIAINFO_PATH']
|
10
21
|
def self.location
|
11
|
-
ENV['MEDIAINFO_PATH'].nil?
|
22
|
+
if ENV['MEDIAINFO_PATH'].nil?
|
23
|
+
mediainfo_location = which('mediainfo')
|
24
|
+
else
|
25
|
+
mediainfo_location = ENV['MEDIAINFO_PATH']
|
26
|
+
end
|
12
27
|
raise EnvironmentError, "#{mediainfo_location} cannot be found. Are you sure mediainfo is installed?" unless ::File.exist? mediainfo_location
|
13
28
|
return mediainfo_location
|
14
29
|
end
|
@@ -57,7 +72,7 @@ module MediaInfo
|
|
57
72
|
|
58
73
|
def self.from_string(input)
|
59
74
|
return from_xml(input) if input.include?('<?xml')
|
60
|
-
return from_link(input) if input =~ URI::regexp
|
75
|
+
return from_link(input) if input.include?('://') && input =~ URI::regexp
|
61
76
|
return from_local_file(input) if input.match(/[^\\]*\.\w+$/)
|
62
77
|
raise BadInputError
|
63
78
|
end
|
data/lib/mediainfo/version.rb
CHANGED
data/mediainfo.gemspec
CHANGED
@@ -21,10 +21,10 @@ Gem::Specification.new do |s|
|
|
21
21
|
end
|
22
22
|
|
23
23
|
# Since Ruby 1.8, REXML is included in the standard Ruby distribution.
|
24
|
-
s.add_development_dependency 'bundler', '~>
|
24
|
+
s.add_development_dependency 'bundler', '~> 2'
|
25
25
|
s.add_development_dependency 'rake', '~> 12.3'
|
26
26
|
s.add_development_dependency 'rspec', '~> 3.0'
|
27
|
-
s.add_development_dependency 'nokogiri', '
|
27
|
+
s.add_development_dependency 'nokogiri', '>= 1.8', '< 2.0' # Ability to parse XML response # Optional and should be included by user in their own gemfile
|
28
28
|
|
29
29
|
if s.respond_to? :specification_version then
|
30
30
|
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediainfo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Seth Thomas Rasmussen
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-03-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '2'
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '2'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rake
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -56,16 +56,22 @@ dependencies:
|
|
56
56
|
name: nokogiri
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- - "
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '1.8'
|
62
|
+
- - "<"
|
63
|
+
- !ruby/object:Gem::Version
|
64
|
+
version: '2.0'
|
62
65
|
type: :development
|
63
66
|
prerelease: false
|
64
67
|
version_requirements: !ruby/object:Gem::Requirement
|
65
68
|
requirements:
|
66
|
-
- - "
|
69
|
+
- - ">="
|
67
70
|
- !ruby/object:Gem::Version
|
68
71
|
version: '1.8'
|
72
|
+
- - "<"
|
73
|
+
- !ruby/object:Gem::Version
|
74
|
+
version: '2.0'
|
69
75
|
description: MediaInfo is a class wrapping the mediainfo CLI (http://mediainfo.sourceforge.net)
|
70
76
|
that standardizes attributes/methods and also converts most values into something
|
71
77
|
Ruby can understand.
|
@@ -76,8 +82,10 @@ extra_rdoc_files: []
|
|
76
82
|
files:
|
77
83
|
- ".gitignore"
|
78
84
|
- ".rspec"
|
85
|
+
- ".travis.yml"
|
86
|
+
- ".vscode/settings.json"
|
79
87
|
- Changelog
|
80
|
-
-
|
88
|
+
- Gemfile
|
81
89
|
- LICENSE
|
82
90
|
- README.md
|
83
91
|
- Rakefile
|
@@ -112,8 +120,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
112
120
|
- !ruby/object:Gem::Version
|
113
121
|
version: '1.2'
|
114
122
|
requirements: []
|
115
|
-
|
116
|
-
rubygems_version: 2.7.6
|
123
|
+
rubygems_version: 3.0.2
|
117
124
|
signing_key:
|
118
125
|
specification_version: 3
|
119
126
|
summary: MediaInfo is a class wrapping the mediainfo CLI (http://mediainfo.sourceforge.net)
|