Nahmd,
Χρειαζόμουν μια λύση σε ένα ρεύμα WMA "on the fly να καταστεί ένα ρεύμα OGG.
Η δέσμη ενεργειών σε ένα μονοπάτι για τα εκτελέσιμα προγράμματα χώρο για να πάρετε το σενάριο php στο web server και το βουνό του Icecast2 Προσθήκη Configuration. Οι διαφορετικές διαδρομές πρέπει να προσαρμοστεί Ίσως.
Δυστυχώς, επί του παρόντος μόνο ακούνε ο ένας τον Internerradio το ρεύμα. Στην πραγματικότητα, αυτό μπορεί να δημιουργήσει πολλές, αλλά, δυστυχώς, τελείωσε το πρώτο, το οποίο δεν εισπράττει πλέον το ρέμα, μετατρέποντας 
Αυτό που χρειάζεται είναι τα εξής:
- mplayer
- icecast2
- oggenc
- oggfwd
- php
Η δέσμη ενεργειών για τη μετατροπή
# / Bin / sh
$PATH :/usr/ local /bin PATH εξαγωγής = $ PATH: / usr / local / bin
STREAM = "mms: / / your.radio.fm / stream.wma"
set-e
ΠΕΛΑΤΗ = 0
"$2" != "" ] ; then εάν ["$ 2"! = ""], τότε
ΠΕΛΑΤΗΣ = $ 2
fi
"$3" != "" ] εάν ["$ 3"! = ""]
τότε
STREAM = $ 3
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" ] εάν ["$ 1" = "ξεκίνημα"]
τότε
>> $LOG_MPLAYER echo "$ συνδεδεμένοι ΠΕΛΑΤΗ">> $ LOG_MPLAYER
] && echo "Run $0 stop first!" && exit [E-$ FIFO_MPLAYER] & & echo "Run $ 0 σταματήσει πρώτα!" & & Exit
|| exit 1 mkfifo $ FIFO_MPLAYER | | εξόδου 1
"$FIFO_MPLAYER" >> $LOG_MPLAYER 2 >& 1 < /dev/null & mplayer-nocache $ STREAM-ήσυχα-ao pcm: file = "$ FIFO_MPLAYER">> $ LOG_MPLAYER 2> & 1 </ dev / null &
echo $! > $ PID_MPLAYER
ύπνου 0,3
-o – 2 >> $LOG_OGGENC | oggfwd localhost 8000 hackme /radio1.ogg >> $LOG_OGGFWD 2 >& 1 & oggenc-Q-q $ 1 FIFO_MPLAYER-o - 2>> $ LOG_OGGENC | oggfwd localhost 8000 hackme / radio1.ogg>> $ LOG_OGGFWD 2> & 1 &
echo $! > $ PID_OGGFWD
ύπνου 0,2
"$1" = "stop" ] Elif ["$ 1" = "στάση"]
τότε
echo ">>> Η διακοπή της αναπαραγωγής chumstream <<<"
cat $PID_MPLAYER ) 2 > /dev/null && \ σκοτώνουν $ (cat $ PID_MPLAYER) 2> / dev / null & & \
cat $PID_OGGFWD ) 2 > /dev/null && \ σκοτώνουν $ (cat $ PID_OGGFWD) 2> / dev / null & & \
|| \ rm-rf $ TEMP | | \
echo "Δεν είναι δυνατό να σταματήσει όλες τις διαδικασίες, παρακαλούμε να εξετάσει $ TEMP και να το διορθώσουμε με το χέρι"
αλλιώς
echo "Χρήση:"
echo "$ 0 εκκίνηση [client_id] [URL]"
echo "$ 0 στάση"
fi
Η διαμόρφωση icecast
<mount>
<mount-name> / radio.ogg </-name> mount
<max-listeners> 10 </-ακροατές> max
<burst-size> 65 536 </-size> σκάσει
<hidden> 0 </ hidden>
> Τύπος <authentication = "url">
value = "http://localhost/radio.php" /> Όνομα <option = value = /> "mount_add" "http://localhost/radio.php"
value = "http://localhost/radio.php" /> Όνομα <option = value = /> "mount_remove" "http://localhost/radio.php"
value = "http://localhost/radio.php" /> Όνομα <option = value = /> "listener_add" "http://localhost/radio.php"
value = "http://localhost/radio.php" /> Όνομα <option = value = /> "listener_remove" "http://localhost/radio.php"
</> Authentication
<Mount />
Η Php Start / Stop μέρος
Php
$_POST [ "action" ] == 'listener_add' ) { if ($ _POST ["δράση"] == "listener_add») (
( "/usr/local/bin/chumstream.sh start " . $_POST [ "client" ] , $result ) ; $ Tmp =
exec ("/ usr / local / bin / chumstream.sh ξεκίνημα. $ _POST [" πελάτης "], $ αποτέλεσμα)? ( $_POST [ "action" ] == 'listener_remove' ) { ) Else if ($ _POST ["δράση"] == "listener_remove») (
( "/usr/local/bin/chumstream.sh stop " . $_POST [ "client" ] , $result ) ; $ Tmp =
exec ("/ usr / local / bin / chumstream.sh σταματήσει". $ _POST ["πελάτης"], $ αποτέλεσμα)? )
'icecast-auth-user: 1′ ) ; header («icecast-auth-user: 1 ')? 'icecast-auth-message: OK' ) ; header («icecast-auth-μήνυμα: OK ')? ;>