2 votes

Créer une vidéo de la durée de l'arbitrage

J'essaie de créer un fichier vidéo, soit .mp4 o .mov qui a une durée spécifique, par exemple 59 heures. Le contenu de la vidéo n'a pas d'importance, elle peut être vide. J'ai trouvé ceci commande :

ffmpeg -loop 1 -i image.png -c:v libx264 -t 15 -pix_fmt yuv420p -vf scale=320:240 out.mp4

qui prend une image et crée une vidéo de longueur fixe à partir de cette image. Ça fonctionne, mais ça prend beaucoup de temps pour le faire. Existe-t-il d'autres moyens de créer des vidéos vierges de longueur fixe qui ne prennent pas beaucoup de temps à réaliser ?

3voto

slhck Points 209720

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.

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