Faceți căutări pe acest blog

sâmbătă, 1 octombrie 2011

Watermark video/ mencoder+ ffmpeg

 În materialul anterior (http://stressat.blogspot.com/2011/09/watermarks.html )  am arătat cum se pot ”marca” imagini cu text sau altă imagine/ logo, hai să vedem pe scurt cum se pot marca fișiere video.

 1- Marcare cu text
 Ne vom folosi de mencoder,parte a pachetului mplayer în unele distribuții Linux, sau instalat independent în alte distribuții.
 În primul rând vom crea un fișier numit watermark.srt (da, da, da, pur și simplu tratăm textul pe care vrem să-l încărcăm pe video ca pe o subtitrare!) și adăugăm în el ceva de genul:
1
00:00:0,000 --> 01:50:10,000
Text de afișat pe video


 În cazul meu fișierul conține textul:
1
00:00:0,000 --> 01:50:10,000
Stressat.blogspot.com

 Dacă dorim ca textul să se modifice pe parcursul rulării filmulețului nostru vom scrie în watermark.srt mai multe linii, cam așa ceva:
1
00:00:0,000 --> 00:00:20,000
Text1

2

00:00:21,000 --> 00:20:30,000
Text2

3
00:20:31,000 --> 01:20:30,000
Text3

 Ok, am rezolvat cu textul care va urma să fie ”marcat”, adăugat, încorporat în fișierul video. Presupunem că avem deja acel fișier, putem lua un videoclip, un filmuleț, o captură de ecran, sau orice altceva. Eu am folosit o captură de ecran luată cu ffmpeg în konsole (puteți să vă inspirați din comanda mea pentru a vă realiza propriile capturi video, este marcată în consolă chiar la începutul materialului video). Pentru simplificare atât fișierul video, cât și watermark.srt se află în același director ~ (în caz contrar punem calea corectă către acestea...).
 Deschidem o consolă/ terminal și dăm comanda:
mencoder sursă -o rezultat -ovc xvid -xvidencopts fixed_quant=3 -oac copy -sub "watermark.srt" -font "arial.ttf" -subpos 99

sursă                = fișierul video inițial;
rezultat            = fișierul video cu watermark, denumit după plac;
-sub                  =opțiune pentru subtitrare (fișierul watermark.srt);
-font                 = fontul folosit, se poate alege altul;
-subpos           = poziția textului pe ecran, o putem modifica (80, 90, 95...).

 Pentru mine comanda a fost:
mencoder videotop.avi -o videotop-watermark.avi -ovc xvid -xvidencopts fixed_quant=3 -oac copy -sub "watermark.srt" -font "arial.ttf" -subpos 99

 Rezultatul ”muncii” mele se poate vedea aici, cu mențiunea că nu are sonor ”mulțumită” regulilor privind drepturile de autor; vă recomand să urmăriți clipul fullscreen la 720p pentru o calitate cât mai bună:



 Pentru altă dimensiune a fontului modificați parametrul fixed_quant=3, înlocuind cifra 3 cu alta, 1 de exemplu pentru font mai mic.
 Dacă preferați un text de altă culoare, puteți seta acest lucru în comandă adăugând parametrii -ass -ass-color culoare. Detalii despre codul culorilor puteți găsi aici:  http://stressat.blogspot.com/2011/07/mplayer.html .De exemplu pentru scris verde -ass -ass-color fff0000, deci comanda va fi:


mencoder captura.avi -o captura-watermark1.avi -ovc xvid -xvidencopts fixed_quant=1 -oac copy -sub "watermark1.srt" -font "verdana.ttf" -ass -ass-color fff0000 -subpos 99

Rezultatul:


Sursă: http://technoslab.blogspot.com/2011/04/video-watermarking-using-php-and.html

2- Marcare cu logo/ imagine
 Din materialul referitor la marcarea imaginilor ( http://stressat.blogspot.com/2011/09/watermarks.html ) știți cum se crează un logo, o mică imagine ce urmează să fie adăugată la o imagine sau fișier video. Deasemenea presupunem că aveți deja un fișier video (captură ecran, videoclip, filmuleț, etc).Deci vom trece direct la marcarea unui fișier video.
 Ne vom folosi de ffmpeg, pachet care trebuie instalat. În funcție de distribuția folosită este posibil să trebuiască instalat separat și pachetul libavfilter...

 Deschidem o consolă și dăm comanda:
ffmpeg -i sursă.avi -vf "movie=watermark.png [wm]; [in][wm] poziție-logo [out]" -s 1290x960 -sameq  rezultat.avi


Unde:
- sursă                       = fișier video inițial;
- watermark.png      = nume logo;
- poziție-logo             = locul unde vrem amplasat logo-ul;
- s 1290x980             = frame size, pentru monitorul meu asta e rezoluția;
- sameq                     = fără compresie, aceiași calitate;
- rezultat                   = fișierul video după adăugare logo.
Poziție logo:
- colțul stânga sus:    overlay=10:10
- colțul stânga jos:     overlay=10:main_h-overlay_h-10
- colțul dreapta sus:  overlay=main_w-overlay_w-10:10
- colțul dreapta jos:   overlay=main_w-overlay_w-10:main_h-overlay_h-10

 Un exemplu concret, dorim să adăugăm fișierului video captura.avi, un logo numit watermark.png, în colțul din stânga jos:
ffmpeg -i captura.avi -vf "movie=watermark.png [wm]; [in][wm] overlay=10:main_h-overlay_h-10 [out]" -s 1280x960 -sameq  captura+watermark.avi 

Atenție, comanda este dată pe o singură linie, lipsa spațiului face să apară așa, puteți lua comanda cu copy- paste și înlocui ce nu e bine!

 Iată ce iese:




3- Marcare cu alt fișier video
Hai să explorăm posibilitățile ffmpeg, de ce n-am putea marca un video cu alt video???
 În primul rând trebuie ca fișierul video pe care vrem să-l folosim ca logo să aibă o dimensiune acceptabilă, astfel încât să nu acopere complet sau prea mult din imaginea sursă, cea care trebuie marcată cu logo. Evident, vom folosi tot ffmpeg:
ffmpeg -i video-1.mpeg  -s lățimexînălțime -sameq video-2.mpeg

ffmpeg -i fireworks.mpeg  -s 200x150 -sameq fire.mpeg
 Sunt atribuite deja valori standard pentru dimensiuni (sqcif= 128x96, qcif= 176x144, etc, dacă dați într-o consolă comanda man ffmpeg veți afla toate valorile).
 Deci dacă dorim să redimensionăm un fișier video la 320x200 pixeli vom da comanda:
ffmpeg -i sursă.avi -s cga -sameq rezultat.avi
  Acum că am rezolvat cu dimensiunea fișierului logo, tot ce mai rămâne de făcut este să-l ”suprapunem” pe fișierul video sursă, EXACT în același mod cum adăugăm o imagine...  :D
ffmpeg -i video1.avi -vf "movie=video-logo.avi [wm]; [in][wm] overlay=10:main_h-overlay_h-10 [out]" -s 1280x960 -sameq  rezultat.avi
 Exemplu concret:
ffmpeg -i captura1.avi -vf "movie=capt-1.mpeg [wm]; [in][wm] overlay=10:main_h-overlay_h-10 [out]" -s 1280x960 -sameq  capt-wat-new.avi

Rezultat:



 Vizualizați acest filmuleț full screen, alegeți 720p, priviți cu atenție colțul din stânga jos, puteți observa că imaginea- logo este la rândul ei marcată cu un mic fișier video cu artificii (și c-o imagine în plus...), dar având o durată scurtă, rulează numai câteva secunde...



 Sursă:  http://www.idude.net/index.php/how-to-watermark-a-video-using-ffmpeg/

Niciun comentariu:

Trimiteți un comentariu

Back to top