Cum să suprapui imagini sau video cu FFmpeg
In this tutorial, you'll learn about Cum să suprapui imagini sau video cu FFmpeg. We cover key concepts, practical examples, and best practices.
Problema
Vrei să adaugi un logo, un watermark sau un video peste alt video, dar overlay-ul apare în poziția greșită, cu dimensiunea incorectă sau cu transparență necorespunzătoare.
Soluția rapidă
Fix 1: Suprapunere Simplă (Watermark)
GRESIT — overlay fără scalare — watermark-ul poate fi prea mare:
ffmpeg -i video.mp4 -i logo.png -filter_complex "[0:v][1:v]overlay=10:10[out]" -map "[out]" output.mp4
# (logo-ul poate fi mult prea mare sau prea mic)
CORECT — scalează watermark-ul înainte de overlay:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[1:v]scale=100:-2[logo]; [0:v][logo]overlay=10:10[out]" \
-map "[out]" output.mp4
Fix 2: Poziționare Avansată a Overlay-ului
# Centru:
ffmpeg -i video.mp4 -i overlay.png -filter_complex \
"[0:v][1:v]overlay=(W-w)/2:(H-h)/2[out]" -map "[out]" output.mp4
# Colț dreapta jos (cu margine):
ffmpeg -i video.mp4 -i overlay.png -filter_complex \
"[0:v][1:v]overlay=W-w-10:H-h-10[out]" -map "[out]" output.mp4
# Centru jos:
ffmpeg -i video.mp4 -i overlay.png -filter_complex \
"[0:v][1:v]overlay=(W-w)/2:H-h-10[out]" -map "[out]" output.mp4
Fix 3: Overlay cu Transparență (Alpha)
# Logo PNG cu canal alpha:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10[out]" -map "[out]" output.mp4
# PNG suportă alpha nativ — funcționează direct
# Overlay cu alpha forțat:
ffmpeg -i video.mp4 -i overlay.png -filter_complex \
"[0:v][1:v]format=rgba,overlay=10:10[out]" -map "[out]" output.mp4
Fix 4: Video peste Video (Picture-in-Picture)
ffmpeg -i main.mp4 -i pip.mp4 -filter_complex \
"[1:v]scale=320:240[pip]; [0:v][pip]overlay=W-w-10:H-h-10[out]" \
-map "[out]" -map 0:a output.mp4
Fix 5: Overlay Temporizat (apare doar la anumite momente)
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10:enable='between(t,5,15)'[out]" \
-map "[out]" output.mp4
# Logo-ul apare între secunda 5 și 15
Fix 6: Overlay cu Animație
# Logo care se mișcă de sus în jos:
ffmpeg -i video.mp4 -i logo.png -filter_complex \
"[0:v][1:v]overlay=10:10+t*100[out]" -map "[out]" output.mp4
Folosește DodaTech's Video Overlay Tool pentru a poziționa și scala overlay-uri vizual.
Prevenție
- Scalează întotdeauna overlay-ul la dimensiunea potrivită înainte de suprapunere.
- Folosește PNG cu canal alpha pentru logo-uri și watermark-uri.
- Testează poziționarea cu un singur frame.
- Folosește
enable='between(t,n,m)'pentru overlay temporizat. - Verifică rezoluția ambelor streamuri cu
ffprobe.
Greșeli comune
- Overlay fără scalare — overlay-ul este disproporționat față de video.
- Coordonate greșite —
(W-w)/2vs(W-h)/2— w și h se referă la overlay. - Lipsa canalului alpha — JPEG nu are transparență, folosește PNG.
- Overlay permanent când ar trebui temporar — folosește
enablepentru control temporal. - Fără
-map 0:a— audio-ul se pierde dacă nu este mapat explicit.
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 watermark care apare în colțul dreapta jos între secundele 2 și 8, cu scalare la 150px lățime și transparență păstrată din PNG.
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