1

我在一个 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}")

我在代码中遗漏了什么吗?对此的任何想法或帮助将不胜感激。

提前致谢 :)

4

0 回答 0