streamio-ffmpeg 0.8.1 → 0.8.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.
- data/CHANGELOG +5 -0
- data/README.rdoc +8 -0
- data/lib/ffmpeg/movie.rb +3 -2
- data/lib/ffmpeg/transcoder.rb +1 -1
- data/lib/ffmpeg/version.rb +1 -1
- data/lib/streamio-ffmpeg.rb +16 -0
- metadata +31 -38
data/CHANGELOG
CHANGED
data/README.rdoc
CHANGED
@@ -94,6 +94,14 @@ Use ffpreset files to avoid headaches when encoding with libx264 (http://www.ffm
|
|
94
94
|
options = {:video_codec => "libx264", :video_preset => "medium"} # audio_preset and file_preset also availible
|
95
95
|
movie.transcode("movie.mp4", options) # encodes video using libx264-medium.ffpreset
|
96
96
|
|
97
|
+
== Specify the path to ffmpeg
|
98
|
+
|
99
|
+
By default, streamio assumes that the ffmpeg binary is available in the execution path and named ffmpeg and so will run commands that look something like "ffmpeg -i /path/to/input.file ...". Use the FFMPEG.ffmpeg_binary setter to specify the full path to the binary if necessary:
|
100
|
+
|
101
|
+
FFMPEG.ffmpeg_binary = '/usr/local/bin/ffmpeg'
|
102
|
+
|
103
|
+
This will cause the same command to run as "/usr/local/bin/ffmpeg -i /path/to/input.file ..." instead.
|
104
|
+
|
97
105
|
== Copyright
|
98
106
|
|
99
107
|
Copyright (c) 2010 Streamio Networks AB. See LICENSE for details.
|
data/lib/ffmpeg/movie.rb
CHANGED
@@ -9,7 +9,7 @@ module FFMPEG
|
|
9
9
|
|
10
10
|
@path = escape(path)
|
11
11
|
|
12
|
-
stdin, stdout, stderr = Open3.popen3("
|
12
|
+
stdin, stdout, stderr = Open3.popen3("#{FFMPEG.ffmpeg_binary} -i '#{path}'") # Output will land in stderr
|
13
13
|
output = stderr.read
|
14
14
|
|
15
15
|
fix_encoding(output)
|
@@ -44,7 +44,8 @@ module FFMPEG
|
|
44
44
|
@audio_sample_rate = audio_sample_rate[/\d*/].to_i
|
45
45
|
end
|
46
46
|
|
47
|
-
@invalid = @video_stream.to_s.empty? && @audio_stream.to_s.empty?
|
47
|
+
@invalid = true if @video_stream.to_s.empty? && @audio_stream.to_s.empty?
|
48
|
+
@invalid = true if output.include?("is not supported")
|
48
49
|
end
|
49
50
|
|
50
51
|
def valid?
|
data/lib/ffmpeg/transcoder.rb
CHANGED
@@ -23,7 +23,7 @@ module FFMPEG
|
|
23
23
|
# ffmpeg < 0.8: frame= 413 fps= 48 q=31.0 size= 2139kB time=16.52 bitrate=1060.6kbits/s
|
24
24
|
# ffmpeg >= 0.8: frame= 4855 fps= 46 q=31.0 size= 45306kB time=00:02:42.28 bitrate=2287.0kbits/
|
25
25
|
def run
|
26
|
-
command = "
|
26
|
+
command = "#{FFMPEG.ffmpeg_binary} -y -i '#{@movie.path}' #{@raw_options} '#{@output_file}'"
|
27
27
|
FFMPEG.logger.info("Running transcoding...\n#{command}\n")
|
28
28
|
output = ""
|
29
29
|
last_output = nil
|
data/lib/ffmpeg/version.rb
CHANGED
data/lib/streamio-ffmpeg.rb
CHANGED
@@ -27,4 +27,20 @@ module FFMPEG
|
|
27
27
|
logger.level = Logger::INFO
|
28
28
|
@logger = logger
|
29
29
|
end
|
30
|
+
|
31
|
+
# Set the path of the ffmpeg binary.
|
32
|
+
# Can be useful if you need to specify a path such as /usr/local/bin/ffmpeg
|
33
|
+
#
|
34
|
+
# @param [String] path to the ffmpeg binary
|
35
|
+
# @return [String] the path you set
|
36
|
+
def self.ffmpeg_binary=(bin)
|
37
|
+
@ffmpeg_binary = bin
|
38
|
+
end
|
39
|
+
|
40
|
+
# Get the path to the ffmpeg binary, defaulting to 'ffmpeg'
|
41
|
+
#
|
42
|
+
# @return [String] the path to the ffmpeg binary
|
43
|
+
def self.ffmpeg_binary
|
44
|
+
@ffmpeg_binary.nil? ? 'ffmpeg' : @ffmpeg_binary
|
45
|
+
end
|
30
46
|
end
|
metadata
CHANGED
@@ -1,38 +1,35 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: streamio-ffmpeg
|
3
|
-
version: !ruby/object:Gem::Version
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.8.2
|
4
5
|
prerelease:
|
5
|
-
version: 0.8.1
|
6
6
|
platform: ruby
|
7
|
-
authors:
|
7
|
+
authors:
|
8
8
|
- David Backeus
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-08-19 00:00:00.000000000Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
16
15
|
name: rspec
|
17
|
-
requirement: &
|
16
|
+
requirement: &2152909420 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
|
-
requirements:
|
18
|
+
requirements:
|
20
19
|
- - ~>
|
21
|
-
- !ruby/object:Gem::Version
|
20
|
+
- !ruby/object:Gem::Version
|
22
21
|
version: 2.6.0
|
23
22
|
type: :development
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
26
|
-
description: Simple yet powerful wrapper around ffmpeg to get metadata from movies
|
27
|
-
|
24
|
+
version_requirements: *2152909420
|
25
|
+
description: Simple yet powerful wrapper around ffmpeg to get metadata from movies
|
26
|
+
and do transcoding.
|
27
|
+
email:
|
28
28
|
- david@streamio.se
|
29
29
|
executables: []
|
30
|
-
|
31
30
|
extensions: []
|
32
|
-
|
33
31
|
extra_rdoc_files: []
|
34
|
-
|
35
|
-
files:
|
32
|
+
files:
|
36
33
|
- lib/ffmpeg/encoding_options.rb
|
37
34
|
- lib/ffmpeg/movie.rb
|
38
35
|
- lib/ffmpeg/transcoder.rb
|
@@ -43,36 +40,32 @@ files:
|
|
43
40
|
- CHANGELOG
|
44
41
|
homepage: http://github.com/streamio/streamio-ffmpeg
|
45
42
|
licenses: []
|
46
|
-
|
47
43
|
post_install_message:
|
48
44
|
rdoc_options: []
|
49
|
-
|
50
|
-
require_paths:
|
45
|
+
require_paths:
|
51
46
|
- lib
|
52
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
47
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
53
48
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
segments:
|
49
|
+
requirements:
|
50
|
+
- - ! '>='
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '0'
|
53
|
+
segments:
|
59
54
|
- 0
|
60
|
-
|
61
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
55
|
+
hash: 951887406957158189
|
56
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
57
|
none: false
|
63
|
-
requirements:
|
64
|
-
- -
|
65
|
-
- !ruby/object:Gem::Version
|
66
|
-
|
67
|
-
segments:
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
segments:
|
68
63
|
- 0
|
69
|
-
|
64
|
+
hash: 951887406957158189
|
70
65
|
requirements: []
|
71
|
-
|
72
66
|
rubyforge_project:
|
73
|
-
rubygems_version: 1.
|
67
|
+
rubygems_version: 1.8.6
|
74
68
|
signing_key:
|
75
69
|
specification_version: 3
|
76
70
|
summary: Reads metadata and transcodes movies.
|
77
71
|
test_files: []
|
78
|
-
|