Existe-t-il un moyen de faire en sorte que FFmpeg recherche plus rapidement une fin de fichier sur un partage réseau?

4

J'utilise ffmpeg pour générer des aperçus d'images à partir de vidéos flv. Le système d'exploitation est Debian 5 et c'est la version apt de ffmpeg. Les fichiers flv se trouvent sur un partage NAS monté en tant que NFS. Obtenir les vignettes depuis le début du format FLV est assez rapide mais très lent lorsque vous recherchez plus de 10 minutes de vidéo. J'appelle ffmpeg depuis python comme ceci:

os.system('ffmpeg -ss "%d"  -i %s -an  -r 1 -vframes 1   -bufsize 1835k -s 360x288 -f image2 -vcodec mjpeg -y "%s"'%(offset_seconds, video_file_path,  image_path))

Existe-t-il un moyen d’accélérer le processus de recherche vers la fin du flv? Qu'est-ce qui pourrait le rendre si lent?

J'ai essayé la même chose sur mon ordinateur local (Mac OS X Snow Leopard avec ffmpeg compilé à partir des sources) et je ne ressens aucune différence de vitesse lors de la capture d'images à partir du début de la vidéo et après 50 minutes de création.

Edit: Le serveur Debian mentionné a une configuration matérielle plus rapide que ma machine locale.

Vasil
la source
Si vous utilisez un autre logiciel, par exemple vlc, pour lire une vidéo au seuil de 10 minutes? Cela ferait-il une différence de vitesse? Vous pouvez utiliser l' --start-timeoption pour passer à une heure spécifique.
un utilisateur

Réponses:

0

Vous avez réduit le problème au montage NFS. ffmpeg lui-même ne change pas son comportement 10 minutes après le début de la vidéo d'entrée. Si c'était le cas, vous l'auriez remarqué lorsque vous avez essayé de lire une vidéo sur un disque local.

Je parie que l’installation et l’exécution de ffmpeg sur le serveur NFS (c’est donc à nouveau un disque local) n’indiqueraient pas un ralentissement de 10 minutes.

Il existe peut-être un moyen d’ajuster la configuration NFS (mise en cache?), Mais il est probablement plus simple de simplement copier la vidéo entière sur un disque local, puis de le lire avec ffmpeg. Cela ne sera pas plus lent: les données doivent de toute façon être déplacées, car bien que ffmpeg n'ait besoin que des pixels d'une image par seconde pour créer les vignettes, il doit en lire beaucoup plus entre (images clés) pour atteindre et décoder ces quelques images. cadres.

Camille Goudeseune
la source