Просмотр видеотрансляций
Материал из МФТИ-телеком.
[править] Видеотрансляции в нашей сети
В сети МФТИ-Телеком производится вещание нескольких десятков радио- и телеканалов, в том числе MTV, BBC World, НТВ Америка, РТР, Спорт и др. Просмотр этих трансляций - абсолютно бесплатный, трафик - локальный.
Внимание! Это относится только к тем каналам, которые будут видны в категории "Оповещения о сессиях (SAP)" Вашего проигрывателя
Данное нововведение находится в тестовом режиме, поэтому работать может не у всех, наберитесь терпения
[править] Установка и настройка
[править] Windows
1. Установите последнюю версию VLC плеера (скачать можно с сайта производителя, либо из локальной сети (не факт, что это будет последняя версия - vlc-0.8.6b-win32.exe)
2. Запустить плеер
3. Нажать Ctrl+S, либо в меню выбрать «Настройки»->«Настройки...», появится меню с настройками

4. В настройках раскрыть список «Плейлист» и там в пункте «Поиск служб» отметить галочкой пункт «Оповещения SAP»

5. Сохранить
6. Перезапустить VLC и нажать Ctrl+P, либо в меню «Вид» выбрать пункт «Плейлист...»

7. После непродолжительного ожидания, в пункте «Оповещения о сессиях (SAP)» у вас появятся все каналы, которые в данный момент транслируются.
[править] Если что-то не работает
- первым делом проверьте, не запрещает ли Ваш фаерволл IGMP/UDP трафик на адреса 224.0.0.0/4 (т.е. диапазон 224.0.0.1 - 239.255.255.255)
- ещё не написано (обратитесь в саппорт)
[править] Инструкция для новых версий vlc
Следующим шагом является настройка VLC. Запустите VLC, выберите в меню “Инструменты” пункт “Настройки” (или нажмите Ctrl-P). Появится окно настроек VLC. Необходимо включить прием SAP-анонсов (специального multicast-канала, где транслируется актуальный список ТВ-каналов и радиостанций). Для этого внизу окна выберите пункт “Показывать все настройки”, в изменившемся списке настроек необходимо найти и раскрыть последовательно пункты “Дополнительно” – “Плейлист” – “Поиск служб” – “SAP”. После этого поставьте галку напротив опции “Оповещения SAP” Ряд ТВ-каналов имеет специфичные параметры аудио-дорожки, требующие определенных настроек проигрывателя. Для комфортного просмотра мы рекомендуем увеличить буфер для UDP-потока до 100 0мс (1 сек) или более. В том же меню настроек необходимо открыть “Ввод/кодеки” – “Модули ввода” – “UDP” и в поле “Размер кэша в мс” указать число 1000 или чуть больше: Для сохранения параметров следует нажать на кнопку “Сохранить”. Настройка VLC завершена! Можно приступать к просмотру ТВ-каналов и прослушиванию спутниковых радиостанций. Выбираем в пункте меню “Вид” пункт “Плейлист” (комбинация клавиш Ctrl-L) , в появившемся окне следует перейти в раздел “Оповещения SAP”. Через несколько секунд в вашем списке воспроизведения появятся транслируемые ТВ и радиоканалы. Приятного просмотра!
[править] Linux
Прежде, чем просматривать видеотрансляции, понадобится сделать несколько шагов:
- Установить программу для просмотра (в нашем случае, это VideoLAN Client). Скачать VLC можно с сайта производителя или из локальной сети. Кроме того, можно установить проигрыватель, пользуясь штатными средствами своего дистрибутива - менеджером пакетов или установок (rpm, yum, packman, emerge, apt-get и т. д.)
- Настроить маршрутизацию: добавить сеть 224.0.0.0/4 с прямой маршрутизацией.
- Настроить фаерволл: нужно разрешить IGMP-трафик и UDP-трафик на адреса 224.0.0.0/4
- Выключить опцию source route verification (rp_filter)
- Убедиться, что ядро поддерживает multicast, необходимый для просмотра видеотрансляций.
Эти шаги немного отличаются для разных дистрибутивов, так что ниже описан порядок действий для некоторых популярных дистрибутивов
[править] Gentoo
[править] Установка программы для просмотра (в нашем случае, это VideoLAN Client)
Все действия по установке и настройке производятся из-под рута, поэтому для начала станем рутом:
bedman@comp ~ $ su - Password: comp ~ #
Если хотите поставить vlc с USE-флагами по умолчанию, делайте так:
comp ~ # emerge vlc
Если хотите точно включить поддержку X, Xvideo, mp3, ogg, vorbis и красивого графического интерфейса с использованием wxWidgets, делайте так:
comp ~ # USE="X xv wxwindows ogg vorbis mp3" emerge vlc
Вы всегда можете посмотреть полный список доступных USE-флагов с их описанием, используя "equery u vlc", если vlc установлен, и "equery u vlc -a", если нет (для этого должен быть установлен gentoolkit)
Если компиляция и установка завершились успешно, можно переходить к следующему шагу.
[править] Настройка маршрутизации
Мы будем предполагать, что у Вас 1 сетевая карта и Вы ходите в интернет и в сеть через неё, и что она является eth0.
Для того, чтобы просто добавить маршрут (он исчезнет после перезагрузки), используя старый проверенный route из пакета sys-apps/net-tools:
comp ~ # route add -net 224.0.0.0/4 dev eth0
Для того, чтобы просто добавить маршрут (он исчезнет после перезагрузки), используя новый sys-apps/iproute2:
comp ~ # ip route add multicast 224.0.0.0/4 table main dev eth0
Для того, чтобы добавить маршрут на постоянной основе, нужно открыть любимым редактором файл /etc/conf.d/net и вместо строки:
routes_eth0=( "default via 172.16.0.1" )
либо
routes_eth0=( "default via 193.125.143.132" )
написать строки:
routes_eth0=(
"default via 172.16.0.1"
"224.0.0.0/4"
)
либо
routes_eth0=(
"default via 193.125.143.132"
"224.0.0.0/4"
)
[править] Настройка фаерволла (firewall)
Необходимо убедиться, что ваш фаерволл пропускает IGMP и UDP-пакеты на мультикастные адреса 224.0.0.0/4.
Для этого нужно посмотреть текущие правила фаерволла (если вы не знаете, как это делать -- значит, скорее всего, ваш фаерволл не мешает просмотру трансляций :))
Если вы используете фаерволл iptables, просмотреть текущие правила фаерволла можно следующим образом:
comp ~ # iptables -t filter -L -vn
-t filter выбирает таблицу filter
-L отображает все правила в текущей таблице
-v включает дополнительную информацию при отображении
-n оставляет все IP-адреса и порты в виде чисел (а не имён)
[править] Настройка параметров сетевого стека
Необходимо выключить опцию source route verification для интерфейса, подключенного в МФТИ-Телеком (в данном примере eth0). Для этого добавьте в файл /etc/sysctl.conf строчку
net.ipv4.conf.eth0.rp_filter=0
После этого выполните команду
sysctl -p
[править] Настройка ядра
[править] Используется ядро, настроенное вручную
[править] Используется ядро, настроенное через genkernel
[править] Debian
[править] woody
добавьте эти строчки в файл /etc/apt/sources.list
deb http://download.videolan.org/pub/videolan/debian woody main deb-src http://download.videolan.org/pub/videolan/debian woody main
и выполните команды
# apt-get update # apt-get install gnome-vlc libdvdcss2
[править] sid
добавьте эти строчки в файл /etc/apt/sources.list
deb http://download.videolan.org/pub/videolan/debian sid main deb-src http://download.videolan.org/pub/videolan/debian sid main
и выполните команды
# apt-get update # apt-get install wxvlc libdvdcss2
[править] sarge, etch
(опционально) добавьте эти строчки в файл /etc/apt/sources.list для использования локального зеркала debian (если вы пользуетесь sarge замените etch на sarge)
deb ftp://ftp.mipt.ru/debian etch main contrib non-free deb ftp://ftp.mipt.ru/mirror/debian-security etch/updates main contrib non-free deb-src ftp://ftp.mipt.ru/debian etch main contirb non-free
и выполните команды
# apt-get update # apt-get install wxvlc
[править] Mandrake/Mandriva
# urpmi libdvdcss2 libdvdplay0 wxvlc vlc-plugin-a52 vlc-plugin-ogg vlc-plugin-mad
[править] Другие дистрибутивы и сборка из исходников
В других дистрибутивах пользуйтесь соответствующими менеджерами пакетов - yum, packman и т.п.
Кроме того, вы можете собрать VLC из исходников. Подробная инструкция есть на http://developers.videolan.org
[править] Если что-то не работает
- первым делом проверьте, не запрещает ли Ваш фаерволл (iptables) IGMP/UDP трафик на адреса 224.0.0.0/4 (т.е. диапазона 224.0.0.1 - 239.255.255.255)
- проверьте, выключен ли source route verification (в файле rp_filter должен быть записан 0):
$ cat /proc/sys/net/ipv4/conf/eth0/rp_filter 0
- далее
$ vlc -S sap --sap-ipv4 --no-ipv6 -vvv 2> vlc_debug.txt
-S sap - загрузить модуль обнаружения сервисов sap
--sap-ipv4 - использовать IPv4 для SAP
--no-ipv6 - не использовать IPv6 вообще (у нас в сети его нет)
-vvv - показать максимально детальный вывод
> vlc_debug.txt - перенаправить вывод в vlc_debug.txt
текст из vlc_debug.txt - на форум техподдержки.
[править] *BSD
...
[править] Дополнительная информация
[править] Настройка домашнего роутера для просмотра видеотрансляций
Для router Asus WL 500g Premium V2 с последней прошивкой 1.9.2.7-10 от Олега. В web-console роутера Ip Config -> Route выбраны следующие настройки:
- Use DHCP routes? : yes
- Enable multicast routing? : yes
- Enable static routes? : yes
81.5.64.0 255.255.192.0 172.18.0.1 1 LAN 192.188.189.0 255.255.255.0 172.18.0.1 1 LAN 192.168.80.0 255.255.252.0 172.18.0.1 1 LAN 194.85.80.0 255.255.252.0 172.18.0.1 1 LAN 10.0.0.0 255.0.0.0 172.18.0.1 1 LAN 193.125.142.0 255.255.254.0 172.18.0.1 1 LAN 172.18.0.0 255.240.0.0 172.18.0.1 1 LAN
Примечание: в связи с переходом на новую адресацию вида 10.x.y.z, пользователи VPN могут запретить Static routes (Enable static routes? : no)
IPTV работает нормально только в случае соединения компьютера с роутреом сетевым кабелем. На компьютерах соединенных с роутером посредством беспроводного интерфейса, наблюдается сильное запаздование сигнала (смотреть практически невозможно). Причину установить пока не удалось (включение в настройках WME -- wireless multimedia extension и/или включение QoS -- quality of service может помочь).
Те кто хочет смотреть iptv по wifi на упомянутой выше прошивке могут использовать udp->http proxy, уже встроенный в прошивку, для чего надо сделать следующее:
1) IP Config/Miscellaneous/IPTV UDP Multicast to HTTP Proxy Port: 5005. Не забыть сохранить настройку и перезагрузить рутер!
2) В файле списка каналов *.m3u заменить подстроки "udp://@" на "http://@192.168.1.1:5005/udp/". После запуска плейера не забыть нажать кнопочку [обновить] в настройках списков каналов.
[править] Тонкости IGMP (как оно реализовано)
Hippo, все правильно, я просто не хотел усложнять и без того сложную модель протокола IGMP. Если быть абсолютно точным, то на сети выбирается igmp querier, который шлет раз в 60 секунд IGMP membership query на групповой адрес 224.0.0.1, после чего хосты, которые хотят видеть мультикаст - шлют igmp membership report на ту группу, которую хотят получать, ну и дальше не будем углубляться - роутер шлет мультикаст пользователю. Есть только одно "но" - IGMP join может происходить без ожидания IGMP query, по сути дела - хост не ждет прихода этих пакетов igmp query и как только он хочет получать группу - сразу посылает igmp membership report, сокращая тем самым время подключения к мультикасту. Еще разумеется есть отличия между igmp v1 и igmp v2, основное удобство igmp v2 на мой взгляд в том, что он умеет слать IGMP leave group сообщение, позволяющее отказаться от мультикаст трафика когда группа уже не нужна, не дожидаясь таймаутов. Возвращаясь к нашим баранам - важно добиться того, чтобы от вас уходил igmp membership report на группы 224.2.127.254 и 239.255.255.255 в сторону телекома, соответственно в вашу сторону от телекома должен идти трафик по этим группам, объявляющим SAP. Обратите внимание, что при запуске vlc с включенным SAP - он сразу же шлет igmp membership report, не дожидаясь никаких igmp query, т.е. то, о чем я написал в первом письме. -- kalend, на форуме МФТИ-Телеком
См.также статью Протокол IGMP и передача мультимедиа по Интернет (ссылка внешняя!)
