Выпуск мультимедийного фреймворка 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