- PVSM.RU - https://www.pvsm.ru -

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

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

В прошлой статье [2] мы рассмотрели, как работает аппаратное ускорение кодирования и декодирования видео 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 [3]. Есть ещё кросс-платформенный API для разработки enterprise-приложений Intel Media Server Studio [4]. Подробнее о работе с этими API см. в материалах [5] корпоративного блога Intel на Хабре.

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

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

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

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

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

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

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

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

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

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

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

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

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

Производительность в программных транскодерах с аппаратной поддержкой QSV позволяет собрать коммерческое решение на недорогом сервере с одним процессором. Например, транскодер Элекард CodecWorks 990 [12] заявляет такие характеристики [13] производительности на каждый 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-адресам:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 [16] стоимостью от $449.

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

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

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

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

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

Сервер HPE Moonshot

В таблице [20] показано, сколько видеопотоков может обрабатывать каждый из этих серверов в разных сценариях, с программным транскодером 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 [21]). Это означает сокращение трафика более чем в два раза. В свою очередь, AVC HP выигрывает у MPEG-4 ASP около 44,5% при том же качестве.

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

Просто, мощно, навсегда. Элекард CodecWorks 990 — программный лайв транскодер для AVC и HEVC - 10
Сравнение разрешающей способности 4K, 2K и HDTV

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

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

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

Автор: Intel

Источник [23]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/algoritmy/202741

Ссылки в тексте:

[1] Image: https://habrahabr.ru/company/intel/blog/313544/

[2] прошлой статье: https://habrahabr.ru/company/intel/blog/311320/

[3] Media SDK 2.0: https://software.intel.com/en-us/media-sdk

[4] Intel Media Server Studio: https://software.intel.com/en-us/intel-media-server-studio

[5] материалах: https://habrahabr.ru/company/intel/blog/150205/

[6] многих приложениях: http://www.intel.com/content/www/us/en/architecture-and-technology/quick-sync-video/quick-sync-video-general.html

[7] FFmpeg: http://ffmpeg.org/

[8] Intel Core 5-го поколения: http://ark.intel.com/products/codename/38530/Broadwell#@All

[9] Intel Core 6-го поколения: http://ark.intel.com/products/codename/37572/Skylake?q=skylake#@All

[10] Xeon E3 4-го: http://ark.intel.com/products/family/87722/Intel-Xeon-Processor-E3-v4-Family#@All

[11] 5-го: http://ark.intel.com/products/family/88210/Intel-Xeon-Processor-E3-v5-Family#@All

[12] Элекард CodecWorks 990: http://codecworks.elecard.com/

[13] такие характеристики: https://drive.google.com/file/d/0BzKhMMBEvwWZOVplVmR1QUxTZTQ/view

[14] Intel NUC: http://www.intel.ru/content/www/ru/ru/library/viewmore.results.html?prTag=rintelproduct:boardsandkits/intelnuckits

[15] Intel NUC Kit NUC6i7KYK: http://www.intel.ru/content/www/ru/ru/nuc/nuc-kit-nuc6i7kyk-features-configurations.html

[16] Intel NUC Mini PC 5i7RYH: http://www.intel.com/buy/us/en/product/components/intel-nuc5i7ryh-471593

[17] Supermicro SuperServer 5019S-M2: https://www.supermicro.com/products/system/1U/5019/SYS-5019S-M2.cfm

[18] Kontron Symkloud: http://www.kontron.com/products/systems/cloud-systems/symkloud-ms2900-media.html

[19] HPE Moonshot: https://www.hpe.com/us/en/servers/moonshot.html

[20] таблице: https://drive.google.com/file/d/0BzKhMMBEvwWZbk5KUWtYOWdqMUk/view

[21] данные IEEE: http://iphome.hhi.de/wiegand/assets/pdfs/2012_12_IEEE-HEVC-Performance.pdf

[22] первые телеканалы: http://www.cnews.ru/news/top/v_rossii_poyavilsya_pervyy_telekanal_ultra_hd

[23] Источник: https://habrahabr.ru/post/313544/?utm_source=habrahabr&utm_medium=rss&utm_campaign=best