субота, новембар 01, 2014

Od videa GIF

Recimo da hoćemo deset sekundi nekog video zapisa da prebacimo u animirani GIF. Prvi korak je da izvučemo tih 10 sekundi u zaseban fajl

ffmpeg -i original.mkv -ss 01:00:00 -t 00:00:10 -vcodec copy -acodec copy cut.mkv

 a onda taj fajl konvertujemo u animirani GIF:

ffmpeg -i cut.mkv -vf scale=320:-1 -r 10 output.gif

Šta ako želimo da uključimo i titl u GIF? U tom slučaju je najbolje da titl snimimo kao zaseban fajl i to u UTF-8 kodnom rasporedu. Sledećom komandom ćemo da ga spojimo zajedno sa originalnim videom

ffmpeg -i original.mkv -ss 01:00:00 -t 00:00:10 -acodec copy -vf subtitles=subtitle.srt cut.mkv

pa onda možemo taj isečak da prebacimo u GIF na gore opisan način.

Veličina slova titla u rezultujućem GIF-u može biti premalena. Pošto u SRT fajlovima ne možemo da menjamo vrstu i veličinu slova, prebacićemo SRT fajl u ASS format:

ffmpeg -i subtitle.srt subtitle.ass

Sada ćemo negde pri vrhu ASS fajla da potražimo definicije vrste slova, veličine, boja...

[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
Style: Default,Arial,24,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
izmenimo ih po sopstvenim potrebama i spojimo originalni video ovog puta sa ASS titlom:

ffmpeg -i original.mkv -ss 01:00:00 -t 00:00:10 -acodec copy -vf subtitles=subtitle.ass cut.mkv
pre finalne konverzije u GIF.




Inače, animirani GIF može da se napravi i tako što ćemo ffmpeg-u da kažemo da napravi seriju sličica (frejmova) a onda da ih pomoću programa convert spojimo u animaciju.

Više o svemu ovome na:

superuser.com
linuxg.net
stackoverflow.com

субота, октобар 25, 2014

Vreme je za kokice

Popcorn Time je jednostavan program koji strimuje filmove i TV serije preko torenta. U pitanju su YIFY torenti tako da je baza sadržaja velika i aktuelna. Jednom kada izaberete film koji želite da pogledate, potrebno je da sačekate desetak sekundi i kreće reprodukcija. Dok gledate film, u pozadini se vrši skidanje podataka ali istovremeno i deljenje onoga što je već skinuto (torent princip). Program ima i mogućnost prikazivanja titlova ali naše titlove verovatno nećete tako lako naći preko torenta. Zato je tu opcija ručnog učitavanja fajla sa titlom kojeg ste pre toga skinuli sa nekog sajta, na primer titlovi.com. Naši titlovi još uvek dolaze u zastarelom kodnom zapisu Windows-1250 pa se naša slova neće videti kako treba. Rešenje je da titl prebacite u UTF-8 kodni raspored, učitate ga i sve će biti u redu.


ViPER4Windows

Vajper je besplatan program koji će poboljšati kvalitet zvuka na vašem računaru. On radi u pozadini, presreće zvuk i menja ga u skladu sa vašim podešavanjima pre nego što ga prosledi dalje na zvučnike, slušalice ili gde već.


недеља, октобар 12, 2014

Automatsko učitavanje klasa

Kada pišete klase, obično svaku klasu smeštate u poseban fajl, a kada želite da instancirate sve te klase, onda morate svaki fajl da učitate posebno. U PHP-u to više nije neophodno zato što od verzije 5 možete da definišete __autoload funkciju koja će automatski biti pozvana svaki put kada pokušate da instancirate neku klasu koja do tad nije bila definisana.

Primer:

<?php
  function __autoload($class){
      $filename = strtolower($class) . '.php';
      $file = "include/$filename";
      include $file;
  }
  $c1 = new Class1();
  $c2 = new Class2();
?>

U primeru se podrazumeva da klase čuvate u fajlovima koji imaju isti naziv kao i naziv klasa ali __autoload funkciju možete prilagoditi vašem načinu imenovanja datoteka. 

spl_autoload je došao sa PHP verzijom 5.1.2 i dozvoljava vam da definišete više autoload funkcija za učitavanje klasa, biblioteka, interfejsa itd.

Primer:

<?php
  function classLoader($class){
      $filename = strtolower($class) . '.php';
      $file = "include/$filename";
      if(!file_exists($file)){
   return false;
      }
      include $file;
  }
  spl_autoload_register('classLoader');
  spl_autoload_register('libLoader');
  $c1 = new Class1();
  $c2 = new Class2();
?>

Više o ovome na:

http://www.codeforest.net/autoload-your-classes-in-php
http://www.phpro.org/tutorials/SPL-Autoload.html
http://php.net/manual/en/function.spl-autoload.php

четвртак, октобар 02, 2014