Просмотр видеотрансляций

Материал из МФТИ-телеком.

Перейти к: навигация, поиск

Содержание

[править] Видеотрансляции в нашей сети

В сети МФТИ-Телеком производится вещание нескольких десятков радио- и телеканалов, в том числе MTV, BBC World, НТВ Америка, РТР, Спорт и др. Просмотр этих трансляций - абсолютно бесплатный, трафик - локальный.

Внимание! Это относится только к тем каналам, которые будут видны в категории "Оповещения о сессиях (SAP)" Вашего проигрывателя

Данное нововведение находится в тестовом режиме, поэтому работать может не у всех, наберитесь терпения

[править] Установка и настройка

[править] Windows

1. Установите последнюю версию VLC плеера (скачать можно с сайта производителя, либо из локальной сети (не факт, что это будет последняя версия - vlc-0.8.6b-win32.exe)
2. Запустить плеер
3. Нажать Ctrl+S, либо в меню выбрать «Настройки»->«Настройки...», появится меню с настройками

Изображение:VLC_settings_1.png

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

Изображение:VLC_settings_2.png

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

Изображение:VLC_settings_3.png

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

Прежде, чем просматривать видеотрансляции, понадобится сделать несколько шагов:

  1. Установить программу для просмотра (в нашем случае, это VideoLAN Client). Скачать VLC можно с сайта производителя или из локальной сети. Кроме того, можно установить проигрыватель, пользуясь штатными средствами своего дистрибутива - менеджером пакетов или установок (rpm, yum, packman, emerge, apt-get и т. д.)
  2. Настроить маршрутизацию: добавить сеть 224.0.0.0/4 с прямой маршрутизацией.
  3. Настроить фаерволл: нужно разрешить IGMP-трафик и UDP-трафик на адреса 224.0.0.0/4
  4. Выключить опцию source route verification (rp_filter)
  5. Убедиться, что ядро поддерживает 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 и передача мультимедиа по Интернет (ссылка внешняя!)


Личные инструменты