4x ricampionare i videogrammi usando ffmpeg


9

Ho bisogno di velocizzare i video di un fattore 4x, ma non voglio far cadere i frame e invece farli fare una media. Cioè ogni 4 fotogrammi sono mediati e producono 1 fotogramma di output. La frequenza dei fotogrammi target rimane invariata, quindi il video è ora 4 volte più veloce.

C'è un modo per farlo in ffmpeg?


3
Puoi essere più specifico su come dovrebbero essere "mediati"? Quale metodo vuoi usare?
— Llogan,

@LordNeckbeard (f1 + f2 + f3 + f4) / 4 - media semplice. Pertanto, ogni frame risultante presenta lievi tracce del movimento su tutti i sub-frame.
— BarsMonster,

@BarsMonster Dubito che ffmpeg possa farlo. Hai visto questo effetto fatto in un altro modo? Sai com'è effettivamente?
— Jim Mack,

@JimMack Al momento l'ho fatto manualmente in VirtualDub, hanno un filtro interpolato, con interpolazione 0,5x fa correttamente una media di 2 frame. Ecco il risultato: youtube.com/watch?v=8zrws5CGWsI Si può vedere che ogni fotogramma ha un movimento di 2 sottoframe, quindi è leggermente più fluido. Ma farlo in un cmdline sarebbe molto più veloce in futuro.
— BarsMonster,

slowmoVideo può valere la pena provare, ma non so se abbia un cli. Il filtro framerate FFmpeg sembra eseguire l'interpolazione, ma non sembra soddisfare le tue esigenze.
— Llogan,

Risposte:


9

ffmpeg con questa filterchain lo fa:

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

srcfps dovrebbe essere sostituito con il framerate dell'input.


1
Provato anche per x16 usando "tblend = medio, framestep = 2, tblend = medio, framestep = 2, tblend = medio, framestep = 2, tblend = medio, framestep = 2, setpts = 0,0625 * PTS"
— BarsMonster
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.