My-Gate • Blog » Web

Videos zum Zweiten

Da wir uns nun auch in der Schule mit Stopmotion, Real und andere Arten von Film beschäftigen, bin ich auf eine weitere Suche gegangen um gute Programme zu finden.
MonkeyJam hab ich ja bereits in einem früheren Post erwähnt. Leider musste ich nun nach mehreren Versuchen feststellen, dass sich MonkeyJam wohl für direkt Fotografie und Layers eigenen mag, jedoch um aus einer Bilderserie einfach und schnell ein Video zu erstellen nicht ausreicht. Das ewige Klicken um schliesslich bei meinen gewünschten Bildern anzukommen, um dann diese nicht per Ctrl+A (weil es das nicht unterstützt) sondern mit Erstes-auswählen-Shift+Letztes-auswählen markieren und importieren und schlussendlich wieder Datei->Exportieren und den richtigen Codec auswählend den Film erstellen, ging mir so ziemlich auf die Nerven und hat mich auch Zeit gekostet.
Enttäuscht musste ich dann wieder feststellen, wie Geldsüchtig das Internet heute ist. Man kann alle Programme haben, aber alle würden Geld kosten, bis ich dann irgendwie auf der Seite von jarrin gelandet bin. Vergeblich sucht man dort nach einem Kaufpreis, denn es steht alles unter der GNU General Public License. Nun gut es gibt ja auch das eine Freeware Programm JPGVideo, welches aber bei mir überhaupt nicht funktioniert hat. Kritisch testete ich das Programm mit Namen JPG to AVI und musste mit erstaunen feststellen, dass dieses kleine simple Programm genau den Ansprüchen gerecht kam, welche ich stellte. Das Einzige was einzelne stören könnte ist das dotNET-Framework, welches benötigt wird, aber da das bei mir sowieso schon drauf ist spielt dies für mich keine Rolle.
Fazit: Lieber klein dafür fein! 😉

Da unsere ebenfalls schon erwähnte Canon PowerShot SX1 IS keine 720p Realfilm Aufnahmen machen kann und mein Notebook keine 1080p Filme abspielen kann muss ich diese konvertieren. Zwar kann mein Videoschnitt- / Bearbeitungsprogramm die Filme laden und verarbeiten, jedoch wäre es im vorneherein noch praktisch zu wissen, welche Szene ich nun gerade rein geladen habe.
Auch hier gibt es eine Unzahl an kommerziellen Programmen, jedoch sind die gratis Programme auch nicht gerade in kleiner Zahl vorhanden, so dass man die Qual der Wahl hat. Da die Kamera ein 1080p Film im MOV-Format erstellt und dies wahrscheinlich nicht von allen Programmen unterstützt wird, habe ich spezifisch gegoogelt und bin dann auf das Programm RAD Video Tools gestossen, welches ursprünglich für Konvertierungen für verschiedene Computerspiele gedacht war, jedoch auch Konvertierungen in normale Videoformate wie AVI durchführen kann. Nachdem ich ein paar der FAQs und ein kleines Tutorial durchgelesen hatte, konvertiere die erste Szene und war über die Geschwindigkeit und die gute Qualität sehr positiv überrascht. An verschiedenen Stellen gibt es zwar ein Problem mit der Darstellung jedoch kann dies genauso gut Codec spezifisch sein. Ich habe die Filme komprimiert da ich die Filme ja eigentlich nur als Vorschau benötige und nicht als Quellmaterial. Als Encoder hab ich dann wieder den FFdShow verwendet, diesmal jedoch mit anderen Einstellungen: “one pass – quantizer 4”.
Fazit: Das RAD Video Tools überzeugt vor allem durch seine einfach gehaltene Benutzeroberfläche und seinen grossen optionalen Einstellungsmöglichkeiten.

Fazit

Nebst dem grossen Müll welchen man im Internet findet, gibt es doch immer wieder kleine versteckte Programme, welche genau den gestellten Ansprüchen entspricht, man muss nur genug lange danach Suchen, was sehr Nerv tötend sein kann, jedoch sehr lohnend ist!

RAD Video Tools
JPG to AVI

Smarty – Template Engine

Wenn man heutige Content Management Systems (CMS) betrachtet, findet man sehr oft die Template Engine “Smarty”. Da ich selbst immer wieder Probleme mit dem geeigneten verwenden von Templates hatte, hab ich mir diese Engine einmal etwas genauer angeschaut.

Als erstes hab ich mir die benötigten Dateien per “wget” von der “Herstellerseite” geladen. Dann entpackt und die einzelnen Dateien etwas betrachtet. Die selbe Anleitung zur schnellen Installation kann auch wieder auf der Smarty-Site gefunden werden unter Quick Install. Ich hab jedoch die demo-Dateien verwendet und dann einfach noch angepasst, da ich auch die index.php nicht im selben Verzeichnis haben wollte, musste ich noch die einzelnen Verzeichnisse separat angeben.
Nach einer Viertelstunde hab ich dann meine durch Smarty ausgegebene Seite erhalten.

Fazit

Obwohl ich bis jetzt nur die simple Assign-Funktion verwendet haben, hat mir Smarty gut gefallen. Es ist schnell installiert, vollautomatisiert und die Integration ist sehr einfach gehalten. Weiter gibt es eine grosse Auswahl an Funktionen, welche für komplexe Designe gut gebraucht werden können.
Nun muss ich mir nicht mehr den Kopf darüber zerbrechen, wie ich meine Templates gut einbinden könnte! =)

Kommentare [0]
Geschrieben am 21.11.2009 von admin in Computer, Web
 Tags: , ,

CSS C(ompressor)

Während ich nun in den letzten Tagen wieder sehr aktiv war mit schreiben von HTML und CSS, ist mir aufgefallen, wie ineffizient man eigentlich CSS gestaltet. Jeder Beschreibung kommt auf eine Zeile und denn noch meist mit einem Tabulator eingerückt (was z.T. auch einfach als ein paar Leerzeichen gespeichert wird.). Man verwendet oft Leerzeichen nach Doppelpunkten oder Kommas, usw. Um den CSS Code zu lesen und zu verstehen ist dies wohl eine sehr gute Methode, doch denke man nun einmal ein paar Jahre zurück, als es nur DialUp-Verbindungen gab und man noch nicht in MegaBytes rechnete! Zu diesen Zeiten waren Bytes gleich Zeit und je weniger Bytes desto weniger Zeit brauchte es um eine Website darzustellen (ist heute eigentlich auch immer noch so! :-O)!
Klar heute kommt es mit DSL und VDSL nicht mehr so auf die Bytes drauf an, aber trotzdem dachte ich, dass ein Kompressor vielleicht gar nicht so eine dumme Idee ist. Natürlich wollte ich damit auch meinen Kampf mit den Regulären Ausdrücken etwas bewältigen und darum hab ich ein kleines PHP-Script geschrieben. Erstaunlicherweise war dann das verwenden von den Regulären Ausdrücken gar nicht einmal so eine schwere Sache, besonders mit Verwendung von einem “Cheat Sheet”.
Das Skript ist weit weg von Perfektion, jedoch hat es eines der Testfiles um 30% komprimiert, was bei der kleinen Grösse eigentlich schon recht viel ist. Ihr könnt es unter der folgenden Adresse einmal ausprobieren:

http://my-gate.net/usefull/cssc.php?file=

Nach file= könnt ihr irgend eine URL eines CSS-Files angeben und es wird geladen und komprimiert!

Viel Spass! =)

Kommentare [0]
Geschrieben am 16.11.2009 von admin in Computer, Web
 Tags: , , , ,

PHP Tutorial

Bist du auf der Suche nach einem vernünftigen PHP Tutorial?

Auf dieser Seite wirst du sicherlich einen guten Einstieg finden: www.php-kurs.com!
Das Ganze kann auch heruntergeladen werden, jedoch nicht ganz gratis.

Wenn man von PHP redet, darf man natürlich das offizielle Manual nicht vergessen:
PHP.net (Englisch)
PHP.net (Deutsch/Schweiz)

Wer das lieber Offline verwenden möchte, kann es sich natürlich auch herunterladen.

Ich selbst kann jedem PHP sehr empfehlen, dass es eine einfach, jedoch sehr starke Sprache ist, ausserdem ist PHP stark verwandt mit C bzw. C++, was einen Umstieg recht einfach macht. Und dass C/C++ eine der meist verwandtesten, schnellsten und auf praktisch allen Plattformen verwendbare Sprache ist, muss ich wohl ja nicht erwähnen, oh hab ich aber gerade…

Kommentare [0]
Geschrieben am 29.10.2009 von admin in Computer, Web
 Tags: , , , , , , ,

Geniale Comics vom xkcd-Blog

Auf ein Hinweis hin möchte ich euch diese drei Comics (und den Blog selbst) nicht enthalten! =)

 

Have fun! =)

Kommentare [0]
Geschrieben am 03.10.2009 von admin in Computer, Web
 Tags: , , ,

ASCII/ANSI-Designs

Hier wieder mal einen kleinen Eintrag!

Inspiriert von der Website Renegadearmy, vor allem von ihrem älteren Design hab ich ein paar kleine ASCII bzw. ANSI Designs erstellt. Sieht einfach aus, benötigt jedoch noch recht viel Zeit.

Da die Desings den Blog sprengen würde, hab ich sie seperat “gelagert”:

Designs

Vielleicht werden es einmal noch mehr! Ihr könnt die Designs freiverwenden und wenn ihr freundlich sein wollt, dann könnt ihr das MyGate ja noch stehen lassen! =) Viel Spass damit!

Edit: Ich habe noch ein paar gemacht, jedoch sind nicht mehr alle Webdesigns sondern z.T. halt einfach ASCII-Art! And there will be more! =)

Kommentare [0]
Geschrieben am 30.09.2009 von admin in Computer, MyGate, Web
 Tags: , , , , ,

GIPP: Google Image PHP Parser

GIPP, ist mir eigentlich erst in den Sinn gekommen, als ich den Titel angeschaut habe…
Da ich die Suche für ein Covers von Filme etwas schneller machen wollte, habe ich nach einem GIPP gesucht. Hab auch einen gefunden, doch tollerweise benützt dieser cURL und naja dies kann man ja auch ein wenig anderst lösen, vorallem wenn cURL nicht installiert ist.
Darum hab ich dann meine eigene Funktion, bzw. GIPP geschrieben.

<?php

function googleImageResults($search,$start=0)
{
 $html = file_get_contents("http://images.google.ch/images?q=".htmlspecialchars(str_replace(" ","+",$search))."&start=".$start);
 //echo $html;
 preg_match_all('/dyn.setResults((.+));/', $html, $matches);

 $html = $matches[0][0];

 // Special chars decode
 $html = str_replace("\x3d","=",$html);
 $html = str_replace("\x26","&",$html);
 $html = str_replace("\x3c","<",$html);
 $html = str_replace("\x3e",">",$html);

 // Replace Useless Things
 $html = str_replace("dyn.setResults(","",$html);
 $html = str_replace(");","",$html);
 $html = str_replace("[]","",$html);
 $html = str_replace("[[","[",$html);
 $html = str_replace("]]","]",$html);
 $html = str_replace(",,""","",$html);

 // Loading in a Array
 $images = array();
 $imgs = array();
 $img = array();

 while(strpos($html,"[")!==FALSE)
 {
  $start = strpos($html,"[");
  $end = (strpos($html,"],")===FALSE?strpos($html,"]"):strpos($html,"],"));
  $image = substr($html,$start+1,$end-$start-1);
  $images[] = $image;
  $html = str_replace("[".$image."]","",$html);
 }

 foreach($images as $image)
 {
  $image = str_replace('","',"n",$image);
  $image = str_replace('"',"",$image);

  $img = explode("n",$image);
  //echo $image;

  $temp = array();

  $temp['searchurl'] = $img[0];
  $temp['searchhost'] = $img[14];
  $temp['searchlanguage'] = substr($img[0],strpos($img[0],"&hl=")+4,strpos($img[0],"&",strpos($img[0],"&hl=")+1)-(strpos($img[0],"&hl=")+4));
  $temp['searchstart'] = substr($img[0],strpos($img[0],"&start=")+7,strpos($img[0],"&",strpos($img[0],"&start=")+1)-(strpos($img[0],"&start=")+7));
  $temp['searchum'] = $img[15];
  $temp['searchcachid'] = $img[2];
  $temp['searchusg'] = substr($img[0],strpos($img[0],"&usg=")+5,strpos($img[0],"&",strpos($img[0],"&usg=")+1)-(strpos($img[0],"&usg=")+5));

  $temp['fileurl'] = $img[3];
  $temp['fileheight'] = substr($img[0],strpos($img[0],"&h=")+3,strpos($img[0],"&",strpos($img[0],"&h=")+1)-(strpos($img[0],"&h=")+3));
  $temp['filewidth'] = substr($img[0],strpos($img[0],"&w=")+3,strpos($img[0],"&",strpos($img[0],"&w=")+1)-(strpos($img[0],"&w=")+3));
  $temp['filesize'] = substr($img[0],strpos($img[0],"&sz=")+4,strpos($img[0],"&",strpos($img[0],"&sz=")+1)-(strpos($img[0],"&sz=")+4));
  $temp['fileformat'] = $img[10];
  $temp['fileinfo'] = $img[9];

  $temp['thumbnailurl'] = $img[14]."?q=tbn:".$img[2].$img[3];
  $temp['thumbnailwidth'] = $img[4];
  $temp['thumbnailheight'] = $img[5];

  $temp['host'] = $img[11];
  $temp['hostsite'] = substr($img[0],strpos($img[0],"&imgrefurl=")+11, strpos($img[0],"&",strpos($img[0],"&imgrefurl=")+1)- (strpos($img[0],"&imgrefurl=")+11));
  $temp['hostkeywords'] = $img[6];

  $temp['nothing1'] = $img[1];
  $temp['nothing2'] = $img[7];
  $temp['nothing3'] = $img[8];
  $temp['nothing4'] = $img[12];
  $temp['nothing5'] = $img[13];

  $imgs[] = $temp;
 }
 return $imgs;
}

?>

Nicht gerade der beste Schreibstil, aber ich komm irgendwie nie so richt mit regulären Ausdrücken klar, darum das ganze strpos/substr Zeugs…
Am Ende erhält man ein normales Index-Array mit mehreren Assoziierten-Arrays.
Die „nothing“ Inhalte enthalten normalerweise nichts, aber vielleicht findet jemand mehr darüber raus…
Die „unknow“ Inhalte hab ich bis jetzt einfach nicht zuordnen können. Aber da gibt es auch noch weitere Sachen, bei denen ich den Sinn noch nicht begriffen habe (z.B. ’searchum‘ oder ’searchusg‘).

Also für allen nicht so experimentier freudigen:

<?php

include("fileMitDer_googleImageResults_Funktion");

$images = googleImageResults("James Bond");
$jamesBondBild = $images[0]['fileurl'];

$images2 = googleImageResults("James Bond",21);
$jBBOffSet21 = $images[0]['fileurl'];

?>

So ich hoffe man kommt nach und das Script findet irgendwo seinen Zweck!

Sorry dass es nicht so schön dargestellt wird…

Kommentare [0]
Geschrieben am 29.07.2009 von admin in Computer, Web

Mein SQL

PHP ist schon toll. MySQL natürlich auch! Doch ist es nicht mühsam, wenn man eine Tabelle mit ~1000 Einträgen hat und merkt, dass man in einem Feld etwas vergessen hat wegzulassen?

Die “normale” Lösung wäre nun, ein PHP Skript zu schreiben, welches die Tabelle komplett runterlädt, denn Fehler mit PHP-Funktionen reparieren und denn wieder alles in die Tabelle einfügen. Nach mehrmaligem wiederholen von solch einer Prozedur wird man bald einmal nach einem besseren Weg suchen … und in SQL selbst finden!

Mein Problem:

Wie es ist:

Sean Connery::James Bond
Skinner::imdb:nm0000125
Ursula Andress::Honey Ryder
Skinner::imdb:nm0000266
Joseph Wiseman::Dr. No
Skinner::imdb:nm0936476
Jack Lord::Felix Leiter
Skinner::imdb:nm0520437

Wie es sein sollte:

Sean Connery::James Bond::imdb:nm0000125
Ursula Andress::Honey Ryder::imdb:nm0000266
Joseph Wiseman::Dr. No::imdb:nm0936476
Jack Lord::Felix Leiter::imdb:nm0520437

Meine Lösung in SQL:

Anzeigen (zur Kontrolle):

SELECT REPLACE([spalten_name],’[such_string]’,’[ersetz_string]’) FROM [tabelle];
z.B. SELECT REPLACE(actors,’nSkinner‘,“) FROM videodb_videodata;

Ersetzten (wenn Kontrolle OK):

UPDATE [tabelle] SET [spalten_name] = REPLACE([spalten_name],’[such_string]’,’[ersetz_string]’);
z.B. UPDATE videodb_videodata SET actors = REPLACE(actors,’nSkinner‘,“);

Nun gut dieses Problem wäre gelöst! Doch Moment mal, da hab ich in jedem Feld noch einen Zeilenumbruch, welcher nicht dort sein sollte. Doch zum Glück besitzt SQL auch noch weitere praktische Funktionen!

Entfernen eines Zeichen am Schluss

Wie es ist:


Maxwell Shaw::Communications Foreman (uncredited)::imdb:nm0789871
Bob Simmons::James Bond in Gunbarrel Sequence (uncredited)::imdb:nm0799689
  

Wie es sein soll:


Maxwell Shaw::Communications Foreman (uncredited)::imdb:nm0789871
Bob Simmons::James Bond in Gunbarrel Sequence (uncredited)::imdb:nm0799689

   = nichts, soll nur Umbruch veranschaulichen

Lösung

Anzeigen (zur Kontrolle):

SELECT SUBSTR([spalten_name],[start_pos_beginnt_1],{[länge]}) FROM [tabelle];
z.B. SELECT SUBSTR(actors,1,LENGTH(actors)) FROM videodb_videodata;

Ersetzten (wenn Kontrolle OK):

UPDATE [tabelle] SET [spalten_name] = SUBSTR([spalten_name],[start_pos_beginnt_1],{[länge]});
z.B. UPDATE videodb_videodata SET actors = SUBSTR(actors,1,LENGTH(actors));

Nun für ein wenig mehr erfahrene Personen war dies nun wohl offensichtlich, aber vielleicht kann es ja au anderen von Nutzen sein.

Eine kurze Übersicht über die verschiedenen Befehle in SQL findet man hier (English).
Die Probleme sind aus dem Arbeiten mit VideoDB [1] [2] [3] und eigenen Update Skripts entstanden.

[1] http://www.videodb.net/blog/
[2] http://sourceforge.net/projects/videodb/
[3] http://www.splitbrain.org/projects/videodb

Kommentare [0]
Geschrieben am 26.07.2009 von admin in Computer, Web
« vorherige Seite