Обзор программных кодеров

2017-04-09 21:31:00

Некоторое время назад только аппаратные платформы были способны обеспечить качественное преобразование видео и аудио сигналов в цифровой компрессированный поток для передачи по IP-сетям. Это было связано как с высокими требованиями к вычислительной мощности CPU, так и с отсутствием необходимого уровня стабильности операционной системы.

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

Если рассматривать перечень программных решений кодирования сигналов, то их можно разделить на 2 группы:

  • Кодеры в чистом виде. К ним можно отнести, например, Adobe FLME, ffmpeg и OpenBroadcaster Software.
  • Программные видеомикшеры с функциями кодирования выходного сигнала. Наиболее популярными на сегодняшний день являются Studiocoast VMIX и Telestream Wirecast.

Если же требуется разработать собственное решение с уникальным функционалом, то можно воспользоваться пакетом разработчика Medialooks MPlatform SDK.

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

Adobe FLME (Flash Media Live Encoder).

Продукт появился довольно давно и изначально предназначался для передачи потока на сервер Adobe Media Server по протоколу RTMP, являющийся собственной разработкой компании. В качестве источника сигнала может выступать практически любое DirectShow-совместимое устройство, от простейших веб-камер до профессиональных плат типа AJA, Blackmagic или Osprey.

Помимо Adobe Media Server поток (или потоки) может быть передан на любую серверную платформу, которая поддерживает работу с входящими данными по RTMP, например, Wowza Streaming Engine. Несмотря на то, что функционал данного приложения невелик, его возможностей более чем достаточно, чтобы принять сигнал практически с любого устройства аудио и видео захвата и передать в требуемом качестве на любую медиа платформу. При этом стоит отметить, что сигнал можно транслировать одновременно в различном битрейте и разрешении, а также осуществлять его запись на локальный диск. Это позволяет использовать разработку в качестве станции инжеста или видео логгера. Также очень удобной функцией является возможность передачи данных на основной и резервный серверы.

Разработчики не позиционируют FMLE как надежное профессиональное приложение, способное работать в режиме 24/7, однако это легко достигается средствами операционной системы в совокупности с возможностью запуска его из командной строки с требуемыми параметрами без инициализации графического интерфейса. Для этого создается командный (.bat) файл, содержащий в себе инструкции для запуска Java или VB сценария. Сценарий определяет параметры запуска или остановки работы основного приложения (FMLE), например, его перезапуск через фиксированные промежутки времени, автоматическую чистку папок с записанным контентом и т.д., в зависимости от задачи. Командный файл может автоматически запускаться при загрузке ОС.

Если говорить о недостатках, то стоить отметить отсутствие поддержки GPU, из-за чего вся нагрузка полностью ложится на основной процессор. При высоком разрешении входного сигнала, может потребоваться довольно мощная платформа уровня Core i7 с максимально высокой частотой. Еще одним серьезным недостатком является отсутствие технической поддержки и развития продукта. Сейчас для свободного скачивания доступна версия 3.2, и она не обновлялась уже несколько лет.

OpenBrodcaster.

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

Тем не менее, данная разработка постоянно обновляется, имеет локализацию для различных языков, в том числе русскую, работает с DirectShow совместимыми устройствами.

Отдельно стоит отметить поддержку GPU рендера, что дает дополнительный плюс в сравнении с FLME. OpenBrodcaster работает с технологиями QuickSync, NVENC или AMD VCE. Это является большим преимуществом, так как позволяет разгрузить CPU и повысить стабильность работы программы.

Кроме того, к изображению можно применять ряд эффектов и фильтров для оформления и вывода итогового изображения для сцен и источников (Image Mask/Blend, Crop,Color Correction, Scroll, Color Key, LUT Filter, Sharpen, Chroma Key) а также обработки аудио сигнала (Gain, Noise Gate, Noise Suppression, Compressor, VST Plugin). Все это напоминает по функционалу полноценный видеомикшер, однако не дотягивает до него по целому ряду возможностей типа вывода плашек и титров без смены источника, недостаточным количеством эффектов и переходов. На выходе приложение генерирует IP-поток, который можно передавать на различные видеохостинги и социальные сети. Тот функционал, который предоставляет установленное приложение, не позволяет полностью использовать его реальные возможности, выполнение многих команд не очевидно и может показаться, что продукт явно недоделан. Отчасти так и есть. Однако существует целый ряд дополнений (платных и бесплатных), расширяющих основной функционал. Не стоит забывать, что это бесплатное решение, которое больше похоже на развлечение для энтузиастов, чем на платформу для создания полноценных проектов профессионального уровня.

FFMPEG.

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

В составе продукта есть 4 основных модуля:

  • ffmpeg – утилита, работающая из по командной строки для осуществления конвертации файлов в различные форматы; в качестве «файлов» могут выступать входящие потоки, видео и аудио сигналы с входов плат захвата, собственно файлы и т.д. На выходе генерируется поток компрессированных данных, который может быть сохранен на диск или передан по IP-протоколу на медиа сервер или средство воспроизведения
  • ffplay – простой медиаплеер на базе SDL и набора библиотек FFmpeg; воспроизведение файла или потока также запускается из командной строки. На экране появляется окно с контентом, но без интерфейса управления, и начинается воспроизведение.
  • ffserver – медиасервер для трансляций и предоставления доступа к контенту;
  • ffprobe – потоковый анализатор медиа данных.

Для инициации действия в командной строке исполняется команда вида:

ffmpeg [global_options] {[input_file_options] -i input_url} ... {[output_file_options] output_url} ... например, задание выходного видео потока размером 64 кб/сек: ffmpeg -i input.avi -b:v 64k -bufsize 64k output.avi

Поддерживается огромное количество протоколов как для работы с потоками данных, так и для передачи команд управления и вспомогательных данных. Среди них hls, http, Icecast, rtmp, rtp, rtsp, ftp, gopher и другие. Для обеспечения защиты данных в продукт встроена возможность применения AES шифрования. Само собой, решение отлично работает и имеет нативную поддержку основных методов компрессии сигнала (DV, MPEG1/2, h.263, h.264, h.265, AAC, AC-3 и т.д.), позволяет осуществлять работу с основными форматами, в том числе с MPG,MP4, AVI, DVD, VCD, BlueRay.

Отдельно стоит отметить, что все основные модули скомпилированы практически для всех наиболее популярных операционных систем (Windows, Mac OS, Linux, FreeBSD, Solaris). Так как платформа является бесплатной и открытой, то для скачивания также доступны исходные коды всех компонентов.

Telestream Wirecast.

Данный продукт представляет собой полностью готовый программный пакет для создания собственного вещательного видеомикшера. Сборка осуществляется на базе ПК с операционной системой Windows или MacOS. Реальные возможности такого решения ограничены аппаратными характеристиками и стабильностью программной части. Теоретически такой микшер в состоянии поддерживать десятки источников данных, включая видео и аудио сигналы с устройств захвата, IP-потоки с различными типами компрессии, файлы (видео, аудио или изображения), изображение рабочего стола (с помощью Desktop Presenter). Программные возможности позволяют создавать сложные многослойные композиции, использовать источники данных с разной частотой кадров и разрешением, создавать виртуальные сцены и многое другое, что недоступно или очень дорого в аппаратных микшерах. Безусловно, говорить о полном соблюдении вещательных стандартов при таком подходе не имеет смысла. Но для интернет-трансляций это не имеет никакого значения, так как визуально итоговая картинка будет выглядеть отлично. Программа поддерживает неограниченное количество входов для подключения разнообразных источников видеосигнала: от web-камер до DV/HDV и SDI-камер через USB, FireWire и карты захвата.

Wirecast отображает все источники в списке подключений, их количество ограничивается только мощностью компьютера. В последних версиях продукта добавлена поддержка GPU рендера в реальном времени в случае использования процессоров с технологий Intel Quick Sync и графических ускорителей NVIDIA.

В таком случае CPU полностью освобождается от функций кодирования и декодирования контента, а GPU берет на себя эти функции. На рисунке изображена схема такой работы. Как видно, центральный процессор используется только для передачи данных и управления процессами. Официально поддерживаются H.265 (HEVC), H.264 (AVCHD), VP9, VP8, MPEG-2, VC-1.

Отдельно стоить отметить, что современные видеокарты имеют встроенную поддержку высокого разрешения вплоть до 8К, а также обработку HEVC (H.265) для GPU с технологией Maxwell и Pascal. Программный выход может быть также записан на локальный диск. Количество профилей записи и стриминга не ограничено.

Кроме этого, компания Telestream предоставляет SDK программы Wirecast разработчикам устройств и компонентов, давая возможность разработать собственный плагин для Wirecast Pro.

С недавнего времени компания Telestream также анонсировала и собственное готовое решение Wirecast Gear, представляющее собой проверенную рабочую конфигурацию, настроенную и готовую к работе. Но это скорее пример конфигурации, нежели тот продукт, который имеет смысл покупать у разработчика. Во-первых, это обычная серверная платформа с ОС Windows 10 PRO, процессором Intel Core i7 и платами захвата класса AJA/Blackmagic. Подобрать все компоненты в нашей стране не составляет проблем.

StudioCoast VMIX.

Данная разработка по функциональным возможностям является аналогом Wirecast. Это также система для создания собственного видеомикшера на базе рабочей станции. StudioCoast VMIX также является программным модулем, его движок также поддерживает ускорение GPU и Intel QuickSync не только при транскодинге, но и при рендере виртуальных сцен и наложении графического оформлении. На практике это дает не только стабильность работы, но и позволяет разгрузить процессор, уменьшить время визуализации картинки и задействовать гораздо больше объектов и различных эффектов в сцене. Поддерживаются практически любые платы захвата, включая Blackmagic Decklink, AJA, AVerMedia, ViewCast Osprey, Deltacast (очень стабильные и надежные платы), Matrox, StreamLabs (платы отечественного производства), устройства Thunderbolt и USB 3.0, а также камеры DV/HDV, подключенные по IEEE 1394. С недавнего времени в качестве источников сигнала можно использовать ссылки Youtube, правда при этом элементы управления трансляцией также становятся видимы при трансляции. Отдельно стоит упомянуть поддержку NDI (Network Device Interface). Данный стандарт разработан компанией NewTek для двунаправленной передачи видеоданных вещательного качества по IP-сетям.

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

Есть работа с индикацией Tally, что приближает продукт к профессиональным микшерным системам. Реализация данной технологии возможна как через аппаратные устройства (www.tally-lights.com, www.metasetz.com), так и через использование веб-интерфейса.

Веб интерфейс представляет собой довольно интересную среду, которая позволяет независимо от основного интерфейса осуществлять управление микшером, менять данные в титровальных объектах и многое другое. Варианты исполнения готового решения могут быть практически любые. Например, ноутбук с внешним блоком AJA IO 4k позволяет получить переносной 4-канальный видеомикшер, который легко умещается в портфеле или сумке. Можно собрать высокопроизводительное мобильное решение в промышленном корпусе с поддержкой большого количества профессиональных интерфейсов, мощным аппаратным обеспечением, которое без проблем справится с широким кругом задач. Само собой, рабочие станции и серверные платформы также отлично подходят для создания собственных конфигураций. Разработчик предлагает купить такую станцию на своем сайте. И если бы заявленная им цена была актуальна для России, то предложение было бы очень интересным. Но доставка и таможенные расходы меняют все в худшую сторону.

1

Выход превью

2

Программный выход

3

Варианты отображения (в виде классического видеомикшера или полный интерфейс приложения

4

Эффекты и переходы

5

Источники медиа (видеовходы, файлы, потоки и др.)

6

Аудиомикшер

7

Управление записью программного выхода

8

Управление выводом сигнала на внешний видеовыход (выход видеокарты или SDI/HDMI выход платы ввода/вывода и др.)

9

Стриминг программного выхода

10

Запись источников сигнала

11

Управление плейлистом

12

Оверлей (наложение элементов графического оформления)



Возможности программного обеспечения позволяют реализовать практически все, что доступно лишь на дорогих микшерах, в частности, воспроизведение сигнала от источников с различными параметрами (например, часть источников может быть в SD, часть в HD), причем видеофайлы могут воспроизводиться со звуком или без него (файлы могут быть также в различных форматах). Источниками сигнала могут выступать входы плат, файлы аудио и видео, расписания, потоки RTP/RTSP/RTMP, презентации, рабочий стол локальной или удаленной станции. Изображение от источников сигнала можно поворачивать, масштабировать, перемещать, встраивать в виртуальные сцены, комбинировать на одном экране и т.д. Кстати, стриминг осуществляется не с помощью оригинального движка, а на базе FFMPEG или FMLE. Одновременно поддерживается генерация до трех потоков.

Микшер позволяет подключать к нему различные внешние консоли серии X-keys

Встроенный аудиомикшер позволяет не только смешивать все звуковые сигналы (это могут быть сигналы, как снятые со входа аудиокарты, так и извлеченные из потока SDI/HDMI), но и работать в режиме Audio Follow Video. Есть также встроенный компрессор/лимитер.

Кроме того, микшер имеет функционал для создания быстрых повторов. В зависимости от редакции поддерживается повтор контента, поступающего от 1…4 источников. Скорость повтора может варьироваться в пределах 5…400%, что позволяет, например, дать в эфир замедленный повтор яркого момента спортивного матча. Так как микшер позволяет работать с титрами, в качестве источников текстовых данных могут выступать не только файлы MS Office, TXT и т.д., но и ленты в аккаунтах социальных сетей.

При умелом подходе можно построить систему, по возможностям сопоставимую со старшими моделями NewTek Tricaster, при этом цена будет ниже в несколько раз, а стабильность работы, как показала практика, выше. Для удобства клиентов на сайте vmix есть готовые примеры конфигураций системы. То есть пользователь может не тратить время на тесты, а взять официально рекомендованный вариант. Для любителей программирования разработчик предоставляет API, возможностей которого достаточно для написания собственного решения с уникальным функционалом.

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

Кодер Наличие некоммерческой версии продукта Поддерживаемые типы источников сигнала Форматы стриминга Наличие функций видеомикшера Поддержка GPU Инструменты для разработчиков

Adobe Flash Media Live Encoder

Только бесплатная версия

Только источники видео и аудио сигнала

RTMP;

Запись в файл

Нет

Нет

Нет

OpenBroadcaster

Только бесплатная версия

Видео и аудио файлы;

Изображения;

Источники видео и аудио сигнала;

RTMP, RTP, RTSP;

Соц.сети и видеохостинги (Facebook, Twitter, Youtube и др.);

Запись в файл

Да

Да(NVIDIA NVENC, Intel QuickSync, AMD VCE)

Да

FFMPEG

Только бесплатная версия

аудио и видеофайлы;

Изображения

Источники видео и аудиосигнала;

IP-потоки

HLS, HTTP, Icecast, RTMP, RTP, RTSP

Запись в файл

Нет

Да(NVIDIA NVENC, Intel QuickSync)

Да

Telestream Wirecast

Только коммерческая версия

аудио и видеофайлы

Изображения

Источники видео и аудио сигнала

Источники NDI

IP-потоки

Захват рабочего стола

RTP (Unicast, Multicast) RTMP, MMS;

Соц.сети и видеохостинги (Facebook, Twitter, Youtube и др.)

Запись в файл

Да

Да (NVIDIA NVENC, Intel QuickSync)

Да

Studiocoast VMIX

VMIX Basic (работа только с SD разрешением)

аудио и видеофайлы;

Изображения

Источники видео и аудио сигнала;

Источники NDI;

IP-потоки

Захват рабочего стола

Ссылки Youtube;

Ленты соцсетей

RTMP;

Соц.сети и видеохостинги (Facebook, Twitter, Youtube и др.);

Запись в файл

Да

Да (NVIDIA NVENC, Intel QuickSync)

Да



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