Aufbauen Deiner eigenen Video Community mit Lighttpd und FlowPlayer (Debian Etch) - Seite 2

7 Konfiguration von Lighttpd

Nun müssen wir lighttpds Hauptkonfigurationsdatei /etc/lighttpd/lighttpd.conf öffnen und darin die Module mod_secdownload und mod_flv_streaming aktivieren. Es ist sehr wichtig, dass mod_secdownload in der server.modules Zeile vor mod_flv_streaming aufgelistet ist. Als ich es andersrum versuchte, stellte ich fest, dass das Vorspulen im FlowPlayer nicht funktionierte!

vi /etc/lighttpd/lighttpd.conf


[...]
server.modules = ( "mod_access", "mod_alias", "mod_accesslog", "mod_fastcgi", # "mod_rewrite", # "mod_redirect", # "mod_status", # "mod_evhost", # "mod_compress", # "mod_usertrack", # "mod_rrdtool", # "mod_webdav", # "mod_expire", "mod_secdownload", "mod_flv_streaming", # "mod_evasive" ) [...]
In der gleichen Datei fügen wir ebenfalls folgende Konfiguration hinzu (Du kannst sie direkt am Ende von /etc/lighttpd/lighttpd.conf anfügen):
[...]
flv-streaming.extensions = ( ".flv" ) secdownload.secret = "somesecret" secdownload.document-root = "/var/videos/flv/" secdownload.uri-prefix = "/dl/" secdownload.timeout = 120
Bitte ersetze somesecret mit Deiner eigenen geheimen Zeichenfolge (Du kannst eine auswählen).

Was mod_secdownload bewirkt ist Folgendes: ein Webprogramm (z.B. ein PHP Skript) kann darin einen Link haben, der so aussehen könnte:

<uri-prefix>/<token>/<timestamp-in-hex>/<rel-path>

z.B.

/dl/d8a8cb150f7e5962f6a8443b0b6c6cc2/46c1d9f6/video.flv

wobei <token> ein MD5 ist von
  1. a secret string (user supplied)
  2. <rel-path> (starts with /)
  3. <timestamp-in-hex>
mod_secdownload wird dann den Link auf die entsprechende Datei im secdownload.document-root (welcher außerhalb des Dokumenten-Roots der Webseite ist) verweisen lassen und Zugriff auf diese Datei für secdownload.timeout Sekunden gewähren. Nach secdownload.timeout Sekunden ist der Link nicht mehr gültig und der Zugriff verweigert.

Nachdem wir FlowPlayer installiert haben, werden wir ein PHP Skript verwenden um die entsprechenden Video Links für mod_secdownload zu generieren.

Hier findest Du mehr Informationen zu mod_secdownload: http://trac.lighttpd.net/trac/wiki/Docs%3AModSecDownload
Vergiss nicht lighttpd nach Deinen vollzogenen Änderungen von /etc/lighttpd/lighttpd.conf neu zu starten:

/etc/init.d/lighttpd restart


8 Installation FlowPlayer

Gehe zu http://flowplayer.org/download und lade die neuste FlowPlayer Version in Dein /tmp Verzeichnis, z.B. wie folgt:

cd /tmp
wget http://belnet.dl.sourceforge.net/sourceforge/flowplayer/flowplayer-1.19.zip

FlowPlayer hat ein .zip Format, also müssen wir unzip installieren um es entpacken zu können:

apt-get install unzip

Danach können wir es entpacken:

unzip flowplayer-1.19.zip

Somit wird ein Verzeichnis namens flowplayer im /tmp Verzeichnis erstellt. Ich möchte dieses Verzeichnis im Dokumenten-Root meiner Video Webseite haben (/var/www), also verschiebe ich es dorthin:

mv flowplayer /var/www/


9 Konfiguration von FlowPlayer

FlowPlayer ist nun installiert. Wir müssen nur noch eine HTML Datei erstellen, mit der wir unser Video ansehen können. Dafür werde ich eine PHP Datei namens /var/www/flowplayertest.php erstellen, die alle Parameter enthält, um FlowPlayer im Browser des Benutzers zu starten und die außerdem gültige Video Links für mod_secdownload erstellt:

vi /var/www/flowplayertest.php


<?php
$secret = "somesecret"; $uri_prefix = "/dl/"; # filename $f = "/video.flv"; # current timestamp $t = time(); $t_hex = sprintf("%08x", $t); $m = md5($secret.$f.$t_hex); ?> <html> <head> <title>Flowplayer Test</title> </head> <body text="#000000" bgcolor="#FFFFFF" link="#FF0000" alink="#FF0000" vlink="#FF0000"> <object type="application/x-shockwave-flash" data="/flowplayer/FlowPlayerThermo.swf" width="320" height="256" id="FlowPlayer"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="/flowplayer/FlowPlayerThermo.swf" /> <param name="quality" value="high" /> <param name="scale" value="noScale" /> <param name="allowFullScreen" value="true" /> <param name="flashvars" value="config={videoFile: '<?php printf('%s%s/%s%s', $uri_prefix, $m, $t_hex, $f, $f); ?>', streamingServer: 'lighttpd', loop: 'false', useNativeFullScreen: true}" /> </object> </body> </html>
Es ist sehr wichtig, dass $secret den gleichen Wert wie secdownload.secret in /etc/lighttpd/lighttpd.conf hat. $uri_prefix und secdownload.uri-prefix müssen ebenfalls übereinstimmen. Wenn dies erfüllt ist, wird das obige Skript valide Links generieren. $f muss den Dateinamen des FLV Video enthalten, mit einem Slash (/) am Anfang. (Der Dateiname ist im obigen Beispiel hart-kodiert, aber natürlich kannst Du programmieren was immer Du willst um den Dateinamen zu generieren.)

Die <object></object> Zeile enthält die FlowPlayer Konfiguration. FlowPlayer hat verschiedene Designs (siehe http://flowplayer.org/documentation/quick+start); mir gefällt das FlowPlayerThermo Design am besten, also verwende ich das. Unser FLV Video hat eine Größe von 320x240px (siehe Kapitel sechs) und die Kontrollleiste des FlowPlayerThermo Designs hat eine Höhe von 16px. Daher definiere ich eine Weite von 320px und eine Höhe von (240 + 16 = 256)px. Wenn Du ein anderes Design verwendest, dann passe die Höhe entsprechend an.

In der <param name="flashvars"... Zeile können wir das Verhalten von FlowPlayer konfigurieren. Die wichtigste Einstellung ist die videoFile Einstellung (die von PHP im obigen Skript eingestellt wird), die den Pfad zum FLV Video definiert.

Eine weitere wichtige Einstellung ist streamingServer: 'lighttpd' was dazu führt, dass das Video durch lighttpds mod_flv_streaming Modul, das bessere Unterstützung für lange Videos hat, gestreamed wird.

Die anderen beiden Einstellungen (loop, useNativeFullScreen) sind in diesem Setup optional. Wenn Du jedoch useNativeFullScreen auf true setzt (fügt Unterstützung für native Flash 9 full screen mode hinzu), musst Du auch folgende Zeile

<param name="allowFullScreen" value="true" />

in die <object></object> Zeile einfügen und kannst dann nicht

<param name="wmode" value="transparent" />

verwenden.

Um mehr über alle Optionen zu erfahren, die Du in der <param name="flashvars"... Zeile verwenden kannst, sieh Dir http://flowplayer.org/config/variables an.

Jetzt wird es Zeit unsere Einstellungen zu testen. Richte Deinen Browser auf http://192.168.0.100/flowplayertest.php oder http://server1.example.com/flowplayertest.php und Dein Video sollte im Browser gestartet werden (mit Sound):


So sieht der Flash 9 Full Screen Modus aus:

10 Links

3 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: Donsebarone

Hi, erstmal danke für dieses klasse How To ;-)
Ich hätte da noch eine Frage, --> und zwar ist es möglich eine art subtitel oder ein Wasserzeichen so wie das von FlowPlayer mit reinzu encoden? oder villeicht halt sogar dieses FlowPlayer zeichen zu entfernen ^^ ... würde mich über eine Antwort sehr freuen ;-)


Von: Donsebarone

ok das mit dem Wasserzwichen .. dafür muss man sich ne Lizens holen ;-) hab ich nun gelesen.
Gibt es zufällig jemanden der ein solches System zur verfügung stellen könnte, womit man Videos vom Rechner und auch von URL auf den Server laden kann, und die dann auch gleich encodet werden!?!?!


Von: Eyoob

Danke für deinen super howto, meine Frage nun, wie kann ich einen Thumbnail erstellen? Ist ja bei videos auch wichtig, wenn man diese auf den Startseiten verlinkt :) danke schonmal
für deine Antwort.

Grüße

Eyüp