Potřebuji, aby jsem se mohl dívat na živý stream, který běží za routerem s dynamickou ip.
-
Co potřebuji:
-
Na routeru je třeba nastavit přesměrování portu na streaming server.
-
Potom je třeba někde mít trochu webového prostoru s podporou PHP.
-
JW player – WMV nebo FLV
-
Streaming server – Win media enkoder nebo např Adobe Flash Live – obojí je zdarma
-
-
Jak to funguje:
-
Na enkoderu se jednou za čas (třeba 5 min) obnovuje webová stránka např. s adresou mujzivat.wz.cz/nactienc.php?ID=player1
-
tato stránka uloží do douboru „player-player1.txt“ (plyer-ID.txt) adresu stream serveru ve tvaru mms:ipAdresa:port (dá se snadno změnit) * Potom se stačí připojit na mujzivak.wz.cz a automaticky se načte stránka s přehrávačem (index.php), který dostane adresu streamu ze souboru „player-player1.txt“ * Samozřejmě jde, aby se i port zapisoval podle zadaných parametrů v adrese či aby se načetl přehrávač podel parametru ID, např. mujzivak.wz.cz/index.php?ID=player1
-
-
index.php
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> </head> <body> <H3>Přehrávač</H3> <?php $File = "player-player1.txt"; $fh = fopen($File, 'r'); $Stream = fread($fh, filesize($File)); fclose($fh); ?> <div name="mediaspace" id="mediaspace"></div> <script type='text/javascript' src="silverlight.js"></script> <script type='text/javascript' src="wmvplayer.js"></script> <script type="text/javascript"> var cnt = document.getElementById("mediaspace"); var src = 'wmvplayer.xaml'; var cfg = { file:'<?php echo $Stream; ?>', image:'preview.jpg', height:'240', width:'440' }; var ply = new jeroenwijering.Player(cnt,src,cfg); </script> </body> </html>
nactienc.php
<?PHP if ( isset($_SERVER["REMOTE_ADDR"]) ) { $ip=$_SERVER["REMOTE_ADDR"]; } else if ( isset($_SERVER["HTTP_X_FORWARDED_FOR"]) ) { $ip=$_SERVER["HTTP_X_FORWARDED_FOR"]; } else if ( isset($_SERVER["HTTP_CLIENT_IP"]) ) { $ip=$_SERVER["HTTP_CLIENT_IP"]; } $datum = StrFTime("%d.%m.%Y %H:%M:%S", Time()); $log="log.txt"; # log soubor - Must CHMOD to 666 $ID = $_GET['ID'];#$ip; #$_POST['theformfieldname']; # Form must use POST. if it uses GET, use the line below: #$text = $_GET['theformfieldname']; #POST is the preferred method # $fp = fopen ($log, "a"); # w = write to the file only, create file if it does not exist, discard existing contents if ($fp) { fwrite ($fp, $ID." ".$ip." ".$datum."\n"); fclose ($fp); echo ("log Ok\n"); } else { echo ("log Problem\n"); } $fp = fopen ("player-".$ID.".txt", "w"); # w = write to the file only, create file if it does not exist, discard existing contents if ($fp) { fwrite ($fp, "mms://".$ip.":8888"); #zapise adresu na prehravac mms:// :8888 fclose ($fp); echo ("playlist ".$ID." zapsan\n"); } else { echo ("playlist ".$ID." problem\n"); } ?>