-vf setpts (Slow-motion și viteză) în FFmpeg

Modifică marcajele temporale ale cadrelor (Presentation Time Stamp) pentru efecte de slow-motion sau timelapse.

Sintaxă
ffmpeg -i intrare.mp4 -vf "setpts=2.0*PTS" -an slow_motion.mp4
ffmpeg -i intrare.mp4 -vf "setpts=0.5*PTS" -af "atempo=2.0" viteza_dubla.mp4

Ce face -vf setpts (Slow-motion și viteză)

Fiecare cadru video conține o etichetă temporală numită PTS (Presentation Time Stamp) care indică playerului momentul exact în care cadrul trebuie afișat.

Filtrul setpts scalează aceste valori matematice:
• setpts=0.5*PTS: cadrele sunt afișate la jumătatea intervalului de timp, dublând viteza de redare (2x Fast-Motion / Timelapse);
• setpts=2.0*PTS: dublează distanța dintre cadre, încetinind viteza la jumătate (0.5x Slow-Motion).

Pentru a păstra sonorul sincronizat la modificarea vitezei, filtrul video setpts se combină obligatoriu cu filtrul audio atempo.

Opțiuni și argumente

Opțiune / Parametru Descriere
setpts=<expresie> Formula de multiplicare a PTS (ex: 0.5*PTS, 2.0*PTS).

Ce returnează

Recalcularea marcajelor temporale ale fiecărui cadru.

Exemple

Exemplul 1: Crearea unui efect Timelapse de viteză 4x cu accelerare audio

Accelerează videoclipul de 4 ori și sincronizează sunetul.

ffmpeg -i mers.mp4 -vf "setpts=0.25*PTS" -af "atempo=2.0,atempo=2.0" timelapse.mp4

Ieșire în terminal

frame=  900 fps= 45 q=22.0 Lsize=   14200kB time=00:00:30.00 bitrate=3876.5kbits/s speed=1.5x

Greșeli frecvente

  • Accelerarea imaginii fără adaptarea sunetului, provocând desincronizare totală sau audio rămas în urmă cu minute bune.
  • Folosirea unei valori la ‘atempo’ mai mari de 2.0 într-un singur pas (filtrul atempo acceptă valori între 0.5 și 2.0; pentru 4x se înlănțuie ‘atempo=2.0,atempo=2.0’).

Comenzi înrudite