Выпуск мультимедийного фреймворка GStreamer 1.12

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

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

  • Новый плагин msdk, позволяющий использовать Intel Media SDK для ускорения декодирования и кодирования видео (H.264, H.265, MPEG-2, VP8) на оборудовании c GPU Intel;
  • В кодировщике x264enc теперь можно на лету выбирать разные версий библиотеки x264, собранные для кодирования с разной глубиной цвета;
  • Плагины videoscale и videoconvert переработаны для обеспечения масштабирования и конвертирования видео в многопоточном режиме, что позволяет добиться неплохого ускорения при обработке видео с большим разрешением;
  • В библиотеке h264parse реализована возможность автоматической подстановки разделителей блоков AU (Access Unit) при выводе в потоковом формате, что обеспечивает более полную совместимость со стандартом и может быть востребовано при воспроизведении HLS на платформах iOS и macOS;
  • В плагин rtpbin добавлена поддержка многосессионных RTP-потоков (bundle), используемых в WebRTC;
  • Добавлена поддержка форматов видео:
    • GBR_12LE, GBR_12BE, GBRA_12LE, GBRA_12BE (плоский 4:4:4 RGB/RGBA, 12 бит на канал)
    • GBRA_10LE, GBRA_10BE (плоский 4:4:4:4 RGBA, 10 бит на канал)
    • GBRA (плоский 4:4:4:4 ARGB, 8 бит на канал)
    • I420_12BE, I420_12LE (плоский 4:2:0 YUV, 12 бит на канал)
    • I422_12BE, I422_12LE (плоский 4:2:2 YUV, 12 бит на канал)
    • Y444_12BE, Y444_12LE (плоский 4:4:4 YUV, 12 бит на канал)
    • VYUY (ещё один формат пактов 4:2:2 YUV)
  • В API GstPlayer добавлены функции для создания скриншотов видео и включения точного позиционирования по потоку;
  • Добавлен плагин iqa (Image Quality Assessment) с реализацией техники оценки качества видео, основанной на DSSIM;
  • Добавлен элемент faceoverlay, позволяющий наложить SVG-изображение поверх определённого лица на видео;
  • Добавлен элемент audiobuffersplit для разделения raw-буферов со звуком на равнозначные по размеру буферы;
  • Добавлен элемент audiomixmatrix для смешивания звуковых каналов N: M по заданной матричной маске;
  • Добавлен плагин ttml для разбора и отрисовки субтитров в формате TTML (Timed Text Markup Language);
  • Плагин dataurisrc перемещён из набора gst-plugins-bad в core, а плагин rawparse перемещён из набора gst-plugins-bad в gst-plugins-base.

Среди основных возможностей GStreamer:

  • Локальное проигрывание контента, обработка потокового вещания и проигрывание DVD;
  • Поддерживаемые видеокодеки: Theora, VP8, VP9, Dirac, MJPEG, h.264, h.265, h.263, MPEG2, MPEG4, WMV/VC1 и т.д.
  • Поддерживаемые аудиокодеки: Vorbis, FLAC, Speex, WavPack, AAC, MP3, WMA, Dolby Digital (AC3), DTS/DCA, AMR NB/WB и т.д.
  • Поддерживаемые мультимедиа контейнеры: Ogg, WebM, Matroska, MP4, Quicktime, AVI, FLV, 3GPP, WAV, Real Media, ASF, MPEG PS/TS и т.д.
  • Поддерживаемые протоколы: работа с локальными файлами, HTTP, Shoutcast/Icecast, HLS, RTSP, RTP и MMS;
  • Интеграция с тулкитами для формирования GUI-интерфейса (GTK+, Clutter);
  • Автоматическое определение контейнеров и кодеков;
  • Функции извлечения метаданных;
  • Поддержка субтитров;
  • Средства для наглядной визуализации звукового потока;
  • Поддержка переключения на лету между разными потоками со звуком и субтитрами;
  • Перемещение внутри потока по абсолютной позиции;
  • Режимы замедления и ускорения воспроизведения, перемотки в обратном порядке и покадрового просмотра;
  • Автоматическое устранение чересстрочности (деинтерлейсинг), масштабирование и установка цветового баланса;
  • Поддержка проброса сжатого звука;
  • Поддержка функций рендеринга текстур библиотеки Clutter.

© OpenNet