2013-05-08 49 views
0

我有一个允许上传视频文件的简单的Rails应用程序,我需要得到每个文件的持续时间。最后是到现在......rvideo不返回文件的时间

是未解几天我使用:

  1. 的Ubuntu 13.04
  2. 的JRuby 1.7.3
  3. 的Rails 3.2.13
  4. 回形针(3.4。 1)
  5. 纸夹-的ffmpeg(0.10.2)
  6. rvideo(0.9.3)

回形针,ffmpeg的可以让我上传的视频,我使用下面这个tutorial的rvideo宝石来获得时间。在我的模型,我有以下方法:

def get_video_duration 
    file = RVideo::Inspector.new(file: video.path(:original), ffmpeg_binary:'/usr/bin/') 
    file.duration 
    end 

但持续时间方法返回nil。我在我的视图中打印了文件结构:

--- !ruby/object:RVideo::Inspector 
filename: The_Rolling_Stones_-_Paint_It_Black.mp4 
full_filename: "/home/gotqn/RubyMineProjects/beta/public/webinars/42/original/The_Rolling_Stones_-_Paint_It_Black.mp4" 
unknown_format: true 
path: "/home/gotqn/RubyMineProjects/beta/public/webinars/42/original" 
raw_response: | 
    /bin/sh: 1: /usr/bin/: Permission denied 
ffmpeg_binary: "/usr/bin/" 

enayone可以告诉我在这里做错了吗?

而且,我发现它很难找到,我可以用它来获得持续适当的宝石。其中一些已过时,其中一些可以与Jruby一起使用,其中一些可以使用,因为我使用的是Ubuntu 13.04,而ffmeg的支持率较低。

因此,如果任何人都可以更好的宝石劝我,我会很乐意尝试。

回答

1

我强烈建议你使用streamio-ffmpeg宝石。

+0

创业板文档说,“目前的宝石对ffmpeg的0.11.1测试。与早期(或更高版本的多)版本,所以没有保证。”并与Ubuntu 13.04我使用的是“0.8.6-6:0.8.6-1ubuntu2”版本,并且这是说“***本程序被废弃*** 此程序仅用于兼容性,将被删除未来版本,请使用avconv代替 “但我会尝试: - ] – gotqn 2013-05-08 20:35:04

+0

这可能是iconv弃用警告。我使用streamio-ffmpeg宝石,你找不到更好的ffmpeg包装...真的。 – scaryguy 2013-05-08 20:37:05

+0

谢谢你,只需要几分钟就能完成工作。 – gotqn 2013-05-08 20:38:16