1

我正在尝试在上传到 S3 之前转换 Mp3 文件的比特率,我可以为 mp3 文件创建版本,但该版本没有保存在 s3 中,而是将原始文件上传到 s3。

  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
4

1 回答 1

0

resample在我的脑海中,您似乎在输入 96k 输出,而不是输入,然后您将未转换的tmp_fileFile.unlink复制回 current_path。尝试改变:

  File.unlink(current_path)
  FileUtils.mv(tmp_path, current_path)

  File.unlink(tmp_path)
else
  FileUtils.mv(tmp_path, current_path)
于 2013-09-25T14:43:01.357 回答