2
私はMP3ファイルをPaperclipのカスタムプロセッサとffmpegで.flacに変換しようとしています。次のコードは、ffmpegコマンドを実行し、一時的なflacファイルを作成します。しかし、それは保存されていませんか?現在、元のファイルのみが保存されます。私はここで何が欠けていますか?Ruby on Rails(5)でカスタムファイルを作成する方法
class AudioFile < ApplicationRecord
has_attached_file :raw_audio, processors: [:custom], styles: { original: {}}
カスタムプロセッサ
module Paperclip
class Custom < Processor
def initialize(file, options = {}, attachment = nil)
super
@file = file
@basename = File.basename(@file.path)
@format = options[:format] || 'flac'
@params = options[:params] || '-y -i'
end
def make
source = @file
output = Tempfile.new([@basename, ".#{@format}"])
begin
parameters = [@params, ':source',':dest'].join(' ')
Paperclip.run('ffmpeg', parameters, :source => File.expand_path(source.path), :dest => File.expand_path(output.path), :sample_rate => @sample_rate, :bit_rate => @bit_rate)
end
output
end
end
end
「mp3 into .flac」 - 損失性から可逆性に移行しようとする=不可能。いいえ。これは100 x 100ピクセルの画像を1000 x 1000にリサイズするのと同じようになります。 –
これはオーディオの品質よりも拡張に関するものです。私はflacまたは生のオーディオのみを受け入れるGoogleのスピーチAPIを使用しています –
あなたはあなたのPaperclip設定で 'log_command:true'を持っていますか?そうでない場合でも、ログにエラーがないかチェックしてください。 – Eric