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

2020-04-09 21:31:00

Некоторое время назад только специализированные аппаратные платформы были способны обеспечить качественное преобразование видео и аудио сигналов в цифровой компрессированный поток для передачи по IP-сетям. Но современный уровень развитие компьютерной техники позволяет сделать практически любое устройство на базе обычного ПК. Достаточно лишь добавить необходимые аппаратные и программные компоненты, которые помогут в реализации требуемого функционала. Если говорить об устройствах кодирования видео и аудио сигналов, достаточно установить необходимое программное обеспечение - Live encoder , плату захвата сигнала (если источник сигнала HDMI или USB можно не устанавливать) , и ,если мощности CPU недостаточно, дополнительные средства аппаратной обработки, например, видеокарту (GPU) с поддержкой CUDA/NVENC . Так же вместо установки GPU возможно использование CPU Intel с технологией аппаратного кодирования QuickSync . Получится универсальное гибкое решение, конфигурация которого может быть легко изменена или дополнена в любой момент.

В данной статье мы рассмотрим доступные на текущий момент ( 2К2020 ) программные пакеты Live encoder software позволяющие публиковать видеопоток с ПК на медиасервер Wowza Streaming Engine или на сервисы онлайн трансляций, например Wowza Cloud, социальные сети YouTube и тд. по протоколу RTMP и/или SRT.

Программные продукты в статье:

  • ffmpeg
  • Abobe FMLE
  • SplitCam
  • xSplit broadcaster
  • OBS Studio (Open Broadcaster)
  • Telestream WireCast
  • vMIX

FFMPEG.

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

Важно отметить, что ffmpeg является бесплатной и открытой программой, доступен в виде исходного кода и может быть скомпилирован под любую операционную систему. Также можно скачать уже собранные бинарные файлы для запуска ffmpeg под Windows, Linux или MAC.

Для публикации live потока на Wowza сервер с источником в виде mp4 видеофайла, в командной строке исполняется команда типа:

ffmpeg -re -stream_loop -1 -i sample.mp4 -pix_fmt yuv420p -deinterlace -vf "scale=640:360" -vsync 1 -threads 0 -vcodec libx264 -r 29.970 -g 60 -sc_threshold 0 -b:v 1024k -bufsize 1216k -maxrate 1280k -preset medium -profile: v main -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -vbsf h264_mp4toannexb -f flv rtmp://xxx.xxx.xxx.xxx/live/test

Поддерживается огромное количество опций обработки и преобразования медиаданных. Командная строка представленная выше является примером применения опций кодирования поток и публикации его на сервер по протоколу RTMP. Также поддерживается публикация по протоколу SRT. В этом случае команда будет иметь вид:

ffmpeg -re -stream_loop -1 -i sample.mp4 -pix_fmt yuv420p -deinterlace -vf "scale=640:360" -vsync 1 -threads 0 -vcodec libx264 -r 29.970 -g 60 -sc_threshold 0 -b:v 1024k -bufsize 1216k -maxrate 1280k -preset medium -profile: v main -tune film -acodec aac -b:a 128k -ac 2 -ar 48000 -af "aresample=async=1:min_hard_comp=0.100000:first_pts=0" -vbsf h264_mp4toannexb -f mpegts srt:// xxx.xxx.xxx.xxx:xxxxx

Необходимо отметить , что использование ffmpeg в качестве live энкодера имеет один значительный минус - при обрыве соединения с сервером публикация не возобновляется автоматически. Для решения проблемы нужно предусмотреть программную обработку такого события в bat./sh. срипте запускающем ffmpeg.

Adobe FLME (Flash Media Live Encoder).

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

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

Поддерживается автоматическая повторная публикация потока при сбое сети. Существуют версии продукта для операционной системы Windows и MAC.

SplitCam

Бесплатный продукт для Windows , позволяющий публиковать поток на Wowza по RTMP протоколу. Одним из основных преимуществ (что также подчеркивается в название продукта) является то , что эта программа во время работы не блокирует доступ к веб камере для других устройств. Вы можете публиковать поток веб камеры на сервер Wowza и одновременно использовать эту же камеру для видеозвонка Skype. Программа может работать с несколькими источниками видео изображения : MP4 файлы, веб камера, IP камера, трансляция экрана ПК. Изображения получаемые от разных источников можно совместить в одно итоговое и транслировать его на несколько серверов Wowza и/или сервисов вещания одновременно. Доступна запись в файл на локальном диске. Есть интересные опции добавления текстовых сообщений в транслируемый поток, микширование звука. Программа очень проста в использовании и требует минимум усилий для настройки и начала публикации потока. Последняя версия ПО не прокручивает рекламные объявления и свободна от флера веб модельной тематики, характерного для предыдущих версий. Судя по всему "Зроблено в Україні".

xSplit broadcaster

Еще один продукт для Windows, изначально предназначенный для геймеров (в основе трансляции экрана лежит драйвер VH screen capture Владимира Хмелева), но со временем приобретший все опции профессионального инструмента для live трансляций. Обладает чрезвычайно богатым функционалом управления сценами и источниками видеосигнала. Правда бесплатная и персональные версии обладают существенными ограничениями, как по возможности использовать в коммерческих целях, так и по функциональности. Бесплатная версия не позволит осуществлять трансляцию с разрешением более 720p без логотипа энкодера, не будет опции наложения звукового ряда, видеоредактора и тд. Публикация потока на Wowza осуществляется по протоколу RTMP.

OBS Studio (Open Broadcaster)

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

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

Отдельно стоит отметить поддержку GPU рендера 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-поток, который можно публиковать с использованием протокола RTMP или SRT. Cуществует целый ряд дополнений (платных и бесплатных), расширяющих основного функционал, например плагин работы с PDF файлами. Однако не стоит забывать, что это бесплатное решение, а не платформа для создания полноценных проектов профессионального уровня. Так же выполнение многих команд не очевидно и может создать сложности для полного раскрытия реальных возможностей продукта.

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..

vMIX.

Данная разработка по функциональным возможностям является аналогом Wirecast. Это также система для создания собственного видеомикшера на базе рабочей станции.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, возможностей которого достаточно для написания собственного решения с уникальным функционалом.

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