How to save file to s3 after processing by ffmpeg using carrierwave

HI All,

I am trying to convert the bit rate of the Mp3 file before uploading to S3, I can able to create version for the mp3 file but the version is not saving in s3 instead original file is uploading to s3, any help would be really appreciated

  version :bitrate_96k do
    process :resample => "96"
  end

def resample(bitrate)
    tmp_path= File.join( File.basename(current_path), "tmpfile" )
    File.rename current_path, tmp_path
audio_details = `ffmpeg -i '#{tmp_path}' 2>&1`.split(",").split("\n").    flatten
file_bitrate =  audio_details.grep(/bitrate/).grep(/bitrate/).join.split("bitrate: ").last.split("\s").    first
unless file_bitrate == bitrate
`ffmpeg -i #{tmp_path.shellescape} -acodec libmp3lame -y -ab 96k #{current_path.path}`
      File.unlink(current_path)
     FileUtils.mv(temp_path, current_path)
    end
  end

regards,

Loganathan
Mob: +91 7760780741 | +91 9944414388
Skype: loganathan.sellappa

ViewMe

So which bit is not working? Is the temporary file being created ok
with reduced bitrate? Is the original file being replaced with the
new one?

Colin

HI Colin,

Th temporary file is created with the reduced bitrate, but I am not able to find an way to save the temporary file to s3. Simply I am trying to save the converted file instead of original file,

HI Colin,

Th temporary file is created with the reduced bitrate, but I am not able to find an way to save the temporary file to s3. Simply I am trying to save the converted file instead of original file,

regards,
Loganathan
Mob: +91 7760780741 | +91 9944414388
Skype: loganathan.sellappa
ViewMe

If you specify the converted file as a style, then it will be saved alongside the original. I am not sure how you would replace the original with the converted file, I know I have done this before in Paperclip, but I'm not sure how you do it in Carrierwave.

Walter