我试图在上传到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
答案 0 :(得分:0)
单步浏览resample
,看起来你是File.unlink
96k输出而不是输入,然后你将未转换的tmp_file复制回current_path。尝试更改:
File.unlink(current_path)
FileUtils.mv(tmp_path, current_path)
到
File.unlink(tmp_path)
else
FileUtils.mv(tmp_path, current_path)