This post is also available in: Английский
С ростом популярности 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