Nahmd,
Potřeboval jsem řešení pro stream WMA "on the fly, aby bylo OGG stream.
Skript v cestě za spustitelné programy místě chytit PHP skriptu ve webovém serveru a připojit do IceCast2 Přidat konfigurace. Různé cesty musí být přizpůsobeny Možná.
Bohužel, v současné době pouze naslouchat jeden Internerradio, že proud. Vlastně, to může vytvořit tolik, ale bohužel skončil první, které již dostává proud, konverze 
Co je zapotřebí, je následující:
- mplayer
- IceCast2
- oggenc
- oggfwd
- php
Skript pro konverzi
# / Bin / sh
$PATH :/usr/ local /bin $ Export PATH = PATH: / usr / local / bin
STREAM = "mms: / / your.radio.fm / stream.wma"
set-e
CLIENT = 0
"$2" != "" ] ; then if ["$ 2"! = ""] pak
CLIENT = 2 dolary
fi
"$3" != "" ] if ["$ 3"! = ""]
pak
STREAM = 3 dolary
fi
echo $STREAM | md5sum | cut -d ' ' -f1 ) $ MD5 = (echo $ STREAM | md5sum | cut-d''-f1)
TEMP = / tmp / chumbybridge / $ MD5
] || mkdir -p $TEMP [-D $ TEMP] | | mkdir-p $ TEMP
/mplayer.fifo FIFO_MPLAYER = $ TEMP / mplayer.fifo
# FIFO_OGGENC = $ TEMP / oggenc.fifo
/mplayer.log LOG_MPLAYER = $ TEMP / mplayer.log
/oggenc.log LOG_OGGENC = $ TEMP / oggenc.log
/oggfwd.log LOG_OGGFWD = $ TEMP / oggfwd.log
/mplayer.pid PID_MPLAYER = $ TEMP / mplayer.pid
/oggfwd.pid PID_OGGFWD = $ TEMP / oggfwd.pid
"$1" = "start" ] pak if ["$ 1" = "start"]
pak
>> $LOG_MPLAYER echo "$ připojen klient">> $ LOG_MPLAYER
] && echo "Run $0 stop first!" && exit [E-$ FIFO_MPLAYER] & & echo "Run 0 dolarů stop první!" & & Konec
|| exit 1 mkfifo $ FIFO_MPLAYER | | exit 1
"$FIFO_MPLAYER" >> $LOG_MPLAYER 2 >& 1 < /dev/null & mplayer-nocache $ STREAM-quiet-ao pcm: file = "$ FIFO_MPLAYER">> $ LOG_MPLAYER 2> & 1 </ dev / null &
echo $! > $ PID_MPLAYER
spát 0,3
-o – 2 >> $LOG_OGGENC | oggfwd localhost 8000 hackme /radio1.ogg >> $LOG_OGGFWD 2 >& 1 & oggenc-Q-q 1 dolar-FIFO_MPLAYER o - 2>> $ LOG_OGGENC | oggfwd localhost 8000 hackme / radio1.ogg>> LOG_OGGFWD 2 dolary> & 1 &
echo $! > $ PID_OGGFWD
spát 0,2
"$1" = "stop" ] elif ["$ 1" = "stop"]
pak
echo ">>> Zastavování chumstream hráče <<<"
cat $PID_MPLAYER ) 2 > /dev/null && \ kill $ (cat $ PID_MPLAYER) 2> / dev / null & & \
cat $PID_OGGFWD ) 2 > /dev/null && \ kill $ (cat $ PID_OGGFWD) 2> / dev / null & & \
|| \ rm-rf $ TEMP | | \
echo "Nelze zastavit všechny procesy, prosím, podívejte se do $ TEMP a opravit ji ručně"
jiný
echo "Použití:"
echo "$ 0 start [client_id] [URL]"
echo "$ 0 stop"
fi
Icecast konfigurace
<mount>
<mount-name> / radio.ogg </ mount-name>
<max-listeners> 10 </ max-posluchači>
<burst-size> 65 536 </ praskla-velikost>
<hidden> 0 </ hidden>
> <authentication type = "url">
value = "http://localhost/radio.php" /> <option name = value = "mount_add" /> "http://localhost/radio.php"
value = "http://localhost/radio.php" /> <option name = value = "mount_remove" /> "http://localhost/radio.php"
value = "http://localhost/radio.php" /> <option name = value = "listener_add" /> "http://localhost/radio.php"
value = "http://localhost/radio.php" /> <option name = value = "listener_remove" /> "http://localhost/radio.php"
'Autentizačního>
<Mount />
Php Start / Stop části
Php
$_POST [ "action" ] == 'listener_add' ) { if ($ _POST ["action"] == 'listener_add') (
( "/usr/local/bin/chumstream.sh start " . $_POST [ "client" ] , $result ) ; $ Tmp =
exec ("/ usr / local / bin / start chumstream.sh. $ _POST [" klient "], $ result); ( $_POST [ "action" ] == 'listener_remove' ) { ) Else if ($ _POST ["action"] == 'listener_remove') (
( "/usr/local/bin/chumstream.sh stop " . $_POST [ "client" ] , $result ) ; $ Tmp =
exec ("/ usr / local / bin / chumstream.sh stop". $ _POST ["klient"], $ result); )
'icecast-auth-user: 1′ ) ; hlavičky ('Icecast-auth-uživatele: 1'); 'icecast-auth-message: OK' ) ; header ('Icecast-auth-zpráva: OK'); ?>