Через полтора года разработки анонсирован выход новой версии GStreamer 1.20, кросс-платформенный набор компонентов, написанных на C, для создания широкого спектра мультимедийных приложений, от медиаплееров и конвертеров аудио/видео файлов до приложений VoIP и потоковых систем.
В этой новой версии выделяется включение новых кодировщиков, а также, среди прочего, улучшения в поддержке микширования аудио и видео.
Основные новые функции GStreamer 1.20
В этой новой версии упоминается, что разработка поверх GitLab перешла на использование единого общего репозитория ко всем модулям.
Что касается новинок, которые представлены в этой новой версии, то следует отметить, что добавлена новая высокоуровневая библиотека GstPlay, который заменяет GstPlayer API и предоставляет аналогичные функции для воспроизведения контента, за исключением того, что он использует шину сообщений для уведомления приложений вместо сигналов GObject.
Также подчеркивается, что добавлена поддержка механизма SMPTE 2022-1 2-D (упреждающая коррекция ошибок), плюс encodebin и transcodebin для кодеков VP8, VP9 и H.265 реализуют режим интеллектуального кодирования ("умное кодирование"), при котором перекодирование выполняется только при необходимости, а в остальное время существующая передача перенаправляется.
Еще одно важное изменение: добавлена возможность декодирования входных данных на уровне промежуточного кадра (субкадр), что позволяет начать декодирование, не дожидаясь полного кадра. Эта оптимизация совместима с декодерами OpenJPEG JPEG 2000, FFmpeg H.264 и OpenMAX H.264/H.265.
Помимо декодирования видео для протоколов RTP, WebRTC и RTSP, он также обеспечивает автоматическую обработку потери пакетов, повреждения данных и запросов ключевых кадров. добавлена поддержка изменения данных кодека на лету упаковщикам контейнеров медиа mp4 и Матроска.
С другой стороны, подчеркивается, что добавлена поддержка декодирования информации прозрачность в формате WebM, позволяет воспроизводить видео VP8/VP9 с прозрачными областями, а также поддерживает настройку дополнительных свойств для конкретных приложений в профилях кодирования и возможность использовать CUDA для преобразования цветового пространства, масштабирования элементов и масштабирования загрузки элементов.
Из другие изменения, которые выделяются этой новой версии:
- Классы payloader и payloader имеют унифицированную поддержку работы с дополнительными заголовками RTP.
- Улучшена совместимость с WebRTC.
- Добавлен режим для создания фрагментированных медиафайлов mp4.
- В AppSink API добавлена поддержка событий в дополнение к буферам и спискам буферов.
- В AppSrc добавлены дополнительные настройки для внутренних очередей.
- Обновлены языковые привязки Rust и добавлено 26 новых плагинов, написанных на Rust (gst-plugins-rs).
- Добавлены элементы aesdec и aesenc для шифрования и дешифрования с использованием алгоритма AES.
Добавлены элементы fakeaudiosink и videocodectestsink для тестирования и отладки. - Улучшенные инструменты для создания минималистичных версий GStreamer.
Добавлена возможность компиляции с FFmpeg 5.0. - Для Linux реализованы версии кодеков MPEG-2 и VP9 без сохранения состояния.
- Для Windows в декодер на основе Direct3D11/DXVA добавлена поддержка AV1 и MPEG-2.
- Плагин Souphttpsrc, совместимый с libsoup2 и libsoup3.
- Composer поддерживает преобразование и микширование видео в многопоточном режиме.
В конце концов если вы хотите узнать об этом больше об этой новой версии Gstreamer вы можете проверить журнал изменений По следующей ссылке.
Как установить Gstreamer 1.20 на Ubuntu и производные?
Если вы заинтересованы в установке Gstreamer 1.18 на свой дистрибутив Вы можете сделать это, выполнив действия, описанные ниже.
Процесс действителен как для новой версии Ubuntu 20.04, так и для предыдущих версий с поддержкой.
Установить, нам просто нужно открыть терминал (Ctrl + Alt + T) и в нем набираем следующие команды:
sudo apt-get install gstreamer1.0-tools gstreamer1.0-alsa gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
И готово, они уже установили Gstreamer 1.16 в своей системе.