Настройка и тестирование Media Cache плагина для Wowza 3

33В данной заметки будет идти речь о установке и настройка Media Cache плагина для сервера видеостриминга wowaz 3. Данный плагин полезен для масштабирования видеостримов ( а именно vod-ов). Плагин кэширует видео, которое просматривает клиент, и тем самые снижает нагрузку на сервер. Кэш можно хранить как в файловой системе(на жестком диске) так и в оперативной памяти.
Где взять плагин?
Нужно зайти на официальный сайт и заполнить соответствующею форму. Здесь все написано. Через несколько дней, вам придет на почту ссылка, по которой можно скачать плагин. Если ссылка не пришла, я прикрепляю архив к этой заметки — можете воспользоваться им.

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

unzip MediaCache_2.0.zip
cd MediaCache
sudo cp lib/wms-plugin-mediacache.jar /usr/local/WowzaMediaServer/lib/
sudo cp conf/MediaCache.xml /usr/local/WowzaMediaServer/conf/
sudo mkdir /usr/local/WowzaMediaServer/applications/mediacache
sudo mkdir /usr/local/WowzaMediaServer/conf/mediacache
sudo cp /usr/local/WowzaMediaServer/conf/Application.xml  /usr/local/WowzaMediaServer/conf/mediacache/
sudo vim /usr/local/WowzaMediaServer/conf/mediacache/Application.xml

Инструкция по установке и настройки MediaCache идет вместе с архивом в pdf файлике. Все что нужно сделать на серверной стороне — это скопировать jar-ник для плагина в либы видеосервера, добавить конфигурационный файл. Плагин нужно включать для каждого Application. В данном случаи я создал (по инструкции) отдельный тестовый Application с названием mediacache и добавил к нему отдельный файл конфигураций (по умолчанию настроен один файл конфигураций для всех стримов).
Теперь редактируем конфигурацию Application.

sudo vim /usr/local/WowzaMediaServer/conf/mediacache/Application.xml

Ставим RTP/Authentication/PlayMethod: none

Добавляем свойство MediaReader/Properties:
<MediaReader>
		<Properties>
			<Property>
			    <Name>randomAccessReaderClass</Name>
			    <Value>com.wowza.wms.plugin.mediacache.impl.MediaCacheRandomAccessReader</Value>
			</Property>
                        <Property>
                            <Name>bufferSeekIO</Name>
                            <Value>true</Value>
                            <Type>Boolean</Type>
                        </Property>
		</Properties>
</MediaReader>

Теперь настраеваем конфиг для медисервера, чтобы он поключила наш плагин.

sudo vim /usr/local/WowzaMediaServer/conf/Server.xml
Добавляем в класс MediaCacheServerListener в секцию <ServerListeners>:
<ServerListener>
       <BaseClass>com.wowza.wms.plugin.mediacache.impl.MediaCacheServerListener</BaseClass>
</ServerListener>

Те же действия нужно сделать на клиенте (втором сервере с wowza, с которого будем тестировать IP=192.168.2.233).
Теперь настроим на главном серваке (192.168.2.250) стрим с кэшированием.

vim conf/MediaCache.xml
...
<Path>${com.wowza.wms.context.ServerConfigHome}/mediacache</Path>  	- папка, в которой будел храниться кэш
<MaxSize>50G</MaxSize>							                - макс. размер кэша
...
...
<Name>content1</Name>							                - лейбл для стрима
<BasePath>/usr/local/WowzaMediaServer/content/</BasePath>		        - путь к медиафайлам
<Prefix>path1/</Prefix>							                        - префикс для смены BasePath (алиас)
<!-- <BaseClass>com.wowza.wms.plugin.mediacache.impl.MediaCacheItemHTTPImpl</BaseClass> -->
<BaseClass>com.wowza.wms.plugin.mediacache.impl.MediaCacheItemFileImpl</BaseClass>
...

Теперь можно перезагрузить медиасервер и в логах посмотреть подхватился ли плагин.

root@ubuntu:~# tail -7 /usr/local/WowzaMediaServer/logs/wowzamediaserver_access.log
2013-04-12 03:27:41 PDT comment server INFO 200 - MediaCacheImpl.start[MediaCache] Wowza MediaCache AddOn 2.0.0 build1789 - - - 6.955 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-12 03:27:41 PDT comment server INFO 200 - MediaCacheImpl.start[MediaCache]: Add store: path:/usr/local/WowzaMediaServer/mediacache maxSize:53687091200 - - - 7.093 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-12 03:27:41 PDT comment server INFO 200 - MediaCacheImpl.start[MediaCache]: Add source[content1]: prefix:path1/ basePath:/mnt/hdd/ - - - 7.177 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-12 03:27:41 PDT comment server INFO 200 - MediaCacheImpl.start[MediaCache]: Flushing cache: start - - - 7.185 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-12 03:27:42 PDT comment server INFO 200 - MediaCacheImpl.start[MediaCache]: Flushing cache: done - - - 7.377 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-12 03:27:42 PDT comment server INFO 200 - MediaCacheImpl.start[MediaCache]: Start MediaCache GC - - - 7.377 - - - - - - - - - - - - - - - - - - - - - - - - -
2013-04-12 03:27:42 PDT comment server INFO 200 - Wowza Media Server is started! - - - 7.38 - - - - - - - - - - - - - - - - - - - - - - - - -

Теперь нужно настроить клиент (192.168.2.233), с которого будем проводить тестирование vod-ов.

vim conf/Tests.xml
<Property>
	<Name>workerCount</Name>
	<Value>3</Value>						- количество рабочих подключений
	<Type>Integer</Type>
</Property>
<Property>
	<Name>fileCount</Name>
	<Value>3</Value>						- индексы для медиафейлов (simple1.mp4,simple2.mp4,...)
	<Type>Integer</Type>
</Property>
<Property>
	<Name>streamName</Name>
	<Value>mp4:path1/sample</Value>                         - НАЗВАНИЕ СТРИМА (path1 - из MediaCache.xml на серваке)
</Property>
<Property>
	<Name>streamExt</Name>
	<Value>.mp4</Value>			                        - расширение медиафайлов.
</Property>
<Property>
	<Name>vhostName</Name>
	<Value>_defaultVHost_</Value>
</Property>
<Property>
	<Name>connectionString</Name>
	<!--    <Value>vod/_definst_</Value> -->
	<Value>mediacache</Value>			                - application (rtmp://192.168.2.250:1935/mediacache)
</Property>

Теперь, чтобы протестировать поток:

cd /usr/local/WowzaMediaServer/bin
root@ubuntu:/usr/local/WowzaMediaServer/bin# ./performance.sh vod
Configure logging: file:///usr/local/WowzaMediaServer/conf/log4j.properties
INFO server comment - test: **** PerformanceRemoteClientTest *****
INFO server comment - workerCount: 3
INFO server comment - fileCount: 0
INFO server comment - streamName: mp4:path1/sample
INFO server comment - streamExt: .mp4
INFO server comment - vhostName: _defaultVHost_
INFO server comment - connectionStr: mediacache
INFO server comment - doRandom: true
INFO server comment - doRepeat: true
INFO server comment - ipAddress: 192.168.2.250
INFO server comment - ports: 1935
INFO server comment - bufferTime: 3000
INFO application app-start _definst_ mediacache/_definst_
INFO server comment - start [0]: 0
INFO server comment - callConnect [0]: mediacache
INFO server comment - connected [0]: 1043095830
INFO server comment - call play(first) [0]: mp4:path1/sample.mp4
INFO server comment - start [1]: 2
INFO server comment - callConnect [1]: mediacache
INFO server comment - connected [1]: 1808223782
INFO server comment - call play(first) [1]: mp4:path1/sample.mp4
INFO server comment - StreamOnStatus [1]: NetStream.Play.Reset
INFO server comment - StreamOnStatus [1]: NetStream.Play.Start
INFO server comment - StreamOnStatus [0]: NetStream.Play.Reset
INFO server comment - StreamOnStatus [0]: NetStream.Play.Start
INFO server comment - start [2]: 3
INFO server comment - callConnect [2]: mediacache
INFO server comment - connected [2]: 1022842220
INFO server comment - call play(first) [2]: mp4:path1/sample.mp4
INFO server comment - StreamOnStatus [2]: NetStream.Play.Reset
INFO server comment - StreamOnStatus [2]: NetStream.Play.Start
INFO server comment - totalBytes: 0
INFO server comment - Status running:3 currBehind:0
INFO server comment - Status running:3 currBehind:0

На сервере можно проверить размер кэша. Если все работает как нужно, размер папки будет расти.

root@ubuntu:/usr/local/WowzaMediaServer# du -sh mediacache/
3.2M    mediacache/

Можно также тестировать через Adobe Flash player (RTMP):

Server: rtmp://[wowza-address]/mediacache				- rtmp://192.168.2.250:1935/mediacache
Stream: mp4:path1/media/sample.mp4					- rtmp://192.168.2.250:1935/mediacache/path1/sample3.mp4

Здесь:
192.168.2.250 — IP главного медиасервера.
192.168.2.233 — IP сервера из которого тестируем.
Архив с плагином:
MediaCache_2.0

Автор: admin, 12 апреля 2013
Рубрики: Видеопотоки
Метки: , ,

Написать комментарий

Последние статьи

Яндекс.Метрика
?>