4x rééchantillonnage des images vidéo à l'aide de ffmpeg

9

J'ai besoin d'accélérer la vidéo d'un facteur 4x, mais je ne veux pas supprimer les images et les faire plutôt en moyenne. C'est-à-dire que chaque 4 images sont moyennées et produisent 1 image de sortie. La fréquence d'images cible reste la même, la vidéo est donc 4 fois plus rapide.

Existe-t-il un moyen de le faire dans ffmpeg?

BarsMonster
la source
3
Pouvez-vous être plus précis sur la façon dont ils devraient être «moyennés»? Quelle méthode souhaitez-vous utiliser?
llogan
@LordNeckbeard (f1 + f2 + f3 + f4) / 4 - moyenne simple. Ainsi, chaque image résultante a de faibles traces du mouvement sur toutes les sous-images.
BarsMonster
@BarsMonster Je doute que ffmpeg puisse le faire. Avez-vous vu cet effet d'une autre manière? Savez-vous à quoi il ressemble réellement?
Jim Mack
@JimMack J'ai actuellement fait cela manuellement dans VirtualDub, ils ont un filtre d'interpolation, avec une interpolation 0,5x, il fait en moyenne correctement 2 images. Voici le résultat: youtube.com/watch?v=8zrws5CGWsI On peut voir que chaque image a un mouvement de 2 sous-trames, donc elle est légèrement plus fluide. Mais le faire dans une ligne de commande serait beaucoup plus rapide à l'avenir.
BarsMonster du
slowmoVideo peut valoir la peine d'essayer, mais je ne sais pas s'il a un cli. Le filtre de fréquence d' images FFmpeg semble effectuer une interpolation, mais il ne semble pas répondre à vos besoins.
llogan

Réponses:

9

ffmpeg avec cette chaîne de filtrage le fait:

ffmpeg -i input -vf "tblend=average,framestep=2,tblend=average,framestep=2,setpts=0.25*PTS" -r srcfps -{encoding parameters} output

srcfps devrait être remplacé par le framerate de votre entrée.

Gyan
la source
1
Également essayé pour x16 en utilisant "tblend = average, framestep = 2, tblend = average, framestep = 2, tblend = average, framestep = 2, tblend = average, framestep = 2, setpts = 0.0625 * PTS"
BarsMonster