«

»

Окт 03 2013

Распечатать Запись

Нагрузочное тестирование Wowza сервера для протокола HLS

Wowza Любому администратору медиа-сервера интересно знать, какое количество одновременных подключений выдержит его медиа-сервер. Сегодня речь пойдет о Wowza сервере и его нагрузочном тестировании.

Wowza и RTMP

 Для проведения нагрузочного тестирования Wowza Media Server по протоколу RTMP существует утилита от компании Wowza, которая называется Flash RTMP Load Test Tool (http://www.wowza.com/forums/content.php?122-How-to-get-Flash-RTMP-Load-Test-Tool).

 Это довольно удобное программное обеспечение для нагрузочного тестирования медиа-серверов. Утилита позволяет эмулировать до нескольких сотен подключений к медиа-сереру по протоколу RTMP с одного компьютера, в зависимости от мощности PC на котором она запущенна.

Wowza и HLS

 Сейчас все больше пользователей используют мобильные устройства для получения видео-потоков с медиа-серверов по протоколу HLS, поэтому и у нас появляются задачи по нагрузочному тестированию серверов для протокола HLS. Был найден проект hls-player (http://code.google.com/p/hls-player/). Этот hls плеер, написан на языке python. Посмотрим на что он способен.

  • Скачиваем архив с плеером HLSPlayer-0.1.tar.gz
  • Распаковываем его и в директории [install-dir]/HLSPlayer-0.1
  • Выполняем команду sudo python setup.py install
  • Пробуем запустить плеер.

 Опция -n указывает, какое количество одновременных потоков запустить, по умолчанию значение 1. Опция -D отключает вывод видео на экран.

 hls-player -n 1 -D http://[ip-server]:1935/live2/_definst_/Sample1024/playlist.m3u8

 После первого запуска плеер повис и не работал. Я проверил плеер на другом сервере.

 hls-player -n 1 -D http://www.nasa.gov/multimedia/nasatv/NTV-Public-IPS.m3u8

 Все заработало!

Вносим некоторые изменения

 Я решил разобраться в чем дело. После просмотра исходных кодов плеера я пришел к выводу, что для работы с Wowza сервером эту программу необходимо модифицировать. Для этого нужно внести некоторые изменения. Открываем в текстовом редакторе файл [install-dir]/HLSPlayer-0.1/HLS/m3u8.py и делаем следующее:

Строки 123 и 124:
i = (f.split(‘=’) for f in l.split(‘,’))

d = dict((k.strip(), v.strip()) for (k,v) in i)

заменяем на следующие:
if l.find(‘»‘)==-1:

i = (f.split(‘=’) for f in l.split(‘,’))

else:

l1 = l.replace(‘, ‘, ‘a’)

l2= «».join([str(i) for i in l1])

i = (f.split(‘=’) for f in l2.split(‘,’))

d = dict((k.strip(), v.strip()) for (k,v) in i)

А также после строки 141:
v = l[8:].split(‘,’)

Добавляем следующие строки:
if v[0].find(‘.’) >0:

l1 = v[0].split(‘.’)

v[0]= l1[0]

 После внесения изменений сохраняем файл. Теперь я снова вернулся в директорию [install-dir]/HLSPlayer-0.1 и выполнил уже известную команду:

sudo python setup.py install

 Далее попробовал запустить его снова:

hls-player -n 80 -D http://[ip-server]:1935/live2/_definst_/Sample1024/playlist.m3u8

 Все работает! В целом инструмент для тестирования довольно удобный. Будем надеяться, что команда разработчиков будет и дальше улучшать и развивать Hls-player.

Заключение

  Эта статья была написана и опубликована совместно c моим коллегой Евгением Петровым, который и проделывал выше описанные действия.

 Если вам нужно что-то настроить или получить консультацию по медиа серверам и системам, можете обращаться ко мне и нашей команде через форму контактов.

 Приглашаю подписаться на новости моей публичной страницы ВКонтакте, ее адрес http://vk.com/itmultimedia . Буду рад видеть Вас в своих подписчиках!

Всего хорошего!


Комментарии:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>