Cum să adaugi text pe video cu FFmpeg
In this tutorial, you'll learn about Cum să adaugi text pe video cu FFmpeg. We cover key concepts, practical examples, and best practices.
Problema
Comanda ta FFmpeg pentru adăugarea textului pe video eșuează cu Fontconfig error: Cannot find default font sau Failed to open font. Filtrul drawtext necesită specificarea corectă a fontului și a parametrilor de text.
Soluția rapidă
Fix 1: Adăugare Text Simplu
GRESIT — drawtext fără specificarea fontului:
ffmpeg -i input.mp4 -vf "drawtext=text='Hello World':x=10:y=10" output.mp4
# Fontconfig error: Cannot find default font
CORECT — specifică fontul explicit:
ffmpeg -i input.mp4 -vf "drawtext=text='Hello World':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:x=10:y=10" output.mp4
Fix 2: Poziționare Text
# Colțul stânga sus:
ffmpeg -i input.mp4 -vf "drawtext=text='Stânga Sus':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:x=10:y=10" output.mp4
# Centru:
ffmpeg -i input.mp4 -vf "drawtext=text='Centru':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:x=(w-text_w)/2:y=(h-text_h)/2" output.mp4
# Colțul dreapta jos:
ffmpeg -i input.mp4 -vf "drawtext=text='Dreapta Jos':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:x=w-tw-10:y=h-th-10" output.mp4
Fix 3: Stilizare Text (Culoare, Dimensiune, Font)
ffmpeg -i input.mp4 -vf "drawtext=text='Titlu':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans-Bold.ttf:fontsize=48:fontcolor=white:shadowy=2:box=1:boxcolor=black@0.5:boxborderw=10:x=(w-text_w)/2:y=50" output.mp4
Fix 4: Text dinamic (Timestamp)
ffmpeg -i input.mp4 -vf "drawtext=text='%{pts\:hms}':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:x=10:y=10:fontsize=24:fontcolor=yellow" output.mp4
# %{pts:hms} afișează timestamp-ul video în format ore:minute:secunde
Fix 5: Text cu Fundal (Box)
ffmpeg -i input.mp4 -vf "drawtext=text='Subtitrare':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:fontcolor=white:box=1:boxcolor=black:boxborderw=5:x=(w-tw)/2:y=h-th-20" output.mp4
Fix 6: Animație Text (Deplasare)
# Text care se deplasează de la stânga la dreapta:
ffmpeg -i input.mp4 -vf "drawtext=text='Scrolling':fontfile=/usr/share/fonts/truetype/dejavu/DejaVuSans.ttf:x=w-mod(t*50\,w+tw):y=100:fontsize=36" output.mp4
Folosește DodaTech's Video Text Overlay pentru a adăuga text pe video cu o interfață vizuală.
Prevenție
- Verifică fonturile disponibile cu
fc-list | grep -i "nume_font". - Folosește căi absolute pentru fonturi în scripturi.
- Testează poziționarea cu un singur frame:
-vframes 1. - Ajustează
fontsizeîn funcție de rezoluția video. - Folosește
escape_textpentru text cu caractere speciale.
Greșeli comune
- Font ne specificat — drawtext necesită
fontfile=pentru a funcționa corect. - Font inexistent — calea către font este greșită sau fontul nu este instalat.
- Poziție în afara ecranului — coordonatele x/y plasează textul în afara cadrului vizibil.
- Caractere speciale neescapate —
:și'în text trebuie escapenate. - Box fără borderwidth — boxul apare prea strâns pe text fără
boxborderw.
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
Adaugă un text centrat cu fundal negru semi-transparent și font bold pe un video, cu timestamp-ul în colțul din dreapta sus.
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