vk.com

Выберите язык

GStreamer 1.26: Новые возможности и улучшения

  Состоялся релиз GStreamer 1.26 — новой версии популярного мультимедийного фреймворка с открытым исходным кодом. Этот релиз принёс множество улучшений, новых функций и поддержку современных технологий, что делает GStreamer ещё более мощным инструментом для работы с аудио и видео. 
 
  GStreamer — это кроссплатформенный фреймворк для создания мультимедийных приложений. Он позволяет работать с аудио и видео потоками, кодировать и декодировать данные, транслировать медиа и многое другое. GStreamer используется в самых разных областях: от мобильных приложений до профессиональных видеостриминговых решений. 
 
  GStreamer используется в самых различных приложениях, включая: мультимедийные плееры (например, VLC, Totem), программы для записи и редактирования видео и аудио, решения для видеоконференций и потоковой передачи, системы обработки видео в реальном времени, пользовательские мультимедийные приложения для мобильных и настольных платформ.
 

Основные нововведения в GStreamer 1.26

  Поддержка современных кодеков

  Одним из самых значимых нововведений стала поддержка новых кодеков:

  • H.266 (VVC): Этот кодек, также известный как Versatile Video Coding, является преемником H.265 (HEVC). Он обеспечивает лучшее сжатие видео при сохранении высокого качества. В GStreamer 1.26 добавлены элементы для парсинга, декодирования и муксинга/демуксинга H.266 в контейнеры MP4, Matroska и MPEG-TS.
  • JPEG XS: Этот кодек предназначен для профессиональных видео workflows с низкой задержкой. В GStreamer добавлены элементы для кодирования и декодирования JPEG XS, а также поддержка муксинга в MPEG-TS.

  Улучшения в работе с субтитрами

  GStreamer 1.26 предлагает расширенные возможности для работы с субтитрами:

  • Новые элементы для извлечения и вставки субтитров в потоки H.264 и H.265.
  • Поддержка стандарта SMPTE 2038 для работы с метаданными в MPEG-TS.
  • Элемент cea708overlay для отображения субтитров CEA-608/CEA-708 поверх видео.

  Адаптивный стриминг (HLS/DASH)

  Для разработчиков, работающих с адаптивным стримингом, в GStreamer 1.26 появились:

  • Новые элементы hlscmafsinkhlssink3 и hlsmultivariantsink для создания HLS-потоков.
  • Улучшения в dashsink и adaptivedemux2, включая поддержку локальных файлов и автоматические повторы HTTP-запросов.
  Улучшения в работе с контейнерами
  • MPEG-TS: Добавлена поддержка H.266, JPEG XS, AV1 и VP9.
  • Matroska: Поддержка H.266 и тегов поворота видео.
  • ISO MP4: Добавлена поддержка H.266, Hap и Lagarith lossless кодеков.
  Интеграция с современными API
  • Vulkan: Улучшена поддержка Vulkan Video для декодирования и кодирования. Добавлены новые функции для управления памятью и цветовыми пространствами.
  • Direct3D12: Новые элементы d3d12swapchainsink и d3d12deinterlace для работы с Direct3D12.
  • CUDA: Добавлен элемент nvav1enc для кодирования AV1 с использованием CUDA.
  Улучшения в WebRTC
  • Добавлена поддержка базовых откатов (rollbacks) в webrtcbin.
  • Улучшена поддержка синхронизации часов через NTP и PTP.
  • Новые элементы для работы с некомпрессированными аудио- и видеопотоками.

Новые элементы и плагины

  GStreamer 1.26 представил множество новых элементов, которые расширяют возможности фреймворка:

  • webview2src: Элемент для захвата видео из Microsoft WebView2.

  • awstranscriber2awstranslate: Элементы для транскрибации и перевода через AWS.
  • speechmatics: Элемент для преобразования речи в текст и перевода.
  • quinn: Плагин для работы с QUIC-потоками, включая RTP-over-QUIC (RoQ) и WebTransport.

Улучшения производительности

  GStreamer 1.26 принёс множество оптимизаций:

  • Улучшена работа с памятью и задержками в различных элементах.
  • Добавлены новые трассировщики для отслеживания использования памяти и времени выполнения операций.
  • Улучшена поддержка многопоточности в кодировании и декодировании.
Возможные критические изменения
  • Удалено свойство pixel-size в элементе qroverlay. Вместо него добавлено свойство size.
  • Элемент udpsrc теперь отключает повторное использование портов для unicast-трафика.
  Более подробную информацию можно посмотреть здесь.