2016-01-16 6 views
0

J'essaie de créer un diaporama à partir de certaines images avec un fichier mp3 existant (copié). Les dimensions de l'image diffèrent, mais je souhaite que la sortie vidéo soit de format 16: 9 et 3840x2160. Je veux aussi un filigrane. Il est important que les images ne soient pas étirées.Diaporama FFmpeg + Audio + Filigrane + Conserver le format d'image

J'ai essayé ce code ...

ffmpeg -y -framerate 1/1.5 -i "pics/%03d.jpg" -i audio.mp3 -c:v libx264 -r 24 -preset veryfast -tune stillimage -c:a copy -pix_fmt yuv420p -aspect 16:9 -filter_complex "scale=iw*min(3840/iw\,2160/ih):ih*min(3840/iw\,2160/ih),pad=3840:2160:(3840-iw)/2:(2160-ih)/2, movie=watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:main_h-overlay_h-10 [out]" vid.mkv 

Mais il me donne cette erreur:

[AVFilterGraph @ 0x2d21480] Too many inputs specified for the "movie" filter. Error initializing complex filters. Invalid argument

Je suis en mesure de faire avec succès un diaporama avec des images, audio et filigrane; Cependant, je suis incapable de prendre en compte le rapport d'aspect sans que les images soient étirées.

Si cela fait une différence, la vidéo de sortie sera téléchargée sur YouTube.

Répondre

1

Vous pouvez supprimer l'indicateur d'aspect. Puisque votre sortie de filtre est 3840x2160, ce qui est 16: 9, vous n'en avez pas besoin. Votre filtre d'échelle fonctionne pour moi avec des images de ratios différents.

Voici une commande complète pour vous d'essayer:

ffmpeg -y -framerate 2/3 -i "pics/%03d.jpg" -i audio.mp3 -loop 1 -i watermark.png 
-filter_complex 
"[0:v]scale=iw*min(3840/iw\,2160/ih):ih*min(3840/iw\,2160/ih), 
pad=3840:2160:(3840-iw)/2:(2160-ih)/2[ss]; 
[ss][2:v] overlay=main_w-overlay_w-10:main_h-overlay_h-10:shortest=1[out]" 
-map "[out]" -map 1:a 
-c:v libx264 -r 24 -preset veryfast -tune stillimage -pix_fmt yuv420p 
-c:a copy 
vid.mkv 
+0

Merci, mais pour une raison quelconque les écrans de la console 'frame = 3 images par seconde = 0,0 q = 0.0 size = temps 1ko = 00: 00: 00.00 bitrate = N/A vitesse = 'dans une boucle sans fin. Je ne sais pas si cela fait une différence que certaines de mes images ont des largeurs/hauteurs non divisibles par 2 (par exemple 1327x177)? – Pamela

+0

Lorsque j'essaie presque la même chose mais avec -vf et sans la dernière étiquette, la vidéo enregistre uniquement avec l'audio (pas de photos/filigrane): 'ffmpeg -y -framerate 2/3 -i" pics /% 03d. jpg "-i audio.mp3 -i watermark.png -vf" [0: v] échelle = iw * min (3840/iw \, 2160/ih): ih * min (3840/iw \, 2160/ih), pad = 3840: 2160: (3840-iw)/2: (2160-ih)/2 [ss]; [ss] [2: v] superposition = main_w-overlay_w-10: main_h-overlay_h-10 [out] " -map 1: a -c: v libx264 -r 24 -preset veryfast -tune image fixe -pix_fmt yuv420p -c: une copie vid.mkv' – Pamela

+1

'vf' est pour une seule entrée vidéo, mais la superposition prend deux entrées . La dimension impaire n'est pas non plus un problème car les trames envoyées à l'encodeur sont le flux 3840x2160. Une de vos images pourrait-elle être corrompue? Exécutez ma commande avec '-report' ajouté et collez le contenu du fichier journal généré. – Mulvya