Nahmd,
Necesitaba una solución a un flujo de WMA sobre la marcha para que sea un flujo de OGG.
La secuencia de comandos en una ruta de acceso para programas ejecutables lugar para tomar el script php en el servidor web y el soporte en la configuración Icecast2 Añadir. Los caminos individuales deben adaptarse lo mejor.
Por desgracia, actualmente sólo se escucha un Internerradio ese flujo. De hecho, puede ser cualquier número, pero terminó por desgracia, el primero, que ya no recibe el flujo, la conversión de 
Lo que se necesita es la siguiente:
- mplayer
- Icecast2
- oggenc
- oggfwd
- php
La secuencia de comandos para convertir
# / Bin / sh
$PATH :/usr/ local /bin Export PATH = $ PATH: / usr / local / bin
STREAM = "mms: / / your.radio.fm / stream.wma"
conjunto-e
CLIENTE = 0
"$2" != "" ] ; then if ["2" $! = ""] then
CLIENTE = $ 2
fi
"$3" != "" ] if ["3" $! = ""]
entonces
STREAM = $ 3
fi
echo $STREAM | md5sum | cut -d ' ' -f1 ) MD5 = $ (echo $ STREAM | md5sum | cut-d''-f 1)
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" ] if ["$ 1" = "start"]
entonces
>> $LOG_MPLAYER echo "$ conectado CLIENTE">> $ LOG_MPLAYER
] && echo "Run $0 stop first!" && exit [-S $ FIFO_MPLAYER] & & echo "ejecutar $ 0 primera parada!" & & Salir
|| exit 1 mkfifo $ FIFO_MPLAYER | salida | 1
"$FIFO_MPLAYER" >> $LOG_MPLAYER 2 >& 1 < /dev/null & mplayer-nocache $ silencioso-ao pcm STREAM: archivo = "$ FIFO_MPLAYER">> $ LOG_MPLAYER 2> & 1 </ dev / null &
echo $! > $ PID_MPLAYER
0,3 sueño
-o – 2 >> $LOG_OGGENC | oggfwd localhost 8000 hackme /radio1.ogg >> $LOG_OGGFWD 2 >& 1 & oggenc-Q-q-o $ 1 FIFO_MPLAYER - 2>> $ LOG_OGGENC | oggfwd localhost 8000 hackme / radio1.ogg>> $ LOG_OGGFWD 2> & 1 &
echo $! > $ PID_OGGFWD
0,2 sueño
"$1" = "stop" ] elif ["$ 1" = "stop"]
entonces
echo ">>> Dejar de chumstream reproductor <<<"
cat $PID_MPLAYER ) 2 > /dev/null && \ matar a $ (cat $ PID_MPLAYER) 2> / dev / null & & \
cat $PID_OGGFWD ) 2 > /dev/null && \ matar a $ (cat $ PID_OGGFWD) 2> / dev / null & & \
|| \ rm-rf $ TEMP | | \
echo "No se puede parar todos los procesos, por favor mire en $ TEMP y fijar de forma manual"
más
echo "Uso:"
echo "0 [inicio client_id] [URL]"
echo $ 0 parada "
fi
La configuración de icecast
<mount>
<mount-name> / <radio.ogg /-name> mount
<max-listeners> 10 </ max-oyentes>
<burst-size> 65 536 </ tamaño de ráfaga->
<hidden> 0 </> oculta
> <authentication type = "url">
value = "http://localhost/radio.php" /> nombre = valor = <option /> "mount_add" "http://localhost/radio.php"
value = "http://localhost/radio.php" /> nombre = valor = <option /> "mount_remove" "http://localhost/radio.php"
value = "http://localhost/radio.php" /> nombre = valor = <option /> "listener_add" "http://localhost/radio.php"
value = "http://localhost/radio.php" /> nombre <option = Valor = "listener_remove" /> "http://localhost/radio.php"
</> Autenticación
<mount />
El Php Start / Stop de pieza
Php
$_POST [ "action" ] == 'listener_add' ) { if ($ _POST ["action"] == 'listener_add ») (
( "/usr/local/bin/chumstream.sh start " . $_POST [ "client" ] , $result ) ; $ Tmp =
ejecutivo ("/ usr / local / bin / chumstream.sh principio. $ _POST [" cliente "], $ resultado); ( $_POST [ "action" ] == 'listener_remove' ) { ) Else if ($ _POST ["action"] == "listener_remove») (
( "/usr/local/bin/chumstream.sh stop " . $_POST [ "client" ] , $result ) ; $ Tmp =
ejecutivo ("/ usr / local / bin / parada chumstream.sh". $ _POST ["cliente"], $ resultado); )
'icecast-auth-user: 1′ ) ; cabecera ('icecast-auth-usuario: 1'); 'icecast-auth-message: OK' ) ; cabecera ('icecast-auth-mensaje: OK'); ?>