Video Streaming - möglichst sicher!?

Da_Chris

Erfahrenes Mitglied
Hallo ich mach mir momentan Gedanken wie man am besten Videos streamen könnte ohne das der Benutzer diese speichern kann.
Eine Idee die mir kam war folgende:
Einen Stream per FLV.
Klar auch FLV Dateien lassen sich auslesen.
Aber wie sieht das aus wenn direkt nach dem abspielen noch eine zweite FLV Datei abgespielt würde mit exakt dem gleichen Dateinamen aber nur 1 sec Laufzeit.
Sozusagen eine Leere Videodatei.
Würde das nicht die erste Überschreiben?
Das wäre zumindestens für User die das nicht kennen eine Hürde oder nicht?
 
Hallo,

also es gibt keine Möglichkeit sich komplett zu schützen. Aber man kann es ein bisschen eindämmen, indem man Hotlinking verhindert und nur eine bestimmte Anzahl von Frames ausliefert. Trotzdem kann man mit den Orbitdownloader beispielsweise das Video mitschneiden. Dabei ist es eigentlich egal in welchen Format das Video gestreamt wird.
Hotlinking verhindern geht wunderbar mit lighttp und den Modul sec_download.

Um nur bestimmte Frames auszuliefern könnte eine Möglichkeit so aussehen.

PHP:
$path = '/Videoverzeichnis/';


$seekat = $_GET["position"];
$filename = htmlspecialchars($_GET["file"]);
$ext=strrchr($filename, ".");
$file = $path . $filename;

function getFile(){
if((file_exists($file)) && ($ext==".flv") && (strlen($filename)>2) && (!eregi(basename($_SERVER['PHP_SELF']), $filename)) && (ereg('^[^./][^/]*$', $filename)))
{
        header("Content-Type: video/x-flv");
        if($seekat != 0) {
                print("FLV");
                print(pack('C', 1 ));
                print(pack('C', 1 ));
                print(pack('N', 9 ));
                print(pack('N', 9 ));
        }
        $fh = fopen($file, "rb");
        fseek($fh, $seekat);
        while (!feof($fh)) {
          print (fread($fh, filesize($file))); 
        }
        fclose($fh);
}
	else
{
        print("ERORR: The file does not exist"); }
}

Gruss
 
Zuletzt bearbeitet von einem Moderator:
Hi ja das ist auch interessant. Zur verlinkung: Hatte eh an dynamische Links gedacht aber was hälst du von meiner Idee?
 
Wenn du immer nur einzelne Frames auslieferst, ist im Browsercache automatisch immer nur der letzte Frame drin(also nur ein kleiner Teil des Video). Nun liegt es an dir deine Video so zu schneiden das am Ende nichts mehr kommt.

Gruss
 
Ah alles klar das würde natürlich helfen.
Aber könnte es da nicht passieren wenn ich einzelne frames liefere das user mit geringerer Bandbreite bei Videos mit hoher qualität schwierigkeiten bekommen?
Ach und würdest du mir noch den code ein wenig erläutern wenn ich ehrlich bin könnt ich jetzt nicht sagen wie man es anwendet bzw. bei einigen punkten hab ich keinen plan wozu das gut sein soll.
Ich vermute mal das ist die php datei die mein flashplayer (embedded) ansprechen soll oder?
 
Die Bandbreite des users spielt dabei keine Rolle. Hier kannst du es mal nachlesen was das Skript macht. Entscheidend ist die Get Variable "position", mit ihr wird die Position ab wo das Video starten soll definiert.
 
So nachdem ich jetzt einige Zeit über dem Problem gebrütet habe und am drumherum weitergearbeitet habe komme ich langsam in die richtung des abspielens der Videos.
Leider dürfen wir aus rechtlichen Gründen die *.wmv Dateien nicht verändern.
Die Frage ist kann man das dateiformat mit PHP on the fly ändern?
Also nur im Abspielvorgang?
Die Resource bleibt ja *.wmv und es wird keine Videodatei in einem anderen Format angelegt aber könnte man nicht die Datei mit PHP einlesen und in einem anderen Format ausgeben? Oder braucht das zu viel performance?
Wenn das ginge was meint ihr ist besser *.flv oder das Real Streaming Media Format?
 
So nachdem ich jetzt einige Zeit über dem Problem gebrütet habe und am drumherum weitergearbeitet habe komme ich langsam in die richtung des abspielens der Videos.
Leider dürfen wir aus rechtlichen Gründen die *.wmv Dateien nicht verändern.
Die Frage ist kann man das dateiformat mit PHP on the fly ändern?
Also nur im Abspielvorgang?
Die Resource bleibt ja *.wmv und es wird keine Videodatei in einem anderen Format angelegt aber könnte man nicht die Datei mit PHP einlesen und in einem anderen Format ausgeben? Oder braucht das zu viel performance?
Wenn das ginge was meint ihr ist besser *.flv oder das Real Streaming Media Format?

Hallo,

in deinen Fall wäre die beste Lösung, ein Windowsmediaserver und Encoder(kostenlos). Damit kannst du das Video als Stream anbieten, es wird nicht verändert und du kannst es in deine php Seiten einbinden.

Gruss
 
Zurück