paperclip-wav-mp3 0.0.0 → 0.0.1

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: b6809f83bc3f0d4ec6054ef15838e69fdb86edce
4
- data.tar.gz: d9950d2afe8d89a90bd2323e841fa2e9e5b53146
3
+ metadata.gz: 2da064bd68c4a179944fa82f40ce9f209f7f1106
4
+ data.tar.gz: e02f88277385e48ba457ee04917faa425e7b8e9f
5
5
  SHA512:
6
- metadata.gz: c6c6acf2fe581e39ad80386a5b67b9ec9fe4c01a9a5459166df41c113ee95b6819330554a7666faea00a9803399a1b9d6d17d200e7f8debd34f5285c0eceb8e1
7
- data.tar.gz: 158fbe2bdbb5db5954167c357c6aa34d6a6fc7dd4700a2f1f00c924a6fb6b1e4b4272b525077333dd3dd1daf9a69fc71b8f9f100d4afb612681d3d736a321a2e
6
+ metadata.gz: 238ae23e5cf0dd3cdb44fb5137e65c9b2114de3f1ec9115dc4e5216c951958feaabb8b7544bc65385e8585bde776ddc0733eac29bbdc25541f264db2a0c4a630
7
+ data.tar.gz: 43b90893c3e0ad6e5198740fe1fda04f2392fd28a887c3feac67597801ed5b113716203ee18c7971a9046f887c2677334029f16bb2a04f3432e5965f6733760b
data/.gitignore ADDED
@@ -0,0 +1 @@
1
+ *.gem
data/README.md CHANGED
@@ -1,4 +1,69 @@
1
- paperclip-wav-mp3
2
- =================
1
+ # paperclip-wav-mp3 [![Gem Version](https://badge.fury.io/rb/paperclip-wav-mp3.png)](http://badge.fury.io/rb/paperclip-wav-mp3)
2
+
3
+
3
4
 
4
5
  Paperclip processor to convert .wav files to .mp3 using ffmpeg
6
+
7
+ ## Requirements
8
+
9
+ ### Paperclip
10
+
11
+ This is a processor written for the quite excellent [Paperclip](https://github.com/thoughtbot/paperclip) gem by [ThoughtBot](https://github.com/thoughtbot). You will need to be using Paperclip to use it.
12
+
13
+ ### FFmpeg
14
+
15
+ FFmpeg is used to convert WAV audio to MP3. It must be installed within your environment and available on your PATH.
16
+
17
+ #### OS X
18
+
19
+ If you're developing on OS X, you can install FFmpeg using homebrew:
20
+
21
+ ```
22
+ brew install ffmpeg
23
+ ```
24
+
25
+ #### Ubuntu Linux
26
+
27
+ I've not tested on other linux distributions, but you can install FFmpeg and the required codecs with the following:
28
+
29
+ ```
30
+ apt-get install ffmpeg libavcodec-extra-52 libavdevice-extra-52 libavfilter-extra-0 libavformat-extra-52 libavutil-extra-49 libpostproc-extra-51 libswscale-extra-0
31
+ ```
32
+
33
+ ## Installation
34
+
35
+ This processor is distributed as a gem, which is how it should be used in your app.
36
+
37
+ Include the gem in your Gemfile:
38
+
39
+ ```
40
+ gem 'paperclip-wav-mp3', '~> 0.0'
41
+ ```
42
+
43
+ Once you've installed the gem, update the model which uses Paperclip to attach audio to add the processor:
44
+
45
+ ```
46
+ class Voicemail < ActiveRecord::Base
47
+ has_attached_file :audio,
48
+ styles: { mp3: {} },
49
+ processors: [:ffmpeg_wav_to_mp3]
50
+ end
51
+ ```
52
+
53
+ Now, when you attach a new `WAV` audio file, you will also create an `MP3` version.
54
+
55
+ To generate the missing `MP3` versions for files you've already attached you can use this paperclip rake task:
56
+
57
+ ```
58
+ rake paperclip:refresh:missing_styles
59
+ ```
60
+
61
+ ## Contributing
62
+
63
+ Feel free to raise any issues you have [here](https://github.com/pacso/paperclip-wav-mp3/issues), or if you're feeling generous then just send a [pull request](https://github.com/pacso/paperclip-wav-mp3/compare/) with your new feature/bugfix.
64
+
65
+ ## License
66
+
67
+ Copyright (c) 2014 Jon Pascoe.
68
+
69
+ This is free software and may be redistributed under the terms and conditions of The MIT License (MIT). Full details are available in the LICENSE file.
@@ -1,34 +1 @@
1
- require 'paperclip'
2
-
3
- module Paperclip
4
- class FfmpegWav2Mp3 < Processor
5
-
6
- attr_accessor :file, :params, :format
7
-
8
- def initialize(file, options = {}, attachment = nil)
9
- super
10
- @file = file
11
- @params = options[:params]
12
- @current_format = File.extname(@file.path)
13
- @basename = File.basename(@file.path, @current_format)
14
- @format = options[:format]
15
- end
16
-
17
- def make
18
- src = @file
19
- dst = Tempfile.new([@basename, @format ? ".#{@format}" : '' ])
20
-
21
- begin
22
- parameters = []
23
- parameters << @params
24
- parameters << ":source"
25
- parameters << ":dest"
26
- parameters = parameters.flatten.compact.join(' ').strip.squeeze(' ')
27
- success = Paperclip.run('ffmpeg', parameters, :source => File.expand_path(src.path), :dest => File.expand_path(dst.path))
28
- rescue PaperclipCommandLineError => e
29
- raise PaperclipError, "There was an error converting #{@basename} to mp3"
30
- end
31
- dst
32
- end
33
- end
34
- end
1
+ require 'paperclip_processors/ffmpeg_wav_to_mp3'
@@ -0,0 +1,31 @@
1
+ require 'paperclip'
2
+
3
+ module Paperclip
4
+ class FfmpegWavToMp3 < Processor
5
+
6
+ attr_accessor :file, :params, :format
7
+
8
+ def initialize(file, options = {}, attachment = nil)
9
+ super
10
+ @file = file
11
+ @params = options[:params] || '-y -i'
12
+ @current_format = File.extname(@file.path)
13
+ @basename = File.basename(@file.path, @current_format)
14
+ @format = options[:format] || 'mp3'
15
+ end
16
+
17
+ def make
18
+ source = @file
19
+ output = Tempfile.new([@basename, @format ? ".#{@format}" : '' ])
20
+
21
+ begin
22
+ parameters = [@params, ':source', ':dest'].flatten.compact.join(' ').strip.squeeze(' ')
23
+ Paperclip.run('ffmpeg', parameters, :source => File.expand_path(source.path), :dest => File.expand_path(output.path))
24
+ rescue PaperclipCommandLineError
25
+ raise PaperclipError, "There was an error converting #{@basename} to mp3"
26
+ end
27
+
28
+ output
29
+ end
30
+ end
31
+ end
@@ -1,7 +1,7 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'paperclip-wav-mp3'
3
- s.version = '0.0.0'
4
- s.authors = ['Jon Pascoe']
3
+ s.version = '0.0.1'
4
+ s.author = 'Jon Pascoe'
5
5
  s.email = 'jon.pascoe@me.com'
6
6
  s.homepage = 'https://github.com/pacso/paperclip-wav-mp3'
7
7
  s.summary = 'Paperclip WAV to MP3 Processor'
@@ -12,6 +12,6 @@ Gem::Specification.new do |s|
12
12
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
13
13
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
14
14
  s.require_paths = ["lib"]
15
-
15
+
16
16
  s.license = 'MIT'
17
- end
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: paperclip-wav-mp3
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.0
4
+ version: 0.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jon Pascoe
@@ -30,9 +30,11 @@ executables: []
30
30
  extensions: []
31
31
  extra_rdoc_files: []
32
32
  files:
33
+ - .gitignore
33
34
  - LICENSE
34
35
  - README.md
35
36
  - lib/paperclip-wav-mp3.rb
37
+ - lib/paperclip_processors/ffmpeg_wav_to_mp3.rb
36
38
  - paperclip-wav-mp3.gemspec
37
39
  homepage: https://github.com/pacso/paperclip-wav-mp3
38
40
  licenses: