28 votes

Création de vidéo avec audio et image fixe pour YouTube

Je lance la commande suivante :

ffmpeg -i audio.mp3 -ar 44100 -f image2 -i logo.jpg -r 15 -b 1800 -s 640x480 foo.mov

Cela génère avec succès une vidéo avec mon audio enregistré et une image dessus.

Quand j'essaie de télécharger cela sur YouTube, le processus échoue, peu importe les formats que j'essaie : .mov, .avi, .flv, .mp4

Y a-t-il un paramètre que j'ai oublié dans ce qui précède qui générerait un format accepté par YouTube ? J'ai essayé de consulter la documentation de ffmpeg mais je suis dépassé.

J'ai fait une expérience en mettant une vidéo de 2 secondes avec un mp3 de 30 secondes. Lorsque je l'ai téléchargée sur YouTube, la vidéo résultante n'était que de 2 secondes. Il se peut donc que YouTube ne regarde que la piste vidéo pour la durée, et donc qu'une image ne dure qu'une image ou quelque chose du genre, ce qui pourrait poser problème.

14voto

Eric Tuttleman Points 942

Voici ce qui a fonctionné :

ffmpeg -i audio.mp3 -f image2 -loop 1 -i logo.jpg 
-r 15 -s 640x480 \
-c:v libx264 -crf 18 -tune stillimage -preset medium \
-shortest foo.mov

En particulier, l'option loop, qui dupliquera l'image en tant que frames. Il faudra alors utiliser l'option shortest pour éviter que le fichier ne continue à croître indéfiniment (de cette façon, il le tronque à la longueur du flux le plus court - ici, le fichier audio).

L'option r modifie le taux d'images par seconde, et crf 18 détermine la qualité (utilisez une valeur plus élevée pour une qualité vidéo plus faible). Voir ici pour plus de détails : FFmpeg: L'outil ultime de manipulation vidéo et audio

5voto

Allan S Points 148

Un morceau de code qui fonctionne pour moi, d'un autre forum :

ffmpeg -loop 1 -r ntsc -i image.jpg -i song.mp3 -c:a copy -c:v libx264 -preset fast -threads 0 -shortest output.mkv

4voto

etuardu Points 697

J'ai pris le code de Pavel, qui a fonctionné pour moi aussi, et je l'ai raccourci en supprimant les options inutiles :

ffmpeg -loop 1 -shortest -i  -i  

il s'agit d'une forme générale qui fonctionne avec n'importe quelle image et fichier audio en entrée, et produit un fichier vidéo en sortie.

Cela dit, étant donné que votre flux vidéo sera composé d'une seule image répétée indéfiniment, vous pourriez définir un faible taux d'images par seconde (c'est le nombre d'images qui apparaissent en une seconde) avec -r. Notez que tous les conteneurs de sortie n'autorisent pas les faibles taux d'images par seconde. L'un d'eux est avi, donc vous pourriez faire :

ffmpeg -loop 1 -shortest -r 0.1 -i  -i  output.avi

cela créerait un fichier vidéo avec un taux d'images par seconde de 0.1 (c'est-à-dire une image toutes les 10 secondes) au lieu du taux par défaut de 25. Cela affectera la taille du fichier mais pas la qualité vidéo. Enfin, vous pouvez définir le débit audio pour obtenir une meilleure qualité audio avec -ab. C'est la commande que j'utilise réellement pour créer ce genre de vidéos pour YouTube :

ffmpeg -loop 1 -shortest -r 0.1 -i  -i  -ab 128k output.avi

1voto

ZiTAL Points 135

Avec avconv :

avconv -i input.mp3 -loop 1 -f image2 -i logo.png -r 30 -s 640x480 -ab 128k -ar 44100 -ac 1 -ss 00:00:00.000 -t 01:02:03.123 foo.ogv

1voto

kkeey Points 9

Pour ajouter quelque chose de plus court, cela a fonctionné pour moi:

ffmpeg -i audio.wav -loop 1 -i image.png -shortest foo.flv

L'ordre des options est important.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X