скрепки в рельсах3 - PullRequest
       22

скрепки в рельсах3

1 голос
/ 23 декабря 2010

Я пытаюсь загрузить mp3 в S3 с помощью скрепки, которая работает нормально, но когда я пытаюсь использовать собственный процессор для создания аудиофайла более низкого качества, я сталкиваюсь с проблемами.

Кажется, что это работает, но вместо вывода всей песни в 128k, это только первые 6 секунд. (он отлично работает, когда я пытаюсь использовать ffmpeg в командной строке) И делает это для обоих «стилей», а не только для стиля сниппета, также обрабатывается оригинал, который мне не нужен.

song.rb

class Song < ActiveRecord::Base
  belongs_to :record

  #after_save :create_metadata

  Paperclip.interpolates :record_id  do |attachment, style|
    attachment.instance.record_id
  end

  has_attached_file :mp3,
    :styles => { 
      :snippet => { :processors => [:audio_prehear] } 
    },
    :storage => 's3',
    :s3_credentials => "#{RAILS_ROOT}/config/s3_credentials.yml"....

Мой процессор

module Paperclip
  class AudioPrehear < Processor
    attr_accessor :resolution, :whiny
    def initialize(file, options = {}, attachment = nil)
      super
      @file = file
      @whiny = options[:whiny].nil? ? true : options[:whiny]
      @basename = File.basename(@file.path, File.extname(@file.path))
    end
    def make
      target = File.dirname(@file.path) + "/" + @basename + ".mp3"
      convert File.expand_path(file.path), target
      dst = File.open target
    end
    def convert (infile, outfile)
      cmd = "-y -i #{infile} -ab 128k #{outfile}"
      begin
       success = Paperclip.run('ffmpeg', cmd)
      rescue PaperclipCommandLineError
        raise PaperclipError, "There was an error processing the preview for #{@basename}" if whiny
      end
    end
  end
end

журнал

[paperclip] ffmpeg -y -i /var/folders/Ue/UehOEbyxHkS9voyeIiUx3++++TI/-Tmp-/stream20101223-93966-18vy7po-0.mp3 -ab 128k /var/folders/Ue/UehOEbyxHkS9voyeIiUx3++++TI/-Tmp-/stream20101223-93966-18vy7po-0.mp3 2>/dev/null
....

[paperclip] Saving attachments.
[paperclip] saving music/7635/snippet/monkey.mp3
[paperclip] saving music/7635/original/monkey.mp3
....
...