2013-05-08 46 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