Cum să segmentezi video în multiple părți cu FFmpeg (Segment Muxer)
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 copysegmentează fără re-encode (rapid, dar la keyframe-uri).-reset_timestamps 1resetează timestamp-urile la 0 pentru fiecare segment.- Folosește
%03dpentru nume de fișiere cu 3 cifre (000, 001, ...). - Verifică durata fiecărui segment cu
ffprobe.
Greșeli Comune cu Segment Muxer
- Uitarea lui
-reset_timestamps 1— timpii de început ai segmentelor nu sunt resetați, cauzând probleme la redare. - Segmente de durată inegală — segmentarea la keyframe-uri poate produce segmente cu durată diferită.
- Format nume de fișier incorect —
%03deste 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
Built by the developers of DodaTech
Doda Browser, DodaZIP & Durga Antivirus Pro