Cum să modifici timestamp-urile video cu FFmpeg
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
reversepentru efect invers, nusetpts=-PTS. - Testează pe un segment scurt înainte de procesarea completă.
- Verifică durata finală cu ffprobe.
Greșeli comune
- Audio nesincronizat — setpts schimbă video dar audio rămâne la viteza originală.
- Factor setpts invers — setpts=2.0 încetinește (PTS dublat), nu accelerează.
- A tempo limitat — atempo suportă doar 0.5-100.0; pentru factori extreme, lanțuiți atempo.
- Reverse fără audio corect — video inversat dar audio rămâne normal.
- 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
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro