paperclip-wav-mp3 0.0.0 → 0.0.1

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 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: