Skip to content

Cum să modifici timestamp-urile video cu FFmpeg

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să modifici timestamp. We cover key concepts, practical examples, and best practices.

Problema

Vrei să accelerezi sau să încetinești un video, să inversezi playback-ul sau să resetezi timestamp-urile. Filtrul setpts controlează temporalitatea, dar expresiile pot fi confuze.

Soluția rapidă

Fix 1: Accelerare Video (Fast Motion)

GRESIT — setpts cu factor greșit:

ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4
# (0.5 = de 2 ori mai rapid — jumătate din PTS)

CORECT — alege factorul corect:

# De 2 ori mai rapid:
ffmpeg -i input.mp4 -vf "setpts=0.5*PTS" output.mp4

# De 4 ori mai rapid:
ffmpeg -i input.mp4 -vf "setpts=0.25*PTS" output.mp4

# De 10 ori mai rapid (time-lapse):
ffmpeg -i input.mp4 -vf "setpts=0.1*PTS" output.mp4

Fix 2: Slow Motion

# De 2 ori mai lent:
ffmpeg -i input.mp4 -vf "setpts=2.0*PTS" output.mp4

# De 4 ori mai lent:
ffmpeg -i input.mp4 -vf "setpts=4.0*PTS" output.mp4

Fix 3: Reverse Video

ffmpeg -i input.mp4 -vf "reverse" output.mp4
# Reverse video — ultimul cadru devine primul

Fix 4: Resetare Timestamp-uri

ffmpeg -i input.mp4 -vf "setpts=PTS-STARTPTS" output.mp4
# Resetează PTS la 0 (util după trim)

Fix 5: Viteză Variabilă cu Expresii

# Viteză care crește în timp:
ffmpeg -i input.mp4 -vf "setpts=PTS/(1+0.1*T)" output.mp4
# T = timpul curent, expresia accelerează progresiv

# Slow-motion la început, viteză normală la sfârșit:
ffmpeg -i input.mp4 -vf "setpts=if(lte(T,5),2*PTS,PTS)" output.mp4
# Primele 5 secunde: 2x lent, apoi viteză normală

Fix 6: Setpts + Audio (atempo)

# Video accelerat + audio accelerat:
ffmpeg -i input.mp4 -filter_complex \
    "[0:v]setpts=0.5*PTS[vout]; \
     [0:a]atempo=2.0[aout]" \
    -map "[vout]" -map "[aout]" output.mp4
# atempo=2.0 accelerează audio fără a schimba pitch-ul

Folosește DodaTech's Speed Controller pentru a ajusta viteza video cu preview în timp real.

Prevenție

  • Pentru slow-motion fluid, asigură-te că framerate-ul sursă este suficient de mare.
  • Sincronizează setpts cu atempo: invers proporțional (setpts=0.5 → atempo=2.0).
  • Folosește reverse pentru efect invers, nu setpts=-PTS.
  • Testează pe un segment scurt înainte de procesarea completă.
  • Verifică durata finală cu ffprobe.

Greșeli comune

  1. Audio nesincronizat — setpts schimbă video dar audio rămâne la viteza originală.
  2. Factor setpts invers — setpts=2.0 încetinește (PTS dublat), nu accelerează.
  3. A tempo limitat — atempo suportă doar 0.5-100.0; pentru factori extreme, lanțuiți atempo.
  4. Reverse fără audio corect — video inversat dar audio rămâne normal.
  5. Framerate insuficient pentru slow-motion — slow-motion cu 30fps sursă pare sacadat.

Aceste greșeli apar frecvent în codul FFmpeg real. Contribuitorii DodaTech au identificat aceste modele prin analiza proiectelor open-source și a sistemelor de producție.

Exercițiu practic

Accelerează un video de 30 de secunde de 5 ori (time-lapse), ajustează audio-ul corespunzător și salvează output-ul.

Acest exercițiu întărește conceptele prezentate în acest ghid. Încearcă să-l implementezi înainte de a verifica soluțiile online.

FAQ

### Cum funcționează expresiile în setpts?

PTS = Presentation Time Stamp. setpts=0.5*PTS înjumătățește timpul (accelerează 2x). setpts=2.0*PTS dublează timpul (încetinește 2x). Poți folosi variabile: PTS, T (timp), N (număr cadru).

De ce audio-ul meu este distorsionat după accelerare?

setpts nu modifică audio. Trebuie să folosești atempo pentru audio: atempo=2.0 pentru 2x. Dacă atempo produce artefacte, folosește rubberband.

Pot face slow-motion cu framerate variabil?

Da, dar rezultatul poate fi sacadat la framerate-uri sub 60fps. Înregistrează la 60fps+ pentru slow-motion fluid la 0.25x.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro