Cum să desenezi casete pe video cu FFmpeg
In this tutorial, you'll learn about Cum să desenezi casete pe video cu FFmpeg. We cover key concepts, practical examples, and best practices.
Problema
Vrei să evidențiezi o regiune dintr-un video desenând o casetă în jurul ei, dar comanda ta fie nu afișează nimic, fie caseta apare în afara ecranului. Filtrul drawbox necesită coordonate și dimensiuni precise.
Soluția rapidă
Fix 1: Desenare Casetă Simplă
GRESIT — drawbox cu parametri greșiți:
ffmpeg -i input.mp4 -vf "drawbox=x=100:y=100:w=200:h=150" output.mp4
# (casetă aproape invizibilă — culoare implicită greșită)
CORECT — specifică culoarea și grosimea:
ffmpeg -i input.mp4 -vf "drawbox=x=50:y=50:w=300:h=200:color=red@0.5:t=5" output.mp4
# roșu cu transparență 0.5, grosime contur 5px
Fix 2: Casetă Plină (Fill)
ffmpeg -i input.mp4 -vf "drawbox=x=100:y=100:w=400:h=300:color=black@0.3:t=fill" output.mp4
# Umple caseta cu negru semi-transparent (efect de blurring)
Fix 3: Casetă cu Colțuri Rotunjite
ffmpeg -i input.mp4 -vf "drawbox=x=100:y=100:w=400:h=200:color=blue:t=5:max_h=20:max_w=20" output.mp4
# max_h=20, max_w=20 rotunjesc colțurile (raza de 20px)
Fix 4: Evidențiere Față (Face Blur/Box)
ffmpeg -i input.mp4 -vf "drawbox=x=300:y=150:w=200:h=250:color=yellow:t=3" output.mp4
# Evidențiază o față cu o casetă galbenă
Fix 5: Casete Multiple
ffmpeg -i input.mp4 -vf "drawbox=x=50:y=50:w=100:h=100:color=red:t=2,drawbox=x=200:y=50:w=100:h=100:color=green:t=2" output.mp4
# Două casete separate prin virgulă
Fix 6: Casetă cu Text (drawbox + drawtext)
ffmpeg -i input.mp4 -vf "drawbox=x=50:y=50:w=300:h=50:color=black@0.7:t=fill,drawtext=text='Regiune 1':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:fontcolor=white:x=60:y=60" output.mp4
Folosește DodaTech's Region Highlighter pentru a desena casete pe video interactiv.
Prevenție
- Verifică coordonatele în raport cu rezoluția video cu
ffprobe. - Folosește
t=fillpentru casete pline,t=npentru contur. - Specifică culoarea cu formatul
color@opacitypentru transparență. - Testează pe un singur frame cu
-vframes 1. - Combină drawbox cu drawtext pentru adnotări complete.
Greșeli comune
- Coordonate în afara ecranului — x/w sau y/h depășesc dimensiunile video.
- Opacitate implicită 1 — fără
@0.x, caseta este complet opacă. - Grosime contur insuficientă —
t=1produce un contur aproape invizibil. - Casetă plină fără
t=fill— implicit desenează doar contur. - Separarea incorectă a filtrelor — drawbox-urile multiple trebuie separate cu virgulă.
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
Desenează 3 casete colorate pe un video la coordonate diferite, una cu contur, una plină cu transparență și una cu colțuri rotunjite.
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