Skip to content

Cum să segmentezi video în multiple părți cu FFmpeg (Segment Muxer)

DodaTech Updated 2025-01-15 2 min read

In this tutorial, you'll learn about Cum să segmentezi video în multiple părți cu FFmpeg (Segment Muxer). We cover key concepts, practical examples, and best practices.

Problema

Ai nevoie să împarți un videoclip lung în segmente mai mici — pentru streaming HLS, pentru încărcare pe platforme cu limită de dimensiune, sau pentru procesare paralelă. Segment muxer-ul din FFmpeg automatizează această operație.

Soluția Rapidă

Fix 1: Segmentare de bază

GREȘIT — tăiere manuală cu -ss și -t pentru fiecare segment:

# Ineficient pentru multe segmente
ffmpeg -ss 0 -i input.mp4 -t 60 part1.mp4
ffmpeg -ss 60 -i input.mp4 -t 60 part2.mp4

CORECT — folosește segment muxer-ul:

ffmpeg -i input.mp4 -c copy -f segment -segment_time 60 output_%03d.mp4
# Creează: output_000.mp4, output_001.mp4, output_002.mp4, ...

Fix 2: Segmentare cu re-encode

ffmpeg -i input.mp4 -c:v libx264 -crf 23 -c:a aac \
    -f segment -segment_time 60 output_%03d.mp4

Fix 3: Segmentare la keyframe-uri exacte

ffmpeg -i input.mp4 -c copy -f segment -segment_time 60 \
    -segment_time_delta 0.05 -reset_timestamps 1 output_%03d.mp4

Fix 4: Segmentare cu listă de timestamp-uri

# Creează segmente la timestamp-urile specificate
ffmpeg -i input.mp4 -c copy -f segment \
    -segment_times 30,60,90,120 -reset_timestamps 1 output_%03d.mp4

Fix 5: Segmentare pentru HLS

ffmpeg -i input.mp4 -c:v libx264 -c:a aac -f hls \
    -hls_time 6 -hls_list_size 0 -hls_segment_filename "seg_%03d.ts" playlist.m3u8

Fix 6: Segmentare cu dimensiune maximă

# Segmente de maxim 10MB fiecare
ffmpeg -i input.mp4 -c copy -f segment -segment_size 10M output_%03d.mp4

Folosește DodaTech Segment Manager pentru a planifica și executa segmentarea videoclipurilor mari.

Prevenție

  • -c copy segmentează fără re-encode (rapid, dar la keyframe-uri).
  • -reset_timestamps 1 resetează timestamp-urile la 0 pentru fiecare segment.
  • Folosește %03d pentru nume de fișiere cu 3 cifre (000, 001, ...).
  • Verifică durata fiecărui segment cu ffprobe.

Greșeli Comune cu Segment Muxer

  1. Uitarea lui -reset_timestamps 1 — timpii de început ai segmentelor nu sunt resetați, cauzând probleme la redare.
  2. Segmente de durată inegală — segmentarea la keyframe-uri poate produce segmente cu durată diferită.
  3. Format nume de fișier incorect%03d este necesar pentru numerotare; fără el, segmentele se suprascriu.

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

Exercițiu Practic

Scrie o comandă FFmpeg care împarte un videoclip în segmente de 2 minute fiecare, cu stream copy, reset_timestamps, și nume de fișier segment_%03d.mp4.

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

FAQ

### Ce face `-reset_timestamps 1`?

Resetează timestamp-urile (PTS) la 0 pentru fiecare segment. Fără această opțiune, al doilea segment începe cu timestamp 60, ceea ce poate cauza probleme la redare individuală.

Cum segmentez după o listă de timestamp-uri exacte?

Folosește -segment_times cu o listă separată prin virgulă: -segment_times 30,60,90,120,180.

Pot segmentea după dimensiunea fișierului?

Da, folosește -segment_size. De exemplu, -segment_size 10M creează segmente de maxim 10MB fiecare.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro