2015-11-29 20:34:00
Зачем нужно транскодирование (преобразование параметров) IP-потока.
IP мастер-поток, генерируемый на стороне энкодера или приемника сигнала, обычно отличается высоким качеством, но для передачи на устройства конечного потребителя через IP сеть он, чаще всего, не подходит. Это связано с тем что, все абоненты имеют приемники, отличающиеся по доступной ширине канала, типу компрессии, разрешению экрана. Для обеспечения гарантированного просмотра доставленного контента необходимо осуществить преобразование потока.
Медиа сервер Wowza Streaming Engine поддерживает транскодирование ( и трансрейтинг ) IP потоков всех наиболее часто используемых форматов. Процесс транскодирования представляет собой преобразование типа компрессии ( например MPEG2 видео в H.264 и MPEG1 аудио в AAC ), трансрейтинг позволяет осуществить преобразование величины битрейта и разрешения без изменения тип компрессии.
Как происходит обработка сигнала.
На сегодняшний день на рынке существует большое количество как программных, так и аппаратных кодирующих устройств. Транскодирование Wowza основано на программном сжатии, однако он поддерживает обработку сигнала с помощью дополнительных устройств и технологий, которые позволяют существенно разгрузить центральный процессор и задействовать его для решения других задач.
За преобразование сигнала отвечает специальный модуль Wowza Transcoder Addon, входящий в базовый состав Wowza Streaming Engine. Обработка видео потока может происходить:
Очевидным является тот факт, что чем мощнее платформа, тем больше потоков она сможет сгенерировать. На первый взгляд, кажется, что и по стоимости выходит также. Чем дороже компоненты, тем эффективнее они будут работать. Так ли это на самом деле, мы и рассмотрим в данной статье. Для проведения сравнения будем руководствоваться официальными данными, приведенными компанией Wowza Media Systems на своем форуме (https://www.wowza.com/forums/content.php?332-Wowza-Transcoder-AddOn-Performance-Benchmark ).
Тестирование проходило следующим образом:
Wowza Transcoder получает в качестве источника от 1 до 8-ми потоков. Каждый источник должен быть преобразован в несколько потоков, которые могут отличаться разрешением и битрейтом на выходе. В качестве аппаратной платформы рассматривались серверные платформы на базе Intel Xeon E3 Series, двухпроцессорные системы на Intel Xeon X5650 и аренда вычислительной платформы Amazon EC2 Instance.
Было выполнено 3 вида тестов:
Характеристики серверных платформ представлены в таблице ниже.
|
Серверная платформа |
Операционная система |
GPU ускорение |
1 |
|
MS Windows 7 64bit Ultimate |
Нет |
2 |
Intel HD 4600 (Intel Quick Sync) |
||
3 |
NVIDIA QUADRO K5000 (NVENC) |
||
4 |
|
Ubuntu 12.04 (64-bit) |
Нет |
5 |
Intel HD 4600 (Intel Quick Sync) |
||
6 |
NVIDIA QUADRO K5000 (NVENC) |
||
7 |
|
MS Windows 8.1 64bit |
Нет |
8 |
NVIDIA QUADRO K5000 (NVENC) |
||
9 |
Ubuntu 12.04 (64-bit) |
Нет |
|
10 |
NVIDIA QUADRO K5000 (NVENC) |
||
11 |
|
Amazon Linux |
Нет |
12 |
|
Amazon Linux |
Нет |
Разработчики компании Wowza Media провели 3 теста со следующими параметрами исходного сигнала: 720р h.264, 1080р h.264 и 1080р MPEG2.
Для тестирования сигнала 720р h.264 были выбраны следующие параметры входного потока:
На выходе необходимо получить от 1 до 8-ми потоков 720p, 360p, 240p, 160p. Графики, представленные ниже, следует понимать следующим образом: горизонтальная шкала показывает количество входных потоков, каждый из которых кодируется в 720p, 360p, 240p и 160p. То есть, если на входе 8 различных потоков, то на выходе их будет 8х4=32 потока с различными параметрами.
Если проанализировать полученные графики (для начала, рисунок 1), можно сделать очень интересные выводы. Например, процессорная обработка сигнала является наименее эффективной, процессор Intel Xeon E3-1285V3 не в состоянии сгенерировать более 4-х потоков для ОС Windows 7. При этом его загрузка возрастает более 75%, что недопустимо, так как вероятность возникновения критической ситуации и возможности сбоя в работе сильно возрастает. Это вполне закономерный результат, так как процессоры данной серии имеют 4 ядра и отлично справляются с одним потоком вычислений, но гораздо хуже ведут себя при выполнении большего количества параллельных операций.
Самыми интересными получились результаты работы на базе встроенной в процессор технологии Intel Quick Sync. График представляет собой прямую линию, то есть нагрузка возрастает плавно и ровно, что говорит о высокой стабильности работы. Нагрузка всегда находится в норме. Единственным серьезным минусом является отсутствие возможности наращивания мощностей. Как только ресурс исчерпан, остается либо менять процессор на более современный (хотя его эффективность еще нужно проверить), либо приобретать дополнительный сервер. Платформ поддерживающих несколько CPU с QuickSync не существует. Но во многих случаях такой вариант очень привлекателен и по цене, и по эффективности, и по надежности, и по энергопотреблению.
Применение GPU-кодирования на базе видеокарты NVIDIA QUADRO K5000 показывает очень высокий запас производительности системы. Никаких проблем при обработке до 8-ми входных потоков. Нагрузка возрастает относительно стабильно и находится в норме, то есть возникновение критической ситуации маловероятно. К сожалению, установка второй видеокарты не позволит удвоить количество обрабатываемых потоков, однако увеличить производительность еще на 15-20% вполне реально. Не стоит забывать, что на сегодняшний день плата К5000 не является передовой, на рынке присутствует обновленная К5200, а также последняя модель линейки М5000. Вероятность того, что 2 видеокарты последнего поколения дадут соответствующий пророст производительности, очень высока.
График на рисунке 2 позволяет сделать похожие выводы. Процессорная обработка по-прежнему наименее эффективна, а вот использование GPU дает отличные результаты. Логично будет предположить, что использование более мощного графического адаптера даст еще более выдающиеся результаты и позволит установить несколько карт в одну платформу.
Пойдем в том же порядке, что и ранее. Так как возросло и разрешение, и битрейт потока, то результаты обещают быть интересными.
Что получилось, видно из графиков на рисунках 3-4. Относительно выбора решения и распределения нагрузки результаты получились идентичными. Но стоит обратить особое внимание на то, что при повышении битрейта и разрешения исходного потока нагрузка тоже возрастает, но в результате ни одна из конфигураций не в состоянии перекодировать 8 потоков, как это было в предыдущих тестах для 720р. Лучший результат производительности показал облачный сервис от Amazon, а из серверных платформ 2-х процессорная конфигурация с использованием QUADRO K5000.
Возрастание нагрузки и выбор процессорной мощности для трансрейтинга являются очевидными
А теперь перейдем к результатам транскодирования > MPEG2 в H.264. Вряд ли стоит ожидать принципиально других показателей, если рассматривать производительность конфигурацию друг относительно друга. Тем не менее, важно убедиться в этом.
Итак, графики ниже полностью подтверждают наше предположение.
На рисунке 7 показаны величины кадров основных разрешений. Картинка дает очень наглядное представление о том, как будут расходоваться вычислительные мощности при увеличении размера кадра. Это стоит учитывать при выборе платформы и расчете требуемых мощностей. Ведь, на первый взгляд, конечный потребитель останется доволен как от 720р, так и от 1080р. Однако, вычислительных мощностей потребует в 2 раза больше. Стоит серьезно подумать о том, на сколько рационально работать с максимальным качеством, и соответствует ли это заложенному бюджету.
Рисунок 7. Визуальное представление сравнения размеров кадра для общепринятых стандартов изображения.
Если суммировать все вышесказанное и просто внимательно посмотреть на полученные данные, то мы получим вот такие выводы: