Показать сообщение отдельно

Старый 28.02.2007, 12:14   #3 (permalink)
Местный
 
Регистрация: 29.05.2006
Сообщений: 111
Вы сказали Спасибо: 13
Поблагодарили 13 раз(а) в 6 сообщениях
Saintek скоро станет знаменитым(-ой)Saintek скоро станет знаменитым(-ой)
Получено наград:
По умолчанию

расскажу как это можно сделать на линуксе...
сразу скажу с 500-го дрима можно запустить 20 радио...
к примеру сделаем 3 радио
1) нам нужны аудио пиды радио каналов
2) установленный [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] проигрыватель
3) установленный [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] (по желанию)
4) установленный [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] (чтобы не перекодировать, а ретранслировать поток)
создаём файл с правами 755
chmod 755 /tmp/radio
в этот файл вносим данные радио(как я уже сказал 3 радио)
# Energy 9000
screen -A -mdS vlc_energy vlc -vvv [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] --sout='#duplicate{dst=std{access=http,mux=raw,dst=1 92.168.0.232:11002}}'
screen -A -mdS sc_energy sc_serv /usr/local/etc/energy/shoutcast.conf

# RMR 9002
screen -A -mdS vlc_rmr vlc -vvv [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] --sout='#duplicate{dst=std{access=http,mux=raw,dst=1 92.168.0.232:11004}}'
screen -A -mdS sc_rmr sc_serv /usr/local/etc/rmr/shoutcast.conf

# Shanson 9004
screen -A -mdS vlc_shanson vlc -vvv [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] --sout='#duplicate{dst=std{access=http,mux=raw,dst=1 92.168.0.232:11006}}'
screen -A -mdS sc_shanson sc_serv /usr/local/etc/shanson/shoutcast.conf


вот пример shoutcast.conf для радио Energy
Цитата:
MaxUser=32
Password=password
PortBase=9002
RelayPort=11002
RelayServer=192.168.0.232
RealTime=0
ScreenLog=0
LogFile=/tmp/shoutcast/sc_energy.log
ShowLastSongs=1
TchLog=No
W3CEnable=No
SrcIP=127.0.0.1
DestIP=ANY
Yport=80
NameLookups=0
AdminPassword=admin_password
AutoDumpUsers=0
AutoDumpSourceTime=10
TitleFormat=Maximum
PublicServer=default
AllowRelay=No
AllowPublicRelay=No
MetaInterval=32768
CpuCount=1
вот пример icecast.xml
Цитата:
<icecast>
<limits>
<clients>200</clients>
<sources>50</sources>
<threadpool>5</threadpool>
<queue-size>524288</queue-size>
<client-timeout>300</client-timeout>
<header-timeout>150</header-timeout>
<source-timeout>100</source-timeout>
<burst-on-connect>1</burst-on-connect>
<burst-size>655350</burst-size>
</limits>
<authentication>
<source-password>password1</source-password>
<relay-password>password</relay-password>
<admin-user>admin</admin-user>
<admin-password>password</admin-password>
</authentication>
<relay>
<server>192.168.0.232</server>
<port>11002</port>
<mount>/</mount>
<local-mount>/Energy</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>

<relay>
<server>192.168.0.232</server>
<port>11004</port>
<mount>/</mount>
<local-mount>/RMR</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>

<relay>
<server>192.168.0.232</server>
<port>11006</port>
<mount>/</mount>
<local-mount>/Shanson</local-mount>
<on-demand>0</on-demand>
<relay-shoutcast-metadata>0</relay-shoutcast-metadata>
</relay>

<fileserve>1</fileserve>
<paths>
<basedir>/usr/share/icecast</basedir>
<logdir>/var/log/icecast</logdir>
<webroot>/usr/share/icecast/web/</webroot>
<adminroot>/usr/share/icecast/web/admin</adminroot>
<pidfile>/var/log/icecast/icecast.pid</pidfile>
<webroot>/usr/share/icecast/web/</webroot>
<adminroot>/usr/share/icecast/admin</adminroot>
<alias source="/foo" dest="/status.xsl"/>
</paths>
<logging>
<accesslog>access.log</accesslog>
<errorlog>error.log</errorlog>
<playlistlog>playlist.log</playlistlog>
<loglevel>4</loglevel> <!-- 4 Debug, 3 Info, 2 Warn, 1 Error -->
</logging>
<security>
<chroot>0</chroot>
<changeowner>
<user>icecast</user>
<group>icecast</group>
</changeowner>
</security>
</icecast>
Запуск icecast

screen -A -mdS icecast icecast -c /usr/local/etc/icecast/icecast.xml

Что мы имеем
файл /tmp/radio, с правами 755 с содержимым

Цитата:
killall -9 vlc
killall -9 icecast
killall -9 sc_serv
screen -wipe

# Energy 9000
screen -A -mdS vlc_energy vlc -vvv [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] --sout='#duplicate{dst=std{access=http,mux=raw,dst=1 92.168.0.232:11002}}'
screen -A -mdS sc_energy sc_serv /usr/local/etc/energy/shoutcast.conf

# RMR 9002
screen -A -mdS vlc_rmr vlc -vvv [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] --sout='#duplicate{dst=std{access=http,mux=raw,dst=1 92.168.0.232:11004}}'
screen -A -mdS sc_rmr sc_serv /usr/local/etc/rmr/shoutcast.conf

# Shanson 9004
screen -A -mdS vlc_shanson vlc -vvv [Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] --sout='#duplicate{dst=std{access=http,mux=raw,dst=1 92.168.0.232:11006}}'
screen -A -mdS sc_shanson sc_serv /usr/local/etc/shanson/shoutcast.conf

screen -A -mdS icecast icecast -c /usr/local/etc/icecast/icecast.xml
для полного счастья делаем

ln -s /tmp/radio /usr/bin/radio - это даст нам возможность просто запускать исполняемый файл radio

192.168.0.231 - это адрес дрима
192.168.0.232 - это адрес нашего линукс сервера(с которго клиенты будут слушать радио)

Если всё сделано правильно можно проверить работу icecast
[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!]

подключение клиента к радио

[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] - icecast (смотрим icecast.xml,таким же образом добавляется любое радио)
[Только зарегистрированные пользователи могут видеть ссылки. Регистрация!] - shoutcast

P.S.
По умолчанию порт 31339, если брать строчку с дрима, но как показала практика на порту 31338 лучше работает...

P.P.S.
Если есть замечания или предложения, жду ответов...

P.P.P.S. screen -A -mds icecast - это запуск скрина(работа приложения в фоне), просмотр скринов можно осуществить командой

screen -ls

после чего можно зайти в скрин и посмотреть его вот таким образом

screen -r vlc_energy

выйти из скрина на отключая его можно сделать вот так

ctrl+a d
Saintek вне форума   Ответить с цитированием