Nahmd,
Имах нужда от решение на потока WMA "в движение да го превръщат в OGG поток.
Сценарият по пътя за изпълними програми, за да се вземе на PHP скрипт в уеб сървър и на планината в Icecast2 Добави конфигурация. Различните пътища трябва да бъдат адаптирани Може би.
За съжаление, в момента само слушам една Internerradio този поток. Всъщност, това може да създаде колкото се може повече, но за съжаление сложи край на една страна, която не получава поток, конвертиране 
Какво е необходимо, е следното:
- MPlayer
- icecast2
- oggenc
- oggfwd
- PHP
Сценарият за преобразуване на
# / BIN / SH
$PATH :/usr/ local /bin износ PATH = $ PATH: / ЮЕсАр / местни / хамбар
STREAM = "MMS: / / your.radio.fm / stream.wma"
настройка е
КЛИЕНТЪТ = 0
"$2" != "" ] ; then ако ["$ 2"! = ""] след това
КЛИЕНТЪТ = $ два
Fi
"$3" != "" ] ако ["$ 3"! = ""]
след това
STREAM = 3 щатски долара
Fi
echo $STREAM | md5sum | cut -d ' ' -f1 ) MD5 = $ (ехо $ STREAM | md5sum | прекъсване на г''-f1)
TEMP = малки / chumbybridge / $ MD5
] || mkdir -p $TEMP [D $ ТЕМП] | | защитен режим-P $ ТЕМП
/mplayer.fifo FIFO_MPLAYER = $ ТЕЛК / mplayer.fifo
# FIFO_OGGENC = $ ТЕЛК / oggenc.fifo
/mplayer.log LOG_MPLAYER = $ ТЕЛК / mplayer.log
/oggenc.log LOG_OGGENC = $ ТЕЛК / oggenc.log
/oggfwd.log LOG_OGGFWD = $ ТЕЛК / oggfwd.log
/mplayer.pid PID_MPLAYER = $ ТЕЛК / mplayer.pid
/oggfwd.pid PID_OGGFWD = $ ТЕЛК / oggfwd.pid
"$1" = "start" ] ако ["$ 1" = "начало"]
след това
>> $LOG_MPLAYER ехо "свързани $ КЛИЕНТА">> $ LOG_MPLAYER
] && echo "Run $0 stop first!" && exit [E-FIFO_MPLAYER $] & & "Хуманитарна помощ" Пусни $ 0 спре първо! "& & Изход
|| 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 / нула &
ехо $! > $ PID_MPLAYER
съня 0.3
-o – 2 >> $LOG_OGGENC | oggfwd localhost 8000 hackme /radio1.ogg >> $LOG_OGGFWD 2 >& 1 & oggenc-Q-р милиард щатски долара FIFO_MPLAYER-о - 2>> $ LOG_OGGENC | oggfwd Localhost 8000 hackme / radio1.ogg>> $ LOG_OGGFWD 2> & 1 &
ехо $! > PID_OGGFWD $
съня 0.2
"$1" = "stop" ] Елиф ["$ 1" = "Стоп"]
след това
Хуманитарна помощ ">>> Спиране chumstream играч <<<"
cat $PID_MPLAYER ) 2 > /dev/null && \ убие $ ($ котка PID_MPLAYER) 2> / Dev / нула & & \
cat $PID_OGGFWD ) 2 > /dev/null && \ убие $ ($ котка PID_OGGFWD) 2> / Dev / нула & & \
|| \ RM-RF $ ТЕЛК | | \
Хуманитарна помощ "не мога да спра всички процеси, моля погледнете на $ ТЕЛК и редактирате ръчно"
още
Хуманитарна помощ "Използване:"
Хуманитарна помощ "$ 0 Начало [client_id] [URL]"
Хуманитарна помощ "$ 0 стоп"
Fi
В icecast конфигурация
<mount>
<mount-name> / radio.ogg </ монтиране-име>
<max-listeners> 10 </ MAX-слушатели>
<burst-size> 65 536 </ разрушаване размер>
<hidden> 0 </ скрити>
> <authentication тип = "url">
value = "http://localhost/radio.php" /> <option име = стойност = "mount_add" /> "http://localhost/radio.php"
value = "http://localhost/radio.php" /> <option име = стойност = "mount_remove" /> "http://localhost/radio.php"
value = "http://localhost/radio.php" /> <option име = стойност = "listener_add" /> "http://localhost/radio.php"
value = "http://localhost/radio.php" /> <option име = стойност = "listener_remove" /> "http://localhost/radio.php"
</ Удостоверяване>
<Mount />
Програмата за общественото здраве за старт / стоп част
Php
$_POST [ "action" ] == 'listener_add' ) { ако ($ _POST ["действия"] == "listener_add") (
( "/usr/local/bin/chumstream.sh start " . $_POST [ "client" ] , $result ) ; $ TMP =
Exec ("/ ЮЕсАр / местни / хамбар / chumstream.sh начало. $ _POST [" клиент "], $ резултат); ( $_POST [ "action" ] == 'listener_remove' ) { ) Иначе, ако ($ _POST ["действия"] == "listener_remove") (
( "/usr/local/bin/chumstream.sh stop " . $_POST [ "client" ] , $result ) ; $ TMP =
Exec ("/ ЮЕсАр / местни / хамбар / chumstream.sh стоп". $ _POST ["клиент"], $ резултат); )
'icecast-auth-user: 1′ ) ; заглавна ("icecast-AUTH потребител: 1 '); 'icecast-auth-message: OK' ) ; заглавна ("icecast-AUTH съобщение: ОК"); ?>