我想在视频上传期间获取视频长度。我们使用SWFUpload上传文件。然后使用回形针将其存储在S3上。我们当前的进程是将文件加载到内存中然后进行分析。它与大型电影爆炸。我知道之后我可以将文件从S3重新下载到我的EC2实例。
我想知道在Paperclip接受文件之前是否有办法处理文件,所以我可以对它进行FFMPEG检查。
答案 0 :(得分:2)
如果您没有直接上传到s3,可以在保存之前执行before_save处理临时文件。这可能是最简单的方法。
我想你真的需要使用FFMPEG加载整个文件吗?您所需要的只是文件的元数据。我写了一个类似音频的应用程序。您可以从Paperclip获取文件大小,如果您可以获得mpeg的比特率,您可以通过将文件大小除以比特率来轻松计算文件的长度。
使用before_save / before_create回调从文件中获取比特率并将其作为字段存储在数据库中。从该值动态生成长度。