Просто, потужно, назавжди. Элекард 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,3 U, до 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 чинить серйозний вплив на цей тренд.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.