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

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

Проведено расширение API, например, добавлены новые вызовы GstDeviceMonitor для проверки наличия устройств и GstFlowAggregator для агрегации нескольких источников потоков, представлены API для настройки TLS-подтверждения для соединений RTSP и API для доступа к статистике RTP; В утилиты для работы с кодеками и различные библиотеки добавлена поддержка h265/HEVC и VP8; В библиотеку для работы с RTSP и SDP добавлена поддержка протокола обмена ключами MIKEY (RFC 3830) и возможность переключения между разными профилями RTSP; В gst-rtsp-server добавлена поддержка SRTP и MIKEY; В rtpbin добавлена поддержка вспомогательных (aux) потоков; Добавлена поддержка видео в raw-формате; Из gst-plugins-gl в gst-plugins-bad добавлен код библиотеки GL, что позволило использовать базовые средства обработки GL во внутренних операциях и плагинах GStreamer. В настоящее время поддерживаются такие платформы, как Android, Cocoa (OS X), DispManX (Raspberry Pi), EAGL (iOS), WGL (Windows), X11, Wayland и EGL; В dvbsrc добавлены механизмы доставки и другие возможности, включая поддержку DVB S2 и T2; Новые плагины: OpenNI2 для работы с 3D-камерами, такими как камера Kinect. OpenEXR для декадирования высокодинамичных EXR-изображений; Из GStreamer 0.10 портированы плагины videosignal, ivfparse и sndfile; Новые элементы: v4l2videodec для доступа к аппаратным кодекам на платформах для которых поддерживается V4L2 (Video4Linux). v4l2videodec пришёл на смену mfcdec. Новый элемент downloadbuffer заменил собой функцию буферизации загрузки из состава queue2. Новая реализация отличается простой и ориентацией на решение одной конкретной задачи; rtpstreampay и rtpstreamdepay для передачи RTP-пакетов поверх stream API (TCP) rtprtx с соответствующей стандартам реализацией системы повторной передачи, интегрируемой в плагин rtpmanager; audiomixer для смешивания нескольких звуковых потоков с обеспечением их синхронизации; curlsshsink и curlsftpsink для записи файлов через SSH/SFTP; Из GStreamer 0.10 портированы элементы avfvideosrc, vtdec и т.д. Среди базовых возможностей GStreamer:

Локальное проигрывание контента, обработка потокового вещания и проигрывание DVD; Поддерживаемые видеокодеки: Theora, VP8, Dirac, MJPEG, h.264*, h.263*, MPEG2*, MPEG4*, WMV/VC1* и т.д. (здесь и далее звёздочкой помечены форматы, по умолчанию не включаемые в GStreamer SDK, так как они могут потребовать приобретения лицензии в некоторых странах); Поддерживаемые аудиокодеки: 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