Flash Access: защита live видео

This post is also available in: Английский

live stream

С ростом популярности live-вещания (стриминг) все острее встает вопрос защиты передаваемого контента от копирования и несанкционированного использования. В этой http://autoday.net/  статье мы постараемся описать механизм реализации зашиты контента при помощи Adobe Flash Media Server и Adobe Flash Access, а тажке последующей оптимизации комплекса live вещания.
Для конфигурации комплекса потребуются установленные и настроенные сервера Flash Media Server и Flash Access 2.0. Для online шифрования контента используется встроенный в FMS компонент Live Packager, особенности работы которого мы рассмотрим далее. Важно отметить, что на данный момент единственным надежным средством защиты live видео является использование HTTP Dynamic Streaming + DRM технологий (использование RTMPE дает существенно меньшую надежность защиты видео). При использовании HTTP DS для доставки live видео онлайн поток доставляется в виде коротких сегментов, которые можно шифровать используя стандартный vod подход.

В качестве хранилища для файлов live-потока может быть использована СХД с доступом по протоколам NFS/CIFS.

Для ассоциации Live-потока, транслируемого на FMS с комплексом правил, применяемых к нему, используется конфигурационный файл Event.xml, который по умолчанию располагается в директории: applications/livepkgr/events/_definst_/liveevent/
Рабочий вариант Event.xml приведен ниже (для этого у Вас должен корректно работать сервер Flash Access)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<Event>
<EventID>liveevent</EventID> # Определяем имя нашего live-event потока
<Recording>
#Задаем потоки вещания и определяяем длительность фрагментов и
#сегментов
<FragmentDuration>1000</FragmentDuration>
<SegmentDuration>10000</SegmentDuration>
<ContentProtection enabled="true">  #Включаем шифрование FA 2.0
<ProtectionScheme>FlashAccessV2</ProtectionScheme>
<FlashAccessV2>
<ContentID>livestream1</ContentID> #Определяем название вещаемого потока
<CommonKeyFile>common-key.bin</CommonKeyFile>
<LicenseServerURL>http://drm.denivip.ru/flashaccessserver/prod</LicenseServerURL>
<TransportCertFile>denivip-ru-t.der</TransportCertFile>
<LicenseServerCertFile>denivip-ru-ls.der</LicenseServerCertFile>
<PackagerCredentialFile>denivip-ru-p.pfx</PackagerCredentialFile>
<PackagerCredentialPassword>*****</PackagerCredentialPassword>
<PolicyFile>ad-policy.pol</PolicyFile>
</FlashAccessV2>
</ContentProtection>
</Recording>
</Event>

После конфигурации Event, необходимо выполнить описание потоков вещания в конфигурационном файле Manifest.xml, на основе которого будет сгенерирован f4m для видео плеера.

Опишем в нем один выходной поток вещания livestream1:

1
2
3
<manifest xmlns="http://ns.adobe.com/f4m/1.0">
<media streamId="livestream1" bitrate="1000" />
</manifest>

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

Для вещания потоков на сервер FMS используем программу Adobe Flash Media Live Encoder 3.2, поток будем передавать с карты видеозахвата. Важно отметить, что если вы собираетесь доставлять видео на iOS устройства (iPad / iPhone / iPod), то звук нужно кодировать AAC кодеком. FMLE поддерживает AAC кодек на MacOS без установки плагина, а в Windows вам потребуется покупать дополнительный AAC плагин.

В качестве FMS URL необходимо указать rtmp://fms.denivip.ru/livepkgr, в опциях Stream — livestream%i?adbe-live-event=liveevent&adbe-http-streaming-ver=1.0. Также  в конфигурации опций Video необходимо задать опции передаваемого видео потоков, указав битрейт, который описан в файле Manifest.xml. Для активации DVR необходимо активировать опцию “DVR Auto Record”.

После нажатия кнопки Start будет запущен процесс публикации потока на Ваш FMS сервер. В директории applications/livepkgr/events/_definst_/liveevent/ должен появиться файл вида MTYxMjAzMzAzMg=.stream.

Необходимо заметить, что для организации вещания необходимо использование достаточно мощных серверов, ниже приведены наши рекомендации для FMS сервера и станции вещания.

FMS

  • Quad Core 2.4 GHz x 2
  • >8Gb RAM
  • SAS/SSD 200Gb (RAID — опционально)

 

В данной конфигурации FMS сервера возможен прием и шифрование live потоков вплоть до 50-70 мегабит (зависит от количества потоков и их битрейта)

Live Encoder

  • Quad Core 2.4Ghz
  • >4Gb RAM

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

Для доставки видео сегментов используется веб сервер Apache2 с установленным f4fmodule, подробности настройки которого мы описывали в предыдущих статьях. Опционально для кеширования может быть использован сервер NGINX (это особенно актуально, если транслируемые вами потоки поддерживают DVR).

Для воспроизведения Live-потоков можно использовать opensource решение Strobe Media Playback (страница проекта http://osmf.org/strobe_mediaplayback.html)

Исходные файлы плеера необходимо скопировать на сервер в директорию с HTTP доступом, после чего необходимо открыть страницу плеера setup.html