我正在RoR网站上工作,我在网站上传媒体文件(如mp3,pdf,图片和视频)。网站托管在AWS上,我使用S3存储桶上传媒体文件。
当我上传视频时,首先将我的项目的公共文件夹中的视频保存在托管我网站的AWS实例上,然后使用FFMPEG创建该视频的缩略图并使用ffmpeg-streamio获取持续时间并在创建后删除此视频缩略图。它正常工作,直到上传大型视频,但当我尝试通过错误上传大型视频时我。即
Errno :: ENOMEM(无法分配内存 - / usr / local / bin / ffmpeg -i /var/www/html/proj/public/13/NVC_trim.mov):
path = "public/" + @admin.id.to_s + "/" + params[:video].original_filename
dirpath = "public/" + @admin.id.to_s
FileUtils.mkdir_p dirpath
aFile = File.new(path, "w")
aFile.write(open(params[:video]).read)
aFile.close
system"/usr/local/bin/ffmpeg -itsoffset -4 -i /var/www/html/proj/#{path} -vcodec mjpeg -vframes 1 -an -f rawvideo /var/www/html/proj/#{dirpath}/thumb.png"
#calculate video duration
FFMPEG.ffmpeg_binary = '/usr/local/bin/ffmpeg'
movie = FFMPEG::Movie.new("/var/www/html/proj/#{path}")
我错过了代码中的内容吗? 任何想法或帮助都将受到高度赞赏。
提前致谢:)