2013-10-09 4 views
6

Je crée une courte vidéo d'une séquence de 100 images en utilisant ffmpeg. Il y a plusieurs articles qui m'ont aidé à mettre en place une commande, mais celle que j'utilise est directement tirée de ffmpeg images-to-video script anyone?.problèmes de lecture dans VLC avec vidéo à faible fps à partir d'images en utilisant ffmpeg

La commande suivante produit un fichier vidéo qui joue bien dans tous les lecteurs vidéo que j'ai (OS X).

cat input/*.jpg | ffmpeg -f image2pipe -r 10 -vcodec mjpeg -i - out.mp4 

Mais si je change à,

cat input/*.jpg | ffmpeg -f image2pipe -r 1 -vcodec mjpeg -i - out.mp4 

Il joue bien dans tous mais VLC media player. VLC affiche les images initiales de 1 à 3, puis se fige sur le cadre. J'ai testé quelques fréquences d'images différentes, et il semble que le seuil qui casse la lecture vidéo dans VLC se situe quelque part entre 1.125 et 1.175.

Tous les conseils sur ce que je traite ici serait très apprécié.

+0

Sorties de console complètes manquantes. Vous pouvez ajouter une sortie '-r' avec une valeur supportée par vos joueurs. ffmpeg dupliquera ensuite les trames pour qu'elles correspondent à la fréquence de trame de sortie demandée. – LordNeckbeard

+0

Je pense que c'est un bug dans vlc ....Je peux reproduire le problème – dsign

+0

J'ai le même problème en faisant une vidéo d'un graphique qui change avec le temps. Testé à 0,5 fps et 1 fps avec x264, mpeg4 et gif en utilisant avconf et moviepy (avec ffmpeg backend). –

Répondre

1

Il est un bug connu depuis longtemps dans VLC: https://trac.videolan.org/vlc/ticket/3625

Il a été rapporté par de nombreux utilisateurs avec différents seuils, mais de ce que j'ai trouvé et moi-même vécu, le seuil est quelque part autour d'un couple de FPS.

Actuellement, je regarde tristement la première image gelée d'une vidéo 2 FPS qui ne sera pas jouée dans la version actuelle de VLC (2.2.4) Je me souviens d'avoir travaillé sur une version 1.1.x (même si le bug a été signalé beaucoup plus tôt) mais après mise à jour à 2.x il a cessé de travailler pour moi. Mon collègue et moi avons comparé le comportement avec les mêmes fichiers vidéo (2 FPS) il y a quelque temps et pendant que je pouvais tout jouer sans problème avec 1.1.x (je pense que c'était 1.1.1 mais je je ne suis plus sûr à 100%), il ne pouvait en jouer aucun avec 2.x. Après avoir rétrogradé VLC à 1.1.x, il pouvait les jouer aussi.

peut-être donc rétrograder est le chemin à parcourir, si vous êtes désespéré d'utiliser VLC et ne rien manquer de 2.x. Sinon, je vous conseille de vous épargner les heures douloureuses de jouer avec les réglages VLC et d'utiliser simplement un lecteur différent.

1

Utilisez les deux -framerate et -r

Par exemple, pour une dernière vidéo qui ressemble à 1FPS:

ffmpeg -framerate 1 -pattern_type glob -i '*.png' \ 
    -c:v libx264 -r 30 -pix_fmt yuv420p out.mp4 

Ceci est mentionné sur le wiki à l'adresse: http://trac.ffmpeg.org/wiki/Slideshow#Framerates

Il définit la sortie framerate à 30, que VLC peut gérer, et copie chaque image 30 fois, de sorte que la vidéo de sortie semble être à 1 FPS.

VLC est alors capable de lire la vidéo normalement.

testé sur Ubuntu 16.10, VLC 2.2.4, 3.0.5 ffmpeg, dans un répertoire avec 10 PNGs.

Questions connexes