
GStreamer — это кроссплатформенный фреймворк для создания мультимедийных приложений. Он позволяет работать с аудио и видео потоками, кодировать и декодировать данные, транслировать медиа и многое другое. GStreamer используется в самых разных областях: от мобильных приложений до профессиональных видеостриминговых решений.
GStreamer используется в самых различных приложениях, включая: мультимедийные плееры (например, VLC, Totem), программы для записи и редактирования видео и аудио, решения для видеоконференций и потоковой передачи, системы обработки видео в реальном времени, пользовательские мультимедийные приложения для мобильных и настольных платформ.
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 появились:
- Новые элементы
hlscmafsink
,hlssink3
и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.
- awstranscriber2, awstranslate: Элементы для транскрибации и перевода через AWS.
- speechmatics: Элемент для преобразования речи в текст и перевода.
- quinn: Плагин для работы с QUIC-потоками, включая RTP-over-QUIC (RoQ) и WebTransport.
Улучшения производительности
GStreamer 1.26 принёс множество оптимизаций:
- Улучшена работа с памятью и задержками в различных элементах.
- Добавлены новые трассировщики для отслеживания использования памяти и времени выполнения операций.
- Улучшена поддержка многопоточности в кодировании и декодировании.
Возможные критические изменения
- Удалено свойство
pixel-size
в элементеqroverlay
. Вместо него добавлено свойствоsize
. - Элемент
udpsrc
теперь отключает повторное использование портов для unicast-трафика.