Як організувати сервіс телерадіомовлення в інтранет-мережі

Як організувати сервіс телерадіомовлення в інтранет-мережі

Ви хочете дивитися телеканали з цифровою якістю, створювати свої власні трансляції, впровадити цікавий і корисний сервіс в мережі? Сучасні технології дозволяють зробити це вже зараз без використання дорогої апаратури.

Сервіс ТРВ створювався на базі мережі, спрощена схема якої представлена ​​на рис. 1.

Як організувати сервіс телерадіомовлення в інтранет-мережі
Як видно з малюнка, кінцеві вузли підключені до комутаторів лабораторій за технологією 100Base-T, які в свою чергу з'єднані з кореневим комутатором 100 / 1000Base-T. Сервери, в тому числі і сервер мовлення (Srv7), підключені до кореневого комутатора за технологією 1000Base-T. Таким чином, кореневою комутатор утворює швидкісну «стислу» магістраль між лабораторіями та серверами. Протокол IGMP підтримується кореневих комутатором і одним з комутаторів лабораторій. Використовується три види комутаторів рівня доступу (лабораторій): керовані 100Baset-T з підтримкою IGMP, некеровані 100Baset-T і некеровані 100Baset-T з uplink-портом 1000Baset-T. Ці три види комутаторів представлені, відповідно, комутаторами L1, L2 і LN.

/ Sbin / modprobe dvb-core dvb_shutdown_timeout = 0
/ Sbin / modprobe skystar2
/ Sbin / modprobe stv0299

/ Sbin / modprobe -r skystar2
/ Sbin / modprobe -r stv0299
/ Sbin / modprobe -r dvb-core

В ході експлуатації виявилася апаратна проблема у карти SkyStar2 (або ж "крива" реалізація драйверів). Проблема така, що при зникненні сигналу, причиною чого можуть бути різні атмосферні явища, рівень сигналу не завжди відновлюється, і як наслідок, потік з DVB-S карти SkyStar2 відсутня. Справа в тому, що дана картка не розраховувалася для інтенсивної безперебійної роботи, а є лише бюджетним аматорським варіантом супутникового тюнера.
Алгоритм вирішення проблеми наступний:

  1. Завершення додатків використовують DVB-S карту SkyStar2.
  2. Перезапуск драйвера DVB-S карти SkyStar2 (в цей момент карта инициализируется).
  3. Повторний запуск додатків (конкретно VLC).
Був написаний простою скрипт watchdog, який постійно стежить за потоком з мережевого інтерфейсу сервера і перезавантажує сервіс. Нижче представлена ​​одна з перших версій скрипта, так як на даний момент, у зв'язку з ще декількома сервісами на основі VLC на цьому сервері, скрипт істотно змінений.
Значення вихідного потоку (змінна thread) отримано експериментально на основі моніторингу мережевого інтерфейсу. Як тільки значення потоку стає нижче заданого порогу, виконуються дії описані вище.

thread = $ (tcpstat - o '% B' - F - s 7 | awk - F. '';

sig 0 = `dvbsnoop - n 1 - timeout 10 - s signal - adapter 0
| tail - n 1 | awk - F \ '' `;

sig1 = `dvbsnoop -n 1 -timeout 10 -s signal -adapter 1
| tail -n 1 | awk -F \ '' `;

sig2 = `dvbsnoop -n 1 -timeout 10 -s signal -adapter 2
| tail -n 1 | awk -F \ '' `;

echo $ sig0 $ sig1 $ sig2 $ thread >> / usr / dvb / log

if [$ thread - lt 3300000]; then