Créer une vidéo à partir de jpeg avec avconv => vidéo corrompu
Im essayant de faire une vidéo (quel que soit le format) à partir d'un répertoire complet de jpeg images.
J'ai essayé avec avconv (v0.8), comme on le voit sur de nombreux sujets sur l'internet, et la libav de la documentation ainsi :
avconv -i samples/*.jpeg output.mpeg
Il semble fonctionner bien et de créer de la sortie.fichier mpeg.
Mais le fichier ne peut être lu par tout lecteur (vlc, banshee, totem,...). Pas d'erreur, mais rien ne s'est vraiment passé lorsque j'appuie sur Play.
Si je vérifie la taille du fichier vidéo, il est d'environ 20 ko, alors que la vidéo d'origine est de 10 mo. Donc on peut supposer que les données ne sont pas stockées dans le fichier (il est d'environ 20 ko, peu importe le nombre de cadres donnée sur l'entrée)
J'ai fait un pastebin du journal de débogage du traitement. Je ne suis pas familier avec le codec monde, donc je ne comprends pas beaucoup de choses : http://pastebin.com/9dfxFWZe.
J'ai aussi essayer un tas de combinaisons avec -s, -r, -b, -vcodec, -f format, etc.. mais le probleme est toujours là.
Je fais quelque chose de mal ?
Demandez-moi tout ce qui pourrait vous aider, je vais vous répondre très rapidement.
Merci pour votre aide 🙂
OriginalL'auteur OoDeLally | 2012-07-20
Vous devez vous connecter pour publier un commentaire.
avconv attend de vous que vous entrez les noms de fichiers dans un printf syntaxe. Simplement à l'aide de caractères génériques du shell (comme samles/*.jpeg) n'est pas suffisant.
Vos échantillons semblent être nommé sample/lapinsnipermin/.jpeg, essayez donc de la ligne de commande suivante:
Fait ce travail? Vous pouvez également ajouter des options pour le bitrate (e.g -r 25).
Notez également que lors de l'utilisation de %03d qu'il semble y avoir certaines contraintes, peut-être qu'il commence à zéro. Donc, j'ai des images qui correspondent à IMG_{2550..2850}.JPG mais IMG_%04d.JPG ne fonctionne pas et je dois renommer mes fichiers de commencer à IMG_0000.JPG.
En fait, %03d utilise la syntaxe de la fonction printf du langage de programmation C. Il traduit à peu près à zéro rempli de (0) à trois chiffres (3) décimale (d). Vous aurez besoin d'adapter le modèle pour répondre à vos noms de fichiers.
Pouvez-vous dire comment peut-on augmenter le temps de jeu dans le même code ?
Ce avconv exige, c'est que le nom de fichier a un seul numéro de quelque part qui augmente de 0 à #fichiers-1. Donc, ce ne serait probablement pas travailler à moins de 15, 04 ou 30 est un tel numéro. Si vous ne voulez pas re-nom de vos fichiers, et vous travaillez sur un environnement unix, vous pouvez utiliser les éléments suivants pour créer un ensemble de liens symboliques:
i=0; for f in *.jpg; do ln -s $f $(printf "%04d.jpg" $i); i=$((i+1)); done
OriginalL'auteur Sjlver
Ressusciter ce depuis qu'il est arrivé quand Googler pour trouver une solution. J'ai finalement obtenu de travail à l'aide de ceci:
Je ne pouvais pas obtenir avconv de reconnaître les fichiers d'entrée dans les noms d'origine; cela montre pourquoi:
Je n'ai pas vu une option permettant de configurer le nombre de départ, j'ai donc fait ceci:
Le résultat final est une vidéo de mes photos, montrant un pour chaque seconde; la
-vsync cfr
dit avconv de compléter les images d'entrée pour correspondre à la sortie framerate.-start_number
option.OriginalL'auteur jcomeau_ictx
Je l'ai trouvé mieux à la pipe le fichier jpg dans vous voulez de sorte que vous pouvez contrôler la sélection avec la norme des caractères génériques, essayer quelque chose comme cela. Cela génère également une vidéo que vous pouvez l'utilisateur sur le web et le mobile (ie. en utilisant le navigateur standard tag):
OriginalL'auteur Ben