我创建了一个带有视频附件的rails类,我想知道如何获取上传到我的应用程序的视频的长度。我怎样才能做到这一点?

最佳答案

使用ffmpegRVideogem,这是一个很薄的红宝石包装。RVideo项目有很多分支,我个人使用http://github.com/greatseth/rvideo是因为它支持从视频中捕获帧并将它们保存为图像。设置好后,您可以执行以下操作:

# For Paperclip 2
video_attributes = RVideo::Inspector.new(:file => self.upload.to_file.path, :ffmpeg_binary => "/usr/local/bin/ffmpeg" )
video_attributes.duration # duration in milliseconds

# For Paperclip 3
video_attributes = RVideo::Inspector.new(:file => self.upload.queued_for_write[:original].path)
video_attributes.duration # duration in milliseconds

09-28 03:50