Материал: Услуги IP-телевидения

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Схема работы система условного доступа CAS/DRM

Принципы шифрования

С каждой единицей медиа-контента ассоциируется ключ шифрования. В системе CAS/DRM используется трехуровневое шифрование.

·  Ключи первого уровня являются постоянными и выделяются один раз для каждой единицы контента при первом шифровании. Эти ключи хранятся в общей для CAS и Middleware базе данных.

·              Ключи второго уровня динамически генерируются на основе ключей первого уровня и текущего времени. Срок жизни ключа второго уровня - 1 час. Так как на серверах CAS и Middleware время синхронизировано, каждый из них может генерировать идентичные ключи второго уровня независимо друг от друга. По запросу ключ второго уровня может передаваться на IP STB, но только для доступных абоненту единиц контента.

·              Ключи третьего уровня используются непосредственно для шифрования передаваемых пакетов данных и передаются в зашифрованном виде параллельным потоком вместе с контентом. Ключ третьго уровня генерируется динамически на основании соответствующего ключа второго уровня, IP-адреса и текущего времени. Время жизни ключа третьго уровня - 5 минут.

Механизм аутентификации клиентов в CAS/DRM

На сервере Middleware в биллинговой системе для каждого абонента создаются лицевой счет, сертификат, приватный ключ и одноразовый код активации. При первом включении приставки или запуске PC клиента, абонент должен ввести выданный ему код активации, после чего на клиентском оборудовании клиента сохраняются сертификат и приватный ключ. Они используются при установке SSL-соединения и аутентификации с сервером Middleware.

В случае, если абонент использует PC клиент, сертификат и приватный ключ при сохранении шифруются исходя из аппаратной конфигурации компьютера, на котором установлен клиент. Это защищает сертификат и приватный ключ от переноса на другие компьютеры. При переносе на другую конфигурацию абонент должен будет ввести новый код активации.

Таким образом, в системе CAS/DRM отсутствуют смарт-карты доступа, применяющиеся в большинстве систем условного доступа. Это позволяет сэкономить значительные средства на производстве карт.

IPTV PC Client или IPTV Player

IPTV PC Client (IPTV Player) - это клиентское приложение для доступа ко всем услугам интерактивного телевидения с персонального компьютера. С его помощью возможен не только просмотр вещаемых в сети ТВ-каналов, как в большинстве IPTV-плееров, но и полноценное управление всей подпиской IPTV-сервисов.IPTV PC Client предоставляет абоненту следующий функционал:

·  Просмотр телеканалов (в том числе шифрованных);

·              Просмотр телепередач в записи (TVoD);

·              Просмотр телевидения со сдвигом во времени (Time-Shifted TV);

·              Прослушивание радиостанций;

·              Формирование плейлистов;

·              Доступ к фильмотеке (VoD, nVoD);

·              Финансовая отчетность;

·              Управление тарифными планами;

·              Различные дополнительные услуги (к примеру, онлайн-магазин).

интерактивный телевидение архитектура протокол





IPTV Android клиент

Клиент для Android - это уникальное приложение, разработанное компанией NetUP, благодаря которому пользователи получают доступ к IPTV на приставках под управлением Android. Новый удобный графический интерфейс с анимированными элементами позволяет c комфортом пользоваться всеми услугами IPTV: просмотр телеканалов с интерактивными возможностями, отложенный просмотр телепередач, электронная программа передач (EPG), видео по запросу и многое другое. Помимо услуг IPTV, абоненты получают доступ ко всем возможностям и функциям операционной системы Android: веб-серфинг, социальные сети, игры, YouTube, Skype, Google Maps, а также тысячи сторонних приложений для Android.

Графический интерфейс приложения на Android

Удобный и информативный графический интерфейс приложения NetUP.tv позволяет пользователям быстро получить доступ к услугам IPTV. Запуск приложения осуществляется с рабочего стола Android на приставке. При этом пользователь оказывается в главном меню приложения, из которого можно перейти к списку телеканалов, электронной программе передач, доступных фильмов по услуге видео по запросу или к информации и настройкам персонального лицевого счета.


При просмотре списка телеканалов, пользователь может переключаться между группами каналов. Для каждого телеканала показывается подробная программа передач на текущий день.

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

PCI-e карты

Профессиональные, высокопроизводительные PCI-e карты для приема спутникового, эфирного или кабельного телевизионного сигнала. Для кодирования и транскодирования видеопотоков в реальном времени для последующей передачи через локальные сети и Интернет.Dual DVB-CI- Универсальная карта с двумя DVB-C, DVB-C2, DVB-T, DVB-T2, DVB-S, DVB-S2 входами и двумя слотами Common Interface. Профессиональная DVB карта может применяться в DVB-IP шлюзах, системах спутникового интернета, домашних кинотеатрах и других решениях. Два универсальных DVB входа и два слота Common Interface (CI) расположены на одной PCI-e карте, что позволяет сохранить свободное место в сервере. Это особенно актуально в системах с ограниченным количеством свободных слотов. Например, стандартный сервер высотой 1U, с четырьмя слотами PCI-e, может принимать и декодировать контент с 8 транспондеров одновременно: NetUP IPTV Combine 8x или DVB-IP стример 8x.

 <#"806301.files/image017.jpg"> <#"806301.files/image018.jpg">

Схема работы зонда (iptvprobe) и коллектора


Сборка и установка пакета

Весь пакет можно условно разделить на следующие составные части:

·  Коллектор - собирает статистику с зондов. Статистика накапливается в базе данных (mysql)

·              Зонд - удаленный "вынос", который фиксирует проходящие IP-пакеты и передает информацию по сети на коллектор. Зонд состоит из двух подчастей - модуль ядра linux netup_netprobe.ko и пользовательское приложение iptvprobe.

·              Подсистема отчетов - Подключается к базе данных и выводит информацию в виде графиков и таблиц.

Сборка и запуск коллектора

Сборка коллектора:

cd iptvprobe/userver/cmake --debug-output. -DCMAKE_VERBOSE_MAKEFILE:BOOL=ONmake

Создание базы данных:

mysqladmin create iptvprobemysql iptvprobe < db.sql

Запуск коллектора:

./iptvprobe_server -l root -s 127.0.0.1

При таком запуске коллектор будет записывать информацию в базу данных "iptvprobe" на локальном хосте (127.0.0.1)

Сборка зонда

Сборка приложения под платформу x86:

cd iptvprobe/udaemon/cmake --debug-output. -DCMAKE_VERBOSE_MAKEFILE:BOOL=ONmake

Сборка модуля ядра под платформу x86:

cd iptvprobe/kmodule/make

Сборка модуля ядра под платформу sh4 (IP STB aminet 130):

cd iptvprobe/kmodule/export CROSS_COMPILE=sh4-unknown-linux-gnu-make ARCH=sh amino130

В директории aminet130_bin/ находятся уже собранные ядро и приложение для AmiNET 130 IP STB.

Запуск зонда

Загрузка модуля ядра linux:

cd iptvprobe/kmodule/insmod netup_netprobe.ko hook_position=0

При помощи параметра hook_position можно регулировать положение перехватчика пакетов:

- перехватчик фиксирует все входящие пакеты с сетевого интерфейса (PREROUTING), 1 - исходящие (POSTROUTING).

При запуске модуля на абонентском устройстве (например, Aminet 130) необходимо использовать значение 0 (PREROUTING). В случае если запуск производится на сервере генерирующем мультикаст, необходимо использовать значение 1 (POSTROUTING).

После того как модуль ядра успешно загружен необходимо создать символьное устройство в папке /dev и запустить пользовательское приложение iptvprobe:

mknod /dev/iptvprobe c 61 0cd iptvprobe/udaemon/./iptvprobe -i 224.117.117.10 -s 10.1.4.242 -r 5 -p 7700

Параметры запуска приложения:

-i Sets the multicast address for monitoring-s Specifies the IP address of the collector-p Specifies the port for the collector to accept connections from probes-r Specifies a run identifier

Полностью строку запуска можно увидеть в подсистеме отчетов.

Подсистема отчетов

Для запуска подсистемы отчетов скопируйте веб-скрипты из папки iptvprobe/report_sys/ в папку с cgi-bin скриптами для вашей системы:

cd iptvprobe/report_sys/cp *.pl /var/www/localhost/cgi-bin/

В системе должны быть установлены perl, GD.

Далее необходимо на рабочей станции оператора запустить браузер и перейти по адресу:

#"806301.files/image020.gif"> <#"806301.files/image021.jpg">

Схема сети при использовании пакета multifiles.

Описание потока

Поток представляет собой UDP-пакеты, которые содержат заголовок следующего формата:

struct mulfiles_header{_t message_type;_t flags;_t data_size;_t sequence_no;_t file_offset;};

message_type может принимать два значения:

#define MF_MTYPE_INFO 0x04030201

#define MF_MTYPE_DATA 0x04030202

Пакеты с типом MF_MTYPE_INFO представляют собой информационные пакеты и содержат информацию о передаваемом файле - в частности, следующую:

struct mulfiles_message_info{_t file_size;_t fw_version;char md5sum[16];filename[1024];

};

Размер файла, версия прошивки, имя файла и MD5-сумма для контроля целостности передачи. Информационные пакеты по умолчанию передаются с интервалом в 2 секунды.

В пакетах с типом MF_MTYPE_DATA находится содержимое передаваемого файла. В заголовке таких пакетов содержится информация о смещении блока передаваемых данных относительно начала файла. Таким образом, клиент может принимать файл с любой удобной позиции, не дожидаясь следующего цикла передачи. Такая логика позволяет максимально быстро принять файл без дополнительных задержек на поиск начала и конца файла. Скорость передачи данных в сеть можно регулировать ключами запуска сервера. По умолчанию скорость равна 100 КБайт/сек.

Описание программы-сервера

Ключи запуска сервера:

multifiles #./mfsrv -h's multicast file upload utility (server).(c) 2001-2008 NetUP Inc. www.netup.tv.date: Nov 3 2008 13:22:49this utility at your own risk.:

[-i IP] Multicast IP address to use. Default: 224.2.2.4

[-p port] UDP port to use. Default: 2222

[-d] Enable debug messages. Default: disabled

[-f file] name of the file to send. Default: testfile.bin

[-s speed] Upload speed Kbytes/sec. Default: 100 Kbytes/sec

[-t delay] Prophylactic info messages delay, sec. Default: 2 sec

[-u] Setting force update flag. Default: force update flag not set

[-a version] Firmware version. Default: 0

[-h] This help

Пример запуска сервера:

multifiles #./mfsrv -i 224.5.6.7 -p 1111 -f./netup.tgz -s 100 -a 1104 -t 6file:./netup.tgz file name:netup.tgz prophylactic_delay:6:102400 bytes/sec psleep: 13513

+ Sending file:netup.tgz sequence:1Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3Prophylactic info: 1068 bytes from 1068 send to socket:3File:netup.tgz successfully sent

+ Sending file:netup.tgz sequence:2

Как видно из этого примера, производится передача файла netup.tgz в мультикаст-группу 224.5.6.7:1111 со скоростью 100 КБайт/сек. Версия прошивки 1104.

Описание программы-клиента

Ключи запуска клиента:

multifiles #./mfcln -h's multicast file upload utility (client).(c) 2001-2008 NetUP Inc. www.netup.tv.date: Nov 3 2008 13:22:48this utility at your own risk.:

[-i IP] Multicast IP address to use. Default: 224.2.2.4

[-t socket wait timeout] UDP socket timeout, sec. Default: 10 sec.

[-d] Enable debug messages. Default: disabled

[-f file] name of the file to save.: using filename coming from server

[-s stat_file] name of the file to save stats in.: /tmp/mfstat.log

[-a fw_version] current fw version. Download is started onlythe received version is newer than current.

Default: 0

[-h] This help

Пример запуска клиента:

Info message received.:9240:netup.tgz:netup.tgz.9240:5741931 bytes

data...file to required 5741931 bytes, blocks size is:1048576filled. Size is:5741931 requested size is:5741931.write intooffset:1379info message received.:netup.tgz:208380:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:615480:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:1022580:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:1431060:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:1838160:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:2245260:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:2653740:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:3060840:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:3467940:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:3875040:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:4283520:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:4690620:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:5097720:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:5506200:5741931 bytesupdate:0_version:1104info message received.:netup.tgz:69000:5741931 bytesupdate:0_version:1104

'netup.tgz.9240' received. Checking...a646426d66b5df3318ba09f1ae33d2 - our file md5. size:5741931a646426d66b5df3318ba09f1ae33d2 - received md5check success'netup.tgz.9240' checked. Success.

Как видно из этого примера, производится прием файла netup.tgz из мультикаст-группы 224.5.6.7:1111. Текущая версия файла 1100, а передаваемая с сервера - 1104.

Создание прошивки

Содержимое папки scripts:

multifiles # ls -al scripts/16xr-x 4 root root 84 Oct 27 13:51.xr-x 5 root root 4096 Oct 27 15:36..

rwxr-xr-x 1 root root 115 Oct 27 13:51 createfw.sh

rwxr-xr-x 1 root root 187 Oct 27 13:42 customup.shxr-x 3 root root 35 Oct 27 13:51 firmware

rwxr-xr-x 1 root root 889 Oct 27 13:39 update.sh

Скрипт createfw.sh используется для создания прошивки. Пример такого скрипта:

multifiles # cat scripts/createfw.sh="firmware"="mf_fw.tgz"

(cd $FWPATH; tar cvfz../$FWNAME./*)"Firmware created. File: $FWNAME"

Cкрипт архивирует содержимое папки firmware в файл mf_fw.tgz. Этот файл в дальнейшем будет передаваться через мультикаст, как описано выше.

Папка scripts/firmware/ содержит файлы, необходимые для обновления, и скриптcustomup.sh, который выполняет необходимые действия на стороне клиента после скачивания. Простой пример такого скрипта:

multifiles # cat scripts/firmware/customup.sh"Running custom upgrade shell script... Please, wait""Copying new files... "stb_client/bin/stb_client /netup/stb_client/bin/stb_client "Updating config files... "

крипт копирует новые файлы и при необходимости обновляет конфигурационные файлы.

Работа с прошивкой на клиенте

Пример скрипта, организующего прием и обработку прошивки на клиенте (пример приведен для IP STB):

multifiles # cat scripts/update.sh="/mfupdater"="/netup"=$MFPATH/dst="/tmp/mfstat.log"

# Show update splash screen$MFPATH/updatesp.bmp > /dev/fb0 2>/dev/null

# get current ver[ -f $NEPATH/version ]; thenCURVER=`cat $NEPATH/version`CURVER=0

$MFPATH/mfcln -s $STATFILE -t 3 -i 224.5.6.7 -p 1111

f $MFPATH/download.bin -a $CURVER

[ $? -eq 0 ]; then"Updating software... "

# Create dst path$DSTPATH 2>/dev/null

# unbzip received file into /netup$DSTPATH$MFPATH/download.bin | tar -xz

# run custom script in received file$DSTPATHcustomup.sh

# save new version[ -f $STATFILE ]; then$STATFILE > $NEPATH/version

# cleanup dst dir if required. You can do this in customup.sh

"Update done. New fw version:"

cat $NEPATH/version

Cкрипт выполняет следующие шаги:

·  Получает текущую версию ПО. Версия хранится в файле /netup/version;

·              Запускает получение прошивки из мультикаст-группы;

·              Если файл получен успешно, то производится его разархивирование и запуск скрипта customup.sh, находящегося в этом архиве. Этот скрипт производит необходимые действия по копированию файлов, обновлению конфигурации и т.д. (пример такого скрипта приведён выше);

·              Новый номер версии сохраняется в файл /netup/version. Следующее обновление произойдет в случае имзенения версии прошивки на сервере либо если указан ключ "force update" на сервере.

Бинарные сборки

В архиве доступны готовые бинарные сборки для следующих платформ:

·  SH-4

·              Mipsel uclibc

·              ARM9

·              PPC

·              x86

Производителям IP STB

Предлагается включить приложение-клиент mfcln в базовую поставку IP STB. При каждом старте IP STB необходимо делать запуск для проверки наличия м ультикаст-потока с прошивкой. Такой запуск займет не более 2 секунд, если прошивки в мультикасте нет либо передается более старая прошивка. В этом случае можно производить дальнейший запуск без изменений. В случае, если из мультикаста была получена новая прошивка, производится ее установка, и дальнейший запуск уже может производиться по другой схеме, предусмотренной установленной прошивкой. Таким образом, свежеустановленные IP STB могут быть автоматически введены в работу, получив прошивку, специфичную для данной сети.