[php] icecast mp3source maken

Pagina: 1
Acties:

  • DeuTeRiuM
  • Registratie: December 1999
  • Laatst online: 04-09 21:41

DeuTeRiuM

http://koelkast.net/

Topicstarter
Hola,

ik ben bezig met een techno/hardstyle webcast op te zetten.. Maar ik ben echt niet tevreden met de icecast/shoutcast source software voor linux. Ices is onhandelbaar.. je *KAN* er een playlist handler inbouwen, maar dat moet met perl. Ik heb niet genoeg kennis van perl om dat voor elkaar te krijgen. Het probleem van de meeste source software is dat ze maar 1 stream op 1 bitrate starten, en ik wil 1 playlist op meerdere bitrates starten.

Ik heb genoeg kennis van php in huis, dus ik dacht.. weet je wat? We maken 't zelf wel :) Dan kan ik er alles instoppen wat ik nodig heb. Maar nu kan ik nergens vinden wat ik naar icecast moet sturen, voor dingen als de titel, bitrate, wel public etc. etc. Iemand een idee waar ik een lijst met headers kan vinden die je naar icecast moet sturen? Of iemand een goed voorbeeld van (php)software waarin ik die info kan vinden? Die headers die je aan het begin moet sturen zijn het enige probleem, hoe ik moet streamen enzo, dat lukt wel.. beetje prutsen met bits en lame enzo.. ;)
alvast bedankt.

[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Check dit topic op het Shoutcast support forum voor een berg links: SHOUTcast Technical Support Links and Information

En hier kan je een PHP script vinden voor "betere" on-demand audio dan de Shoutcast on-demand feature. Ook handig om te bestuderen misschien: Mp3 Toolbox

On track


  • DeuTeRiuM
  • Registratie: December 1999
  • Laatst online: 04-09 21:41

DeuTeRiuM

http://koelkast.net/

Topicstarter
YES!
danku danku.. ik heb 't werkende!
PHP:
1
<?$header .= "4nXZKnAe\r\n";$header .= "icy-name:Unnamed Server\r\n";$header .= "icy-genre:Unknown Genre\r\n";$header .= "icy-pub:1\r\n";$header .= "icy-br:56\r\n";$header .= "icy-url:http://www.shoutcast.com\r\n";$header .= "icy-irc:%23shoutcast\r\n";$header .= "icy-icq:0\r\n";$header .= "icy-aim:N%2FA\r\n\r\n";?>

[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found


  • DeuTeRiuM
  • Registratie: December 1999
  • Laatst online: 04-09 21:41

DeuTeRiuM

http://koelkast.net/

Topicstarter
Goed, nu heb ik dat gefixed.. en kan ik intussen ook mp3tjes streamen.. da's wel vet :) Alleen nu komt het gedeelte van reencoden, dus een 192kbit mp3tje omzetten naar 128kbit voor de stream. Dat kan dus met lame, ik ben ook al zover dat lame het mp3tje daadwerkelijk hercodeert naar de bitrate die ik wil..
commandline ziet er zo uit:
/usr/local/bin/lame --mp3input -b 128 -f bla.mp3 - 2>/dev/null

dan spuugt ie de binary zooi uit op de console, das wel handig, want dat kan ik gebruiken met fpassthru, of exec etc..
Het probleem met exec is dat ie eerst het liedje helemaal hercodeeerd, voorat ie verder gaat in het script. fpassthru print alles als een idioot uit heh.. Ik wil dus zeg maar globaal iets als dit:
PHP:
1
<?while($bits = "lameexecutenhier") {   fputs($sock, $bits);}?>

in perl doen ze het zo:
code:
1
2
3
4
5
6
7
8
my $lamestr = "$lame --mp3input -f -b $stream_bitrate \"$song\" -";
$lamestr .= ' 2>/dev/null';
$lamestr .= ' |';
open(SONG, $lamestr);

while ( ($bytes = sysread(SONG, $buffer, 4096 )) > 0 ) {
 (code hier)
}

is *zoiets* mogelijk? Dus het mp3tje al uitlezen voordat het gehercodeerd is..?

[04:53:17][roel@roel:~]$ sleep
bash: sleep: command not found