.MOD Videofiles mit VLC (VideoLan Mediaplayer) abspielen

Viele der aktuellen digitalen Videokameras speichern ihre Videos auf SD-Karten im .mod Format.

Leider kann der VLC Mediaplayer diese nicht direkt abspielen, ohne dass die Datei als .mpg umbenannt wird. Das kann mitunter lästig sein, insbesondere wenn mehrere Files schnell angesehen werden müssen.

Die Ursache scheint daran zu liegen, dass die Dateiendung .mod auch für ein Audioformat verwendet wird. Die Dateiendung wird daher vom VLC als Audiodatei interpretiert und somit kann das Video nicht abgespielt werden.

Wer auf .mod Audiofiles verzichten kann, benennt im Ordner „plugins“ der VLC Installation die Datei libmod_plugin.dll zu libmod_plugin.dl_ um und starten den VLC neu. Nun sollte die Datei als Video interpretiert werden können – welche Auswirkungen oder Beschädigungen das mit sich ziehen kann, weiß ich nicht, also alles ohne Garantie/Gewähr. Bei mir hat es so geklappt.

Javascript Image onload

Beispiel:
Beim Klick auf einen Link soll sich ein Overlay öffnen, in dem ein Bild angezeigt wird.

Das Overlay soll sich öffnen und zunächst eine „Loading“ Animation zeigen, so lange, bis das eigentliche Bild geladen ist und angezeigt werden kann.

Das Javascript:
loadImageObj = new Image();
loadImageObj.onload = function () {
/* nachdem das loading.gif geladen wurde, das Overlay anzeigen */
imageObj = new Image();
imageObj.onload = function () {
/* nachdem das gewünschte Bild geladen wurde,
das loading.gif gegen das gewünschte Bild austauschen */
};
imageObj.src = 'gewuenschtesbild.jpg';
};
loadImageObj.src = 'loader.gif';

Hinweis: Besonders wichtig ist, dass die Bild-Src erst nach der onload() Definition gesetzt wird, da sonst das Bild geladen wird, bevor das onload-Event definiert wurde! Je nach Browser kann dies sonst zu Problemen führen.

Nachtrag: Wenn das loading.gif ein (loop) animiertes Bild ist, führt dies im Internet-Explorer offensichtlich dazu, dass jeweils mit Ende, bzw. Beginn des neuen Loops das onload Event erneut ausgeführt wird, was zu einer Endlosschleife führt, das Overlay kann also nicht mehr geschlossen werden, da es direkt erneut geöffnet wird. In diesem Fall ist es wohl einfacher auf das onload für das loading.gif zu verzichten.

PHP Locale/Zeitzone setzen

Folgende Codes wurde unter PHP 5.2.x getestet.

Setzen der Standard Zeitzone:
date_default_timezone_set('Europe/Berlin');

Ausgeben aller installierten Locales:
ob_start();
system('locale -a');
$str = ob_get_contents();
ob_end_clean();
var_dump(split("\\n", trim($str)));

Setzen einer Locale:
setlocale(LC_ALL, 'de_DE.ISO8859-15', 'de_DE.ISO8859-1', 'de_DE');
setlocale(LC_ALL, 'de_DE.UTF-8');

Ob nun UTF-8 oder UTF8 gesetzt werden muss, scheint abhängig vom eingesetzten Server zu sein.
In meinem Test musste UTF-8 gesetzt werden. Weitere Infos unter: http://de.php.net/de/setlocale

„Schlechtes HTML ist teuer (und weitere Weisheiten)“

Eine – wie ich finde – sehr zutreffende Aussage von Jens Meiset ist folgende:

„HTML lernen und schreiben ist nicht schwer, HTML beherrschen aber erfordert tiefgehende Kenntnisse und Erfahrung, um Irrelevantes auszulassen und Wartungsfallen zu umgehen.“
(Quelle: http://www.meiert.com/de/publications/articles/20090211/)

Damit wird wieder einmal bestätigt, dass es eben doch nicht nur darauf ankommt, HTML lesen und schreiben zu können! Echtes Fachwissen wird von den meisten Kunden leider erst erkannt, nachdem sie mindestens einmal schlechte Erfahrung gamacht haben und „auf’s Maul gefallen sind“. Dabei könnte es so einfach sein …

Zugriff auf eigene Bilder von fremder Domain sperren

Bilderklau ist im Internet leider allzu verbreitet! Wenn aber nicht einmal eine Kopie von dem Bild gemacht wird, sondern das Originalbild direkt im fremden Quelltext eingebunden wird, hat der Seitenbetreiber des Originalbildes nicht nur unnötig höheren Traffik, sondern auch noch eine höhere Serverlast zu bemängeln.

Um diese Art des Bilderklaus zu unterbinden, kann eine kleine RewriteRule z.B. in einer .htaccess Datei eingesetzt werden:

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?eigene-domain.tld(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png)$ [F,NC]

Was passiet hier nun?

Wenn der Referer leer ist, oder nicht die eigene Domain ist, dann wird der Zugriff auf alle Dateien mit der Endung .gif, .jpeg, .jpg oder .png verboten. Wenn leere Referer zugelassen werden sollen, einfach die erste Zeile mit RewriteCond entfernen (nicht jeder Browser sendet den Referer (korrekt) mit).

Weitere Domains zulassen

Um weiteren Domains den Zugriff auf die Dateien zu erlauben, muss diese einfach in einer RewriteCond hinzugefügt werden.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?eigene-domain.tld(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?andere-eigene-domain.tld(/)?.*$ [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?erlaubte-fremde-domain.tld(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png)$ [F,NC]

Andere Anwendungen/Dateiendungen

Die Liste der zu sperrenden Dateien, bzw. Dateiendungen kann einfach ergänzt werden (letzte Zeile, RewriteRule), so lassen sich dann z. B. auch PDF/DOC/etc. Dateien sperren.

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?eigene-domain.tld(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png|pdf|doc)$ [F,NC]

Nicht sperren, sondern alternativen Inhalt zeigen

Statt den Zugriff zu sperren, kann man auch einen alternativen Inhalt/alternative Datei ausliefern. Dies könnte z.B. ein anderes Bild/Dokument sein, in dem auf den Datenklau hingewiesen wird. Diese Methode spart zwar keinen Traffik oder Serverlast, kann aber auch wirksam sein ;)

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www\.)?eigene-domain.tld(/)?.*$ [NC]
RewriteRule .*\.(gif|jpe?g|png)$ /do-not-steal.gif [NC]