PDA

Bekijk Volledige Versie : Gezocht: Programmeur



WilloW
02/02/07, 15:43
Heren,

Voor onze streaming media activiteiten zijn wij opzoek naar iemand die een proxy kan schrijven voor shoutcast.

Het idee is dat luisteraars die geen poorten open heeft staan alleen port80 toch kunnen luisteren via de proxy.

Zo iets als: http://s1.viastreaming.net/7600/

Mochten er mensen zijn die denken dit te kunnen maken laat het mij even weten via PM, wilco@eliveldnetworks.nl of 0543 788440

Swiftway-UK
02/02/07, 15:46
Wij zijn bezig met zo een applicatie, echter het werkt het fijnste als er ook vanuit de server side support hiervoor is, dat is dus een tip voor je.

gjtje
02/02/07, 15:48
Een standaard tcp tunnel voldoet niet?

WilloW
02/02/07, 15:54
Een standaard tcp tunnel voldoet niet?

Geen idee, Wil ook gewoon zo'n truukje hebben dat een stream bijvoorbeeld http://s1.viastreaming.net:7600 ook via port 80 te beluisteren is http://s1.viastreaming.net/cgi-bin/listen.pls?7600

QBell
04/02/07, 03:23
Bij de client hoeft poort xxx toch niet open te staan?
Het is shoutcast zend uit over het udp, dus alleen ontvangen...

Alleen de server zou een openstaande actieve poort moeten hebben.

correct me if im wrong

gjtje
05/02/07, 00:58
Inkomend hoeft de client niets open te hebben, maar tcp/poortvanshoutcastserver moet toch echt naar buiten toe mogen, anders is er niks om mee te verbinden.

Ik heb nu een eenvoudige tcp tunnel geschreven, als je wil kun je deze proberen en dan moeten we maar even kijken of en hoe dit is uit te werken tot het gewenste resultaat.

Het is geschreven in Java 5 en maakt gebruik van Java NIO wat niet veel meer betekent dan dat het native functies gebruikt voor een denderende performance. Shoutcast lijkt er prima over heen te gaan.

In principe zou elke tcp tunnel moeten voldoen voor de basis vereisten van het tunnelen over een alternatieve poort.

WilloW
05/02/07, 09:22
Inkomend hoeft de client niets open te hebben, maar tcp/poortvanshoutcastserver moet toch echt naar buiten toe mogen, anders is er niks om mee te verbinden.

Ik heb nu een eenvoudige tcp tunnel geschreven, als je wil kun je deze proberen en dan moeten we maar even kijken of en hoe dit is uit te werken tot het gewenste resultaat.

Het is geschreven in Java 5 en maakt gebruik van Java NIO wat niet veel meer betekent dan dat het native functies gebruikt voor een denderende performance. Shoutcast lijkt er prima over heen te gaan.

In principe zou elke tcp tunnel moeten voldoen voor de basis vereisten van het tunnelen over een alternatieve poort.


Graag heb namelijk nog niks gevonden

Aessence
05/02/07, 23:01
Even voor je gepluisd:


<?php
// SHOUTcast PROXY 1.0 by orionboji@hotmail.com
// This script proxy your SHOUTcast streaming from all ports on port 80 with PHP

echo $tenPercentOfFileInBytes;

// Begin modifiable

$streamToOpen = "213.251.167.173"; //IP
$port = "8670"; //PORT
$path = "/";

// End modifiable

header("Content-type: audio/mpeg");
$socket = fsockopen($streamToOpen,$port);

fputs($socket, "GET $path HTTP/1.0\r\n");
fputs($socket, "Host: $streamToOpen\r\n");
fputs($socket, "User-Agent: SHOUTcast PROXY/1.0\r\n");
fputs($socket, "Accept: */*\r\n");
fputs($socket, "Connection: close\r\n\r\n");

while (!feof($socket)) {
$buffer = fgets($socket, 4096);
echo $buffer;
}

$totalSize = 0;
for ($i=0; $i < $tenPercentOfFileInBytes; ) {
$buffer = fgets($socket);
$strSize = strlen($buffer);
$totalSize = $totalSize + $strSize;
echo "$strSize \n";
$i = $i + $strSize;
echo $buffer;
}

fclose($socket);
?>

Deze is vrijwel gelijk, met een paar uitzonderingen. Zou beide proberen en te zien waarop je het beste kan bouwen.



<?php
$streamname = "64.236.34.141"; // put in whatever stream you want to play
$port = "80"; // put in the port of the stream
$path = "/stream/1022"; // put in any extra path, this is usually just a /

header("Content-type: audio/mpeg");
$sock = fsockopen($streamname,$port);

fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $streamname\r\n");
fputs($sock, "User-Agent: WinampMPEG/2.8\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");


fpassthru($sock);

fclose($sock);
$streamname = "64.236.34.141"; // put in whatever stream you want to play
$port = "80"; // put in the port of the stream
$path = "/stream/1022"; // put in any extra path, this is usually just a /

header("Content-type: audio/mpeg");
$sock = fsockopen($streamname,$port);

fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $streamname\r\n");
fputs($sock, "User-Agent: WinampMPEG/2.8\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");


fpassthru($sock);

fclose($sock);
?>

Overigens heb ik de "Credit" laten staan bij de eerste, maar deze komt uit een (Italiaanse) forum post...

De vaste waardes kan je wijzigen door dynamische variabelen. Het principe is erg eenvoudig; het PHP script opent een connectie naar de stream en forward deze naar de client.

George/

WilloW
06/02/07, 11:16
Even voor je gepluisd:


<?php
// SHOUTcast PROXY 1.0 by orionboji@hotmail.com
// This script proxy your SHOUTcast streaming from all ports on port 80 with PHP

echo $tenPercentOfFileInBytes;

// Begin modifiable

$streamToOpen = "213.251.167.173"; //IP
$port = "8670"; //PORT
$path = "/";

// End modifiable

header("Content-type: audio/mpeg");
$socket = fsockopen($streamToOpen,$port);

fputs($socket, "GET $path HTTP/1.0\r\n");
fputs($socket, "Host: $streamToOpen\r\n");
fputs($socket, "User-Agent: SHOUTcast PROXY/1.0\r\n");
fputs($socket, "Accept: */*\r\n");
fputs($socket, "Connection: close\r\n\r\n");

while (!feof($socket)) {
$buffer = fgets($socket, 4096);
echo $buffer;
}

$totalSize = 0;
for ($i=0; $i < $tenPercentOfFileInBytes; ) {
$buffer = fgets($socket);
$strSize = strlen($buffer);
$totalSize = $totalSize + $strSize;
echo "$strSize \n";
$i = $i + $strSize;
echo $buffer;
}

fclose($socket);
?>

Deze is vrijwel gelijk, met een paar uitzonderingen. Zou beide proberen en te zien waarop je het beste kan bouwen.



<?php
$streamname = "64.236.34.141"; // put in whatever stream you want to play
$port = "80"; // put in the port of the stream
$path = "/stream/1022"; // put in any extra path, this is usually just a /

header("Content-type: audio/mpeg");
$sock = fsockopen($streamname,$port);

fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $streamname\r\n");
fputs($sock, "User-Agent: WinampMPEG/2.8\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");


fpassthru($sock);

fclose($sock);
$streamname = "64.236.34.141"; // put in whatever stream you want to play
$port = "80"; // put in the port of the stream
$path = "/stream/1022"; // put in any extra path, this is usually just a /

header("Content-type: audio/mpeg");
$sock = fsockopen($streamname,$port);

fputs($sock, "GET $path HTTP/1.0\r\n");
fputs($sock, "Host: $streamname\r\n");
fputs($sock, "User-Agent: WinampMPEG/2.8\r\n");
fputs($sock, "Accept: */*\r\n");
fputs($sock, "Icy-MetaData:1\r\n");
fputs($sock, "Connection: close\r\n\r\n");


fpassthru($sock);

fclose($sock);
?>

Overigens heb ik de "Credit" laten staan bij de eerste, maar deze komt uit een (Italiaanse) forum post...

De vaste waardes kan je wijzigen door dynamische variabelen. Het principe is erg eenvoudig; het PHP script opent een connectie naar de stream en forward deze naar de client.

George/

Thanks
Heb het nog niet werkend maar dit is wel precies wat ik zocht/zoek