streamio-ffmpeg 0.7.4 → 0.7.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG +5 -0
- data/lib/ffmpeg/movie.rb +14 -4
- data/lib/ffmpeg/transcoder.rb +1 -0
- data/lib/ffmpeg/version.rb +1 -1
- metadata +3 -7
data/CHANGELOG
CHANGED
data/lib/ffmpeg/movie.rb
CHANGED
@@ -1,8 +1,8 @@
|
|
1
1
|
module FFMPEG
|
2
2
|
class Movie
|
3
3
|
attr_reader :path, :duration, :time, :bitrate
|
4
|
-
attr_reader :video_stream, :video_codec, :colorspace, :resolution, :dar
|
5
|
-
attr_reader :audio_stream, :audio_codec, :audio_sample_rate
|
4
|
+
attr_reader :video_stream, :video_codec, :video_bitrate, :colorspace, :resolution, :dar
|
5
|
+
attr_reader :audio_stream, :audio_codec, :audio_bitrate, :audio_sample_rate
|
6
6
|
|
7
7
|
def initialize(path)
|
8
8
|
raise Errno::ENOENT, "the file '#{path}' does not exist" unless File.exists?(path)
|
@@ -12,6 +12,8 @@ module FFMPEG
|
|
12
12
|
stdin, stdout, stderr = Open3.popen3("ffmpeg -i '#{path}'") # Output will land in stderr
|
13
13
|
output = stderr.read
|
14
14
|
|
15
|
+
fix_encoding(output)
|
16
|
+
|
15
17
|
output[/Duration: (\d{2}):(\d{2}):(\d{2}\.\d{1})/]
|
16
18
|
@duration = ($1.to_i*60*60) + ($2.to_i*60) + $3.to_f
|
17
19
|
|
@@ -32,13 +34,15 @@ module FFMPEG
|
|
32
34
|
@uncertain_duration = output.include?("Estimating duration from bitrate, this may be inaccurate")
|
33
35
|
|
34
36
|
if video_stream
|
35
|
-
@video_codec, @colorspace, resolution = video_stream.split(/\s?,\s?/)
|
37
|
+
@video_codec, @colorspace, resolution, video_bitrate = video_stream.split(/\s?,\s?/)
|
38
|
+
@video_bitrate = video_bitrate =~ %r(\A(\d+) kb/s\Z) ? $1.to_i : nil
|
36
39
|
@resolution = resolution.split(" ").first rescue nil # get rid of [PAR 1:1 DAR 16:9]
|
37
40
|
@dar = $1 if video_stream[/DAR (\d+:\d+)/]
|
38
41
|
end
|
39
42
|
|
40
43
|
if audio_stream
|
41
|
-
@audio_codec, audio_sample_rate, @audio_channels = audio_stream.split(/\s?,\s?/)
|
44
|
+
@audio_codec, audio_sample_rate, @audio_channels, unused, audio_bitrate = audio_stream.split(/\s?,\s?/)
|
45
|
+
@audio_bitrate = audio_bitrate =~ %r(\A(\d+) kb/s\Z) ? $1.to_i : nil
|
42
46
|
@audio_sample_rate = audio_sample_rate[/\d*/].to_i
|
43
47
|
end
|
44
48
|
|
@@ -94,5 +98,11 @@ module FFMPEG
|
|
94
98
|
map = { '\\' => '\\\\', '</' => '<\/', "\r\n" => '\n', "\n" => '\n', "\r" => '\n', '"' => '\\"', "'" => "\\'" }
|
95
99
|
path.gsub(/(\\|<\/|\r\n|[\n\r"'])/) { map[$1] }
|
96
100
|
end
|
101
|
+
|
102
|
+
def fix_encoding(output)
|
103
|
+
output[/test/] # Running a regexp on the string throws error if it's not UTF-8
|
104
|
+
rescue ArgumentError
|
105
|
+
output.force_encoding("ISO-8859-1")
|
106
|
+
end
|
97
107
|
end
|
98
108
|
end
|
data/lib/ffmpeg/transcoder.rb
CHANGED
data/lib/ffmpeg/version.rb
CHANGED
metadata
CHANGED
@@ -1,13 +1,12 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: streamio-ffmpeg
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 11
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
7
|
- 7
|
9
|
-
-
|
10
|
-
version: 0.7.
|
8
|
+
- 5
|
9
|
+
version: 0.7.5
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
12
|
- David Backeus
|
@@ -15,7 +14,7 @@ autorequire:
|
|
15
14
|
bindir: bin
|
16
15
|
cert_chain: []
|
17
16
|
|
18
|
-
date:
|
17
|
+
date: 2011-01-14 00:00:00 +01:00
|
19
18
|
default_executable:
|
20
19
|
dependencies:
|
21
20
|
- !ruby/object:Gem::Dependency
|
@@ -26,7 +25,6 @@ dependencies:
|
|
26
25
|
requirements:
|
27
26
|
- - "="
|
28
27
|
- !ruby/object:Gem::Version
|
29
|
-
hash: 27
|
30
28
|
segments:
|
31
29
|
- 1
|
32
30
|
- 3
|
@@ -66,7 +64,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
66
64
|
requirements:
|
67
65
|
- - ">="
|
68
66
|
- !ruby/object:Gem::Version
|
69
|
-
hash: 3
|
70
67
|
segments:
|
71
68
|
- 0
|
72
69
|
version: "0"
|
@@ -75,7 +72,6 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
75
72
|
requirements:
|
76
73
|
- - ">="
|
77
74
|
- !ruby/object:Gem::Version
|
78
|
-
hash: 23
|
79
75
|
segments:
|
80
76
|
- 1
|
81
77
|
- 3
|