Просто, мощно, навсегда. Элекард CodecWorks 990 — программный лайв транскодер для AVC и HEVC

от автора

В прошлой статье мы рассмотрели, как работает аппаратное ускорение кодирования и декодирования видео Quick Sync Video (QSV) в процессорах 6-го поколения Skylake. Маленький участок SoC специально выделили для размещения специализированных интегральных схем, которые занимаются только обработкой видео. Воспроизведение видео с аппаратной поддержкой стало гораздо меньше отнимать ресурсов у других задач в ОС, меньше нагревать CPU и потреблять меньше электроэнергии. Благодаря QSV, например, ноутбук MacBook Air воспроизводит более 10 часов видео на одном заряде аккумулятора.

В то же время, аппаратное ускорение кодирования стало доступным для любых сторонних приложений. С последними поколениями процессоров Intel Core появилась аппаратная поддержка транскодирования в AVC/H.264 и HEVC/H.265 (а также VP8 и VP9) — это может привести к настоящей революции на рынке цифрового ТВ и видеотрансляций в интернете. Обычные пользователи вправе рассчитывать на повышение качества картинки видеотрансляций, уменьшение цен и увеличение количества доступных каналов цифрового ТВ.

Каким образом использовать аппаратное ускорение в своей программе — зависит от поставленной задачи. Intel публикует в открытом доступе API для разработки приложений под Windows Media SDK 2.0. Есть ещё кросс-платформенный API для разработки enterprise-приложений Intel Media Server Studio. Подробнее о работе с этими API см. в материалах корпоративного блога Intel на Хабре.

Какие программы используют аппаратное ускорение QSV

Доступ к аппаратному транскодеру QSV через SDK от Intel реализован во многих приложениях:

  • программные кодеры;
  • медиаконвертеры;
  • видео- и фоторедакторы;
  • софт для веб-камер;
  • инстант-мессенджеры;
  • медиаплееры.

Кроме того, QSV поддерживается свободной библиотекой для кодирования и декодирования libavcodec, которая является частью пакета FFmpeg. Это очень популярная библиотека с открытым исходным кодом. Таким образом, аппаратное ускорение от Intel есть во всех программах с FFmpeg.

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

SDK от Intel (Media Server Studio 2017 или Media SDK) предназначен, в том числе, для разработки приложений, решающих задачи кодирования видео в проектах различного типа, включая видеоконференции, работу с видео высокого разрешения до 4К, высокопроизводительное кодирование, Интернет-ТВ и подобные.

До появления аппаратной поддержки работы с видео со стороны Intel для кодирования применялись (и применяются по сей день) решения одного из трёх типов:

  • программное обеспечение, использующее для ускорения работы с видео выделенные графические карты (например, NVidia или AMD);
  • программное обеспечение, использующее только ресурсы центрального процессора;
  • аппаратные кодеры на чипах, так называемые System-On-Chip.

Благодаря решению Intel, кодировать видео теперь можно и на обычных бюджетных домашних компьютерах или серверах с процессорами Intel, используя готовое или разработав своё приложение с помощью SDK.

Стоит сразу отметить, что готовые приложения не требуют участия программистов и уже готовы для применения в реальных задачах; содержат, например, наиболее популярные профили транскодирования для Интернет-ТВ и работать с ними инженеру-непрограммисту в целом гораздо проще, чем с SDK.

Таким образом, чтобы запустить собственную систему транскодирования, нам нужны две вещи:

  1. программный транскодер;
  2. компьютер на процессоре Intel с поддержкой QSV — Intel Core 5-го поколения для AVC/H.264 или Intel Core 6-го поколения для HEVC/H.265. Или аналогичные серверные процессоры Xeon E3 4-го или 5-го поколений.

Программный транскодер с аппаратной поддержкой Intel

Производительность в программных транскодерах с аппаратной поддержкой QSV позволяет собрать коммерческое решение на недорогом сервере с одним процессором. Например, транскодер Элекард CodecWorks 990 заявляет такие характеристики производительности на каждый CPU:

  • HEVC-транскодирование в реальном времени на выходе 1 потока 4K 60p, 6 потоков FullHD (1080p) или 10 потоков HD720
  • AVC-транскодирование в реальном времени на выходе 10 потоков FullHD (1080p) или 16 потоков HD720

Количество видеопотоков ограничено только производительностью оборудования (то есть программно не ограничено). В зависимости от потребностей, можно собрать аппаратное решение на нужное количество процессоров, из нескольких отдельных серверов или нескольких картриджей в одном серверном корпусе. CodecWorks 990 позволяет настраивать и контролировать работу всех кодеров в одной сети через единое графическое приложение. Можно использовать «ручные» настройки транскодирования или выбрать из набора предустановленных схем. Поддерживается, в том числе, мульти-битрейт и мульти-скрин кодирование с дальнейшим вещанием по протоколу HLS или MPEG-DASH (скоро), что актуально в задачах Интернет-ТВ.

Технические характеристики

Вход Выход
Интерфейс Ethernet IP Ethernet IP
Формат видеопотока MPEG-2 TS UDP/RTP MPEG-2 TS UDP/RTP, HLS
Видеокодеки AVC/H.264, MPEG-2, до 4K HEVC/H.265, AVC/H.264, до 4K
Аудиокодеки AAC/HE-AAC v1, MPEG-1 Layer I/II AAC/HE-AAC v1, MPEG-1 Layer I/II, AC3 Pass-through
Препроцессинг Деинтерлейсинг, масштабирование, изменение соотношения сторон
Управление Через приложение GUI, мониторинг использования CPU/GPU и отказов
Поддержка ОС 64-битные Windows 7, 8, 8.1, 10, CPU Intel Broadwell/Skylake с поддержкой Quick Sync Video

Работа CodecWorks 990. Настойка, детальный обзор возможностей

Настройка всех кодирующих узлов CodecWorks 990 осуществляется через отдельное Windows-приложение, менеджер. Можно настраивать все сервера в локальной сети, добавив их в список менеджера по IP-адресам:

Каждый кодирующий узел может одновременно транскодировать несколько потоков, каждому из которых соответствует своя кодирующая консоль. Консоль имеет статус активности, назначенный ей профиль транскодирования, время работы и используемые ресурсы.

Создание нового профиля транскодирования для консоли осуществляется в пошаговом диалоговом окне, состоящем из 4-х этапов:

На первом этапе выбираются основные параметры: кодек видео, кодек аудио, выходной протокол вещания и количество битрейтов в случае мульти-битрейт кодирования. На следующем этапе требуется указать адрес входного вещания, затем выбрать подлежащие транскодированию аудио/видео дорожки в потоке и настроить параметры кодека. Пример настройки параметров видео кодека для адаптивного вещания HLS на два потока:

Помимо настройки профилей через диалоговые окна и в случае, когда требуется выйти за пределы простых вариантов транскодирования, есть возможность вручную создать полную цепочку работы с медиа и задать детальные параметры каждого блока. Здесь присутствует аналогия с тем, как собирается граф в приложении GraphEditor от Microsoft, являющийся частью библиотеки DirectShow, на которой и построено приложение CodecWorks 990.

В расширенном редакторе можно добавлять любые блоки (из списка зарегистрированных в системе DirectShow фильтров), соединять их, и настраивать полный список параметров каждого блока. Пример настроек видео энкодера:

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

Как уже было сказано выше, расширенный редактор кодирующих схем позволяет использовать любые DirectShow фильтры в системе, например, карты захвата ASI/SDI/HDMI, использовать сторонние декодеры для неподдерживаемых приложением форматов и прочее.

Демо-версию CodecWorks 990 можно скачать на веб-сайте продукта.

Аппаратное обеспечение — от мини-ПК до облака

Благодаря поддержке в процессорах Intel, аппаратное ускорение транскодирования видео работает на разнообразном оборудовании: от персональных компьютеров и мини-ПК до больших серверов.

Например, процессоры Intel Core с поддержкой QSV установлены в миниатюрных компьютерах Intel NUC. На сегодняшний день это одна из самых маленьких в мире платформ для аппаратного транскодирования, настоящий мобильный кодер. Например, последняя модель Intel NUC — модель Intel NUC Kit NUC6i7KYK с процессором 6-го поколения Intel Core i7-6770HQ и графикой Iris Pro Graphics 580. Размеры коробочки: 211×116×28 мм. И этот компьютер может кодировать один поток 60 кадров в секунду кодеком HEVC с разрешением 4К!

Intel NUC Kit NUC6i7KYK с четырёхъядерным процессором 6-го поколения Intel Core i7-6770HQ

Для транскодирования подходят и обычные настольные ПК с процессорами Intel Core. Если требуется аппаратное ускорение кодирования HEVC/H.265 или VP9, то придётся устанавливать CPU последнего 6-го поколения (Skylake). Для аппаратного кодирования AVC/H.264 подойдут и более старые процессоры Broadwell. Например, можно использовать предыдущую модель Intel NUC Mini PC 5i7RYH стоимостью от $449.

Intel NUC Mini PC 5i7RYH с процессором 5-го поколения Intel Core i7-5557U

Разница в цене между разными поколениями процессоров и платформ, на которых они установлены (ПК, мини-ПК, сервер, модульный сервер), довольно высока, так что в наше кризисное время бюджет кодеров следует тщательно рассчитывать, в зависимости от технических требований к проекту.

Для транскодирования видео в небольших проектах авторы CodecWorks 990 рекомендуют использовать один или несколько серверов традиционного форм-фактора Supermicro SuperServer 5019S-M2 (1 юнит, 1 CPU). Это бюджетное решение для обработки нескольких десятков потоков. Модульный сервер Kontron Symkloud оптимален для больших проектов OTT/IPTV — 18 процессоров в сервере высотой 2 стандартных юнита (2U). Наконец, для одновременного транскодирования сотен видеопотоков подходит специализированный сервер HPE Moonshot (4,3U, до 45 CPU).

Сервер HPE Moonshot

В таблице показано, сколько видеопотоков может обрабатывать каждый из этих серверов в разных сценариях, с программным транскодером CodecWorks 990.

Что даёт быстрое кодирование AVC и HEVC?

С развитием Интернета и алгоритмов компрессии видео, таких как HEVC/H.265, транскодирование видео становится всё более востребованной задачей. Цифровое видео теперь везде: телевизор и прямые трансляции в Интернете, в том числе по мобильным сетям, видеоконференц-связь, системы видеонаблюдения, телевизионное вещание в HD и 4K. Пожалуй, наибольший рост ожидается в сфере цифрового телевидения через Интернет. Именно здесь ожидаются самые заметные изменения в связи с переходом на кодек HEVC/H.265, который сегодня, в реальных задачах, показывает на 20-35% лучшую степень компрессии видео в сравнении с AVC/H.264 при том же качестве. Стоит также добавить, что из-за алгоритмической сложности кодека, программные и аппаратные реализации HEVC/H.265 продолжают активно улучшаться.

Быстрое транскодирование в HEVC/H.265 с аппаратной поддержкой в процессорах Intel появилось в 2015 году (Skylake). Фактически, видео, сжатое этим кодеком, только начинает своё массовое распространение.

Теоретически, при одинаковом качестве видео HEVC Main Profile выдаёт на 35,4% меньший битрейт, чем H.264/MPEG-4 AVC High Profile. Выигрыш по сравнению с MPEG-4 Advanced Simple Profile — 63,7% (данные IEEE). Это означает сокращение трафика более чем в два раза. В свою очередь, AVC HP выигрывает у MPEG-4 ASP около 44,5% при том же качестве.

Более эффективное сжатие означает, что провайдеры цифрового ТВ могут обслуживать большее количество абонентов на прежнем канале, транслировать каждому абоненту большее количество каналов, транслировать каналы в большем разрешении картинки и качестве. Телевидение высокой чёткости с разрешением 1920×1280 станет обычным делом, а скоро и телевидение 4K UHDTV перестанет быть экзотикой.


Сравнение разрешающей способности 4K, 2K и HDTV

Для доставки сигнала 4K UHDTV по интернету стандартом определен видео кодек HEVC/H.265, так как он позволяет добиться наибольшего выигрыша в сжатии при большем разрешении картинки. В России только в 2014 году появились первые телеканалы, которые вещают в разрешении 4K UHDTV, сжимая видео кодеком HEVC. Впрочем, телевизоры такого разрешения пока имеются у малого количества абонентов, да и стандартные российские квартиры не слишком подходят для комфортного просмотра телевидения на большом экране UHDTV с расстояния в несколько метров.

Реализация подобных проектов и услуг операторами требует соответствующего оборудования. Рабочий принцип здесь — чем больше выбор, тем лучше для операторов и, в конечном итоге, для абонентов, пользователей услуг. Через SDK Intel открывает возможности для разработчиков писать свои программные кодеры и транскодеры, соревноваться в удобстве использования и дополнительных функциях. Больше выбора — выше качество. У заказчика есть выбор: написать приложение «под себя» с использованием SDK; взять готовое приложение, как CodecWorks 990, подобрать аппаратное обеспечение и провести инженерную работу по установке и настройке; или же купить полностью готовый к использованию аппаратный кодер. Выбор основывается на стоимости различных вариантов, технической подготовленности заказчика и разработчика, бизнес-задаче.

Абоненты же могут быть уверены в одном — в ближайшее время их ожидает ещё больше видео с лучшим качеством за меньшие деньги, и Intel оказывает серьёзное влияние на этот тренд.
ссылка на оригинал статьи https://habrahabr.ru/post/313544/


Комментарии

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

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