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

Увидел свет релиз GStreamer 1.0, написанного на языке Си кроссплатформенного набора компонентов для создания широкого спектра мультимедиа приложений, от медиаплееров и конвертеров аудио/видео файлов, до VoIP-приложений и систем потокового вещания. Код GStreamer распространяется под лицензией LGPLv2.1. Одновременно доступны обновления плагинов gst-plugins-base 1.0, gst-plugins-good 1.0, gst-plugins-bad 1.0, gst-plugins-ugly 1.0, а также обвязка gst-libav 1.0. Готовые бинарные пакеты в скором времени будут добавлены в репозитории Debian Sid, Fedora 18 и Ubuntu 12.10.

Релиз GStreamer 1.0 ознаменовал появление нового и значительного переработанного API, а также полную стабилизацию API и ABI (в свое время разработчики KDE отказались от идеи использования GStreamer и создали собственный фреймворк Phonon из-за постоянно меняющегося ABI). Наиболее значительные изменения коснулись API для разработки плагинов, API для создания приложений претерпел не столько существенные изменения, что позволяет легко портировать большинство программ на использование нового API. Несмотря на доступность ветки 1.0 разработчики проекта намерены продолжить выпуск корректирующих обновлений для прошлой стабильной серии 0.10.x. GStreamer 1.0 не совместим на уровне API и ABI с серией 0.10.x и может быть установлен параллельно с прошлыми выпусками GStreamer, т.е. установка версии 1.0 не повлияет на работу уже установленных библиотек GStreamer 0.10.

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

  • Значительная переработка внутренних подсистем, в том числе переход на новую архитектуру организации буферизации и управления памятью. Увеличена эффективность буферизации объектов небольшого размера, добавлена расширяемая и согласуемая система привязки метаданных к буферам;
  • Переработан код системы захвата видео и звука. Реализованы новые механизмы согласования потоков в процессе захвата видео;
  • Добавлена поддержка автоматической переотправки состояния потока для динамических источников (например, после применения фильтров и перекодирования);
  • Выполнена большая работа по оптимизации производительности, что позволило ощутимо снизить нагрузку на CPU и открыло новые горизонты по использованию GStreamer на встраиваемых платформах;
  • Добавлены новые компоненты для обеспечения взаимодействия со средствами аппаратной акселерации кодирования и декодирования видео, например, обеспечена начальная поддержка интерфейсов VAAPI и VDPAU, а также используемого на встраиваемых платформах OpenMax IL API;
  • Поддержка проброса сжатого звука на устройства воспроизведения, что позволяет, например, использовать гарнитуры и звуковые карты с интерфейсом USB, имеющие средства аппаратного декодирования MP3/AAC;
  • Поддержка биндингов для языков программирования на основе интроспекции GObject.

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

  • Локальное проигрывание контента, обработка потокового вещания и проигрывание DVD;
  • Поддерживаемые видеокодеки: Theora, VP8, Dirac, MJPEG, h.264*, 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.