Je l'ai essayé avec FFmpeg version 0.8.5, en utilisant un fichier d'entrée AVI comme vous.
La commande suivante a produit des résultats corrects:
ffmpeg -i 1.avi -ss 00:00:05 -t 00:00:01.50 -vcodec libx264 -vpre default -acodec libfaac out1.mp4
Voici quelques conseils pour le faire fonctionner:
Mise à jour vers la dernière version de FFmpeg.
Pour Ubuntu, suivez les instructions tutoriels ici . Je les utilise moi-même.
Sous OS X, installez FFmpeg utiliser Homebrew , en appelant brew install ffmpeg
.
Sous Windows, il suffit de télécharger les versions précompilées .
Utilisez le format de longueur correct.
Notez que le format de durée utilise des points décimaux, et non des virgules, par exemple. hh:mm:ss[.xxx]
.
Retirer le -threads 0
option.
Permettant -threads 0
cependant m'a donné l'erreur "le tampon final est trop petit". Je ne sais même pas pourquoi ils autorisent une valeur de zéro ici, et à moins que vous n'ayez une raison spécifique de le faire, je laisserais simplement cet argument de côté. Idéalement, il devrait permettre auto-threads
dans libx264
, mais il y a peut-être un bug dont je ne suis pas au courant.
Encoder sans B-images.
En fonction de la taille de la vidéo de sortie, je ne sais pas si libx264
est même capable de produire de manière fiable des sorties en utilisant des images B qui font référence à une ou plusieurs images intra-codées Cela pourrait même conduire aux artefacts que vous décrivez.
Vous pouvez essayer de désactiver les images B (ou "images B") avec -bf 0
.