1 votes

ffmpeg : Comment sélectionner une image aléatoire toutes les secondes ?

J'ai une vidéo avec un nombre variable d'images par seconde que je veux réduire à 1 image par seconde. De plus, je veux que cette image par seconde soit échantillonnée de manière aléatoire au cours de la seconde. Supposons donc une vidéo de 5FPS, d'une durée de 3 secondes, les index des images sont :

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[0 ... 4] is the 1st second
[5 ... 9] is the 2nd second
[10 ... 14] is the 3rd second

J'aimerais un cadre entre [0 ... 4] , un cadre pour [5 ... 9] et un cadre entre [10 ... 14] .

Ce que j'ai essayé jusqu'à présent, c'est

ffmpeg -y -i input.mp4 -filter:v "select='random(1)',fps=1" -f mp4 output.mp4

Cependant, il s'agit toujours d'un échantillonnage des images à intervalles parfaits d'une seconde. Nous vous remercions de votre attention.

1voto

Gyan Points 29437

Cette méthode fait essentiellement l'affaire, mais la sortie du PRNG peut être améliorée.

-filter:v "select='st(1,mod(t\,floor(t)));if(eq(n\,0),1,(floor(t)-floor(prev_selected_t))*gt(ld(1)\,random(7)))',setpts=N,fps=1"

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