Доступен мультимедийный фреймворк GStreamer 1.16.0

После более года разработки состоялся релиз GStreamer 1.16, написанного на языке Си кроссплатформенного набора компонентов для создания широкого спектра мультимедиа приложений, от медиаплееров и конвертеров аудио/видео файлов, до VoIP-приложений и систем потокового вещания. Код GStreamer распространяется под лицензией LGPLv2.1. Одновременно доступны обновления плагинов gst-plugins-base 1.16, gst-plugins-good 1.16, gst-plugins-bad 1.16, gst-plugins-ugly 1.16, а также обвязка gst-libav 1.16 и сервер потокового вещания gst-rtsp-server 1.16. На уровне API и ABI новый выпуск обратно совместим с веткой 1.0. Бинарные сборки в скором времени будут подготовлены для Android, iOS, macOS и Windows (в Linux рекомендуется использовать пакеты из дистрибутива).

Ключевые улучшения GStreamer 1.16:

  • В стек WebRTC добавлена поддержка P2P каналов данных, реализованных с использованием протокола SCTP, а также поддержка механизма BUNDLE для отправки разных типов мультимедийных данных в рамках одного соединения и возможность работы с несколькими серверами TURN (расширение STUN для обхода трансляторов адресов);
  • Добавлена поддержка видеокодека AV1 в контейнерах Matroska (MKV) и QuickTime/MP4. Реализованы дополнительные настройки AV1 и расширено число поддерживаемых кодировщиком форматов входных данных;
  • Добавлена поддержка скрытых субтитров, а также возможность определения и извлечения из видео других видов интегрированных данных ANC (Ancillary Data, дополнительная информация, такая как звук и метаданные, передаваемая через цифровые интерфейсы в неотображаемых частях строк развёртки);
  • Добавлена поддержка некодированного (raw) звука без чередования звуковых каналов в памяти (Non-Interleaved, левый и правый звуковые каналы размещаются в отдельных блоках, вместо чередования каналов в виде «LEFT|RIGHT|LEFT|RIGHT|LEFT|RIGHT»);
  • В базовый набор плагинов (gst-plugins-base) перемещены GstVideoAggregator (класс для смешивания raw-видео), compositor (усовершенствованная замена videomixer) и элементы OpenGL mixer (glvideomixer, glmixerbin, glvideomixerelement, glstereomix, glmosaic), которые ранее размещались в наборе «gst-plugins-bad»;
  • Добавлен новый режим чередования полей, в котором каждый буфер обрабатывается как отдельное поле в чересстрочном видео c разделением верхнего и нижнего полей на уровне привязанных к буферу флагов;
  • В распаковщик медиаконтейнеров Matroska добавлена поддержка формата WebM и шифрования содержимого;
  • Добавлен новый элемент wpesrc, работающий как браузер на базе движка WebKit WPE (позволяет обрабатывать вывод браузера как источник данных);
  • Для Video4Linux обеспечена поддержка кодирования и декодирования HEVC, кодирования JPEG и улучшенного импорта и экспорта dmabuf;
  • В декодировщик видео, использующий средства аппаратного ускоренная GPU NVIDIA, добавлена поддержка декодирования VP8/VP9, а в кодировщик поддержка аппаратно ускоренного кодирования H.265/HEVC;
  • Внесены многочисленные улучшения плагин msdk, позволяющий использовать средства аппаратного ускорения кодирования и декодирования на чипах Intel (основан на Intel Media SDK). В том числе добавлена поддержка импорта/экспора dmabuf, декодирования VP9, кодирования 10-разрядных HEVC, постобработки видео и динамического изменения разрешения;
  • В систему отрисовки субтитров ASS/SSA добавлена поддержка обработки нескольких пересекающихся во времени субтитров c их одновременным отображением на экране;
  • Обеспечена полноценная поддержка сборочной системы Meson, которая теперь рекомендована для сборки GStreamer на всех платформах. Удаление поддержки Autotools ожидается в следующей ветке;
  • В основной состав GStreamer включены биндинги для разработки на языке Rust и модуль с плагинами на Rust;
  • Проведена оптимизация производительности.

© OpenNet