2013-05-08 2 views
0

J'ai une application simple rails qui permet de télécharger des fichiers vidéo et j'ai besoin d'obtenir la durée de chaque fichier. Le dernier est d'être sans solution pendant plusieurs jours jusqu'à présent ...rvideo ne retourne pas la durée du fichier

J'utilise:

  1. Ubuntu 13.04
  2. JRuby 1.7.3
  3. Rails 3.2.13
  4. paperclip (3.4. 1)
  5. trombone-ffmpeg (0.10.2)
  6. rvideo (0.9.3)

Le paperclip-ffmpeg me permet de télécharger des vidéos et j'utilise la gemme rvideo suivant ce tutorial pour obtenir la durée. Dans mon modèle, j'ai la méthode suivante:

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

Mais la méthode de la durée est de retour nul. J'ai imprimé la structure de dossier dans ma vue:

--- !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/" 

Peut énayone dire ce que je fais mal ici?

En outre, j'ai trouvé très difficile de trouver une gemme appropriée que je peux utiliser pour obtenir la durée. Certains d'entre eux sont obsolètes, certains d'entre eux peuvent être utilisés avec Jruby et certains d'entre eux je peux utiliser parce que je suis avec Ubuntu 13.04 et le support de ffmeg est faible. Donc, si quelqu'un pourrait me conseiller un meilleur bijou, je serai heureux de l'essayer.

Répondre

1

Je vous recommande fortement d'utiliser streamio-ffmpeg gem.

+0

Dans la documentation de la gemme, il est dit "La gemme actuelle est testée contre ffmpeg 0.11.1. Donc pas de garantie avec les versions antérieures (ou beaucoup plus tard)." et avec Ubuntu 13.04 j'utilise "la version 0.8.6-6: 0.8.6-1ubuntu2" et il est dit que "*** CE PROGRAMME EST DÉPRECÉ *** Ce programme est seulement fourni pour la compatibilité et sera supprimé dans Dans ce cas, utilisez avconv à la place "mais je vais l'essayer: -] – gotqn

+0

C'est probablement un avertissement d'obsession d'iconv. J'utilise streamio-ffmpeg gem et vous ne pouvez pas trouver un meilleur wrapper ffmpeg ... Vraiment. – scaryguy

+0

Merci homme, il ne me faut que quelques minutes pour le faire fonctionner. – gotqn

Questions connexes