Si vous n'avez pas d'exigences spécifiques en termes de paramètres de codec vidéo, vous pouvez générer la vidéo sur la base d'une seule image noire ( voir color
source) :
ffmpeg -f lavfi -i color=black:duration=60:size=320x240:r=1 -c:v libx264 out.mp4
Nous utilisons une image par seconde ( r=1
), mais vous pouvez aller encore plus bas (ex. r=0.01
) pour encoder une seule image pendant 60 secondes, et rien d'autre.
Une autre méthode suggérée par Gyan devrait être beaucoup plus rapide :
ffmpeg -f lavfi -i color=black:size=320x240 -vf trim=end_frame=2,setpts=N*59*3600/TB -c:v libx264 -vsync 0 -video_track_timescale 100 out.mp4
Ici :
-
trim=end_frame=2
supprime tout sauf les deux premières images
-
setpts=N*59*3600/TB
fixe l'horodatage de la première image à 0, et celui de la seconde à 59 heures (59 × 3600 secondes), divisé par une constante (TB)
-
-vsync 0
fait en sorte que ffmpeg utilise ces timestamps tels quels sans forcer un framerate spécifique (sinon vous auriez des images dupliquées).
-
-video_track_timescale
fixe la base de temps (TB) à 100, ce qui est nécessaire car, sinon, les numéros PTS générés seraient trop grands.