2
我正在使用FFMPEG來識別我的Rails應用程序中音頻文件的比特率。我從S3下載文件,並暫時存儲在tmp文件夾中,然後對其運行FFMPEG命令。使用FFMPEG識別音頻比特率
本地一切都按預期運行。部署時出現問題,我從FFMPEG中得不到任何回報。
s3 = AWS::S3.new(
:access_key_id => ENV["AWS_ACCESS_KEY_ID"],
:secret_access_key => ENV["AWS_SECRET_ACCESS_KEY"])
object = s3.buckets[ENV["AWS_S3_BUCKET"]].objects[CGI::unescape(self.url)]
tempname = Digest::MD5.hexdigest(DateTime.now.to_s) + "." + self.file_format
File.open(Rails.root.to_s + '/tmp/' + tempname, 'wb') do |f|
f.write(object.read)
end
dl = Rails.root.to_s + '/tmp/' + tempname
brcommand = "ffmpeg -i " + dl + " 2>&1 | grep Duration | sed 's/Duration: \(.*\), start/\1/g'"
ffmpeg = %x{#{brcommand}}
我使用%×{} ffmpeg_command訪問命令行,所以我徘徊是否可能引起就像它曾在Rails的本地運行它沒有找到該文件的問題。
我在服務器上的命令行上使用了FFMPEG,所以我知道它工作正常。
並且是寫入'tmp'文件夾的文件嗎? – ted 2013-04-08 16:58:46
您可能想要使用[ffprobe](http://ffmpeg.org/ffprobe.html)。 – blahdiblah 2013-04-08 22:41:42
是的,該文件是使用File.open語法編寫的。 – user1756535 2013-04-09 09:55:17