Skip to content

Cum să tai video cu filterul trim din FFmpeg

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să tai video cu filterul trim din FFmpeg. We cover key concepts, practical examples, and best practices.

Problema

Vrei să tai o porțiune dintr-un video fără a re-encodinga totul, dar comanda ta cu -ss și -t produce tăieri la keyframe-uri inexacte sau durează prea mult.

Soluția rapidă

Fix 1: Trim cu Timpi Exacti

GRESIT — folosind -ss după input (căutare inexactă):

ffmpeg -i input.mp4 -ss 10 -t 5 output.mp4
# (taie la cel mai apropiat keyframe, nu exact la secunda 10)

CORECT — folosește filtrul trim pentru precizie:

ffmpeg -i input.mp4 -vf "trim=start=10:duration=5,setpts=PTS-STARTPTS" output.mp4
# trim exact la secunda 10 pentru 5 secunde
# setpts=PTS-STARTPTS resetează timestamp-urile la 0

Fix 2: Trim cu Cadre (Frame-uri)

# Taie de la cadrul 50 la cadrul 150:
ffmpeg -i input.mp4 -vf "trim=start_frame=50:end_frame=150,setpts=PTS-STARTPTS" output.mp4

Fix 3: Trim cu Start și End Time

# Taie de la secunda 10 la secunda 20:
ffmpeg -i input.mp4 -vf "trim=start=10:end=20,setpts=PTS-STARTPTS" output.mp4

Fix 4: Trim Audio (atrim)

ffmpeg -i input.mp4 -filter_complex \
    "[0:v]trim=start=10:duration=5,setpts=PTS-STARTPTS[vout]; \
     [0:a]atrim=start=10:duration=5,asetpts=PTS-STARTPTS[aout]" \
    -map "[vout]" -map "[aout]" output.mp4

Fix 5: Trim cu Căutare Rapidă (Keyframe)

# Combină -ss pentru căutare rapidă cu trim pentru precizie:
ffmpeg -ss 9.5 -i input.mp4 -vf "trim=start=0.5:duration=5,setpts=PTS-STARTPTS" output.mp4
# -ss 9.5 sare aproape de poziția dorită (căutare rapidă)
# trim=start=0.5 corectează la poziția exactă (secunda 10)

Fix 6: Trim și Combinare cu Alte Filtre

ffmpeg -i input.mp4 -vf "trim=start=5:end=15,setpts=PTS-STARTPTS,scale=1280:720,fade=t=in:st=0:d=1" output.mp4
# Taie, scalează și adaugă fade in

Folosește DodaTech's Video Trimmer pentru a tăia video precis cu o interfață timeline.

Prevenție

  • Folosește întotdeauna setpts=PTS-STARTPTS după trim pentru a reseta timestamp-urile.
  • Pentru audio, folosește asetpts=PTS-STARTPTS după atrim.
  • Combină -ss cu trim pentru încărcare rapidă și tăiere precisă.
  • Testează pe un segment scurt înainte de procesarea completă.
  • Verifică durata output-ului cu ffprobe.

Greșeli comune

  1. Lipsa setpts după trim — timestamp-urile nemodificate cauzează probleme de sincronizare.
  2. Trim audio fără asetpts — audio-ul rămâne cu timestamp-urile originale.
  3. ss după -i în loc de înainte-i input.mp4 -ss decodează de la început (lent).
  4. end_frame în loc de end — amestecarea parametrilor de cadre și timpi.
  5. Trim fără durată specificată — trim de la start la sfârșitul video-ului.

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

Taie un fragment de 8 secunde începând de la secunda 12.5 dintr-un video, aplică scalare la 720p și fade in de 1 secundă.

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

FAQ

### Care este diferența dintre -ss și filtrul trim?

-ss este un parametru de input care sare la o poziție aproximativă (keyframe). Filtrul trim taie precis la cadrul exact. Combină-le: -ss pentru viteză, trim pentru precizie.

De ce după trim, video-ul începe de la un timestamp diferit?

Pentru că PTS (Presentation Time Stamp) nu este resetat. Adaugă setpts=PTS-STARTPTS după trim pentru a reseta la 0.

Pot folosi trim pe fișiere audio fără video?

Da, folosește filtrul atrim pentru audio: ffmpeg -i input.mp3 -af "atrim=start=10:duration=5,asetpts=PTS-STARTPTS" output.mp3.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro