Трансляция радио и ТВ (С hhtp по http)

Разные проблемы звука, видео, обсуждение разных устройств и т.д.

Модератор: Модераторы разделов

-IRON-
Сообщения: 51
ОС: Suse Linux 10.3

Трансляция радио и ТВ

Сообщение -IRON- »

Задача-забирать потоки радио и ТВ из локальной сети и "сливать" их по какому-либо из портов компьютера. Смысл в подключении двух локалок, причем с одной (с music_server) будут браться ресурсы и через мой комп в другую транслироваться.
Проблемы две:
1) Какую простую программу для моей задачи можно использовать? Только консоль, никакой GUI. Все будет подниматься на сервере, с рассчетом "сделал-работает".
2) Какая будет нагрузка на сервер? При том же маскардинге даже при высоких скоростях процессор не грузится совершенно.

Вот еще пока писал сообщение подумал... А как работает NAT? Например, если написать в айпитаблесе что то типа

Код: Выделить всё

iptables -t nat -A PREROUTING -i $LANCARD -p tcp -m tcp --dport 9000 -j DNAT --to-destination <music_server>

Будет ли в этом случае трафик идти через мой сервер, и сможет ли человек, имеющий доступ к моему серверу, но не имеющего доступа к music_server, слушать музыку и смотреть ТВ?
И еще один аспект неясен... Если делать через NAT и iptables, то при прослушивании радио с моего сервера одновременно двумя и более клиентами, на music_server будет идти один поток данных, или сколько клиентов-столько и потоков?
Спасибо сказали:
Аватара пользователя
denel
Сообщения: 497
ОС: Gentoo Linux

Re: Трансляция радио и ТВ

Сообщение denel »

-IRON- писал(а):
15.07.2009 09:08
Задача-забирать потоки радио и ТВ из локальной сети и "сливать" их по какому-либо из портов компьютера. Смысл в подключении двух локалок, причем с одной (с music_server) будут браться ресурсы и через мой комп в другую транслироваться.
Проблемы две:
1) Какую простую программу для моей задачи можно использовать? Только консоль, никакой GUI. Все будет подниматься на сервере, с рассчетом "сделал-работает".
2) Какая будет нагрузка на сервер? При том же маскардинге даже при высоких скоростях процессор не грузится совершенно.

Вот еще пока писал сообщение подумал... А как работает NAT? Например, если написать в айпитаблесе что то типа

Код: Выделить всё

iptables -t nat -A PREROUTING -i $LANCARD -p tcp -m tcp --dport 9000 -j DNAT --to-destination <music_server>

Будет ли в этом случае трафик идти через мой сервер, и сможет ли человек, имеющий доступ к моему серверу, но не имеющего доступа к music_server, слушать музыку и смотреть ТВ?
И еще один аспект неясен... Если делать через NAT и iptables, то при прослушивании радио с моего сервера одновременно двумя и более клиентами, на music_server будет идти один поток данных, или сколько клиентов-столько и потоков?

Сколько клиентов, столько потоков. Нагрузка я думаю не велика, только в плане пропускной способности сети. Рекомендовал бы, конечно, DNAT, но я чуть по другому делал, с двух правил, как - могу сказать завтра, если еще будет актуально...
Спасибо сказали:
Аватара пользователя
WiseLord
Сообщения: 100
ОС: Gentoo Linux

Re: Трансляция радио и ТВ

Сообщение WiseLord »

А если воспользоваться vlc?

Код: Выделить всё

cvlc http://stream.netradio.by:8000/hot/mp3/128 --ignore-config --sout "#duplicate{dst={std{access=http,mux=raw,dst=:8080}}}"

Так, например, интернет-поток http://stream.netradio.by:8000/hot/mp3/128 будет доступен теперь в вашей локалке как http://ваш_IP_адрес:8080 без какого то бы ни было перекодирования.
Чем больше клиентов - тем больше нагрузка на ваш вещающий сервер, оригинальный же поток (в интернет) всего один.
Я, например, подобным образом вещаю в сеть с тюнера. Причём сделано это в виде демона:
/etc/init.d/cvlcshout:

Код: Выделить всё

#!/sbin/runscript

depend() {
need net.eth0
need dbus
need alsasound
}

start() {
        ebegin "Starting cvlcshout"
        /usr/local/bin/setchan euronews
        start-stop-daemon --start --background --user wiselord -m -p /var/run/cvlcshout.pid --exec /usr/bin/cvlc -- ${CVLCSHOUT_OPTIONS}
        eend $?
}

stop() {
        ebegin "Stopping cvlcshout"
        start-stop-daemon --stop -p /var/run/cvlcshout.pid
        eend $?
}

/etc/conf.d/cvlcshout:

Код: Выделить всё

CVLCSHOUT_OPTIONS="pvr:// :pvr-device=/dev/video1 --nocolor --ignore-config --sout #duplicate{dst={std{access=http,mux=ts,dst=:8080}}} --aout dummy  --vout dummy"

Обратите внимание на -user wiselord - вещание запускается от юзера, ибо vlc не работает от root. Можно просто создать специального "вещающего" юзера.
Если мне надо остановить вещание - /etc/init.d/cvlcshout stop, аналогично при старте - /etc/init.d/cvlcshout start. Этот демон можно поместить точно так же в автозапуск. Правда, расположение конфигов (/etc/conf.d) для скриптов (/etc/init.d) в данном случае специфично для Gentoo Linux, в других дистрибутивах может быть чуть другое. В любом случае, ${CVLCSHOUT_OPTIONS} можно не выносить в отдельный файл, а прямо в /etc/init.d/cvlcshout и прописать.
Спасибо сказали:
nast2003
Сообщения: 11

Re: Трансляция радио и ТВ

Сообщение nast2003 »

Спасибо сказали: