Доступний мультимедійний фреймворк GStreamer 1.20.0

Після півтора року розробки відбувся реліз GStreamer 1.20, написаного мовою Сі кросплатформового набору компонентів для створення широкого спектру мультимедіа додатків, від медіаплеєрів та конвертерів аудіо/відео файлів, до VoIP-додатків та систем потокового мовлення. Код GStreamer розповсюджується під ліцензією LGPLv2.1. Одночасно доступні оновлення плагінів gst-plugins-base 1.20, gst-plugins-good 1.20, gst-plugins-bad 1.20, gst-plugins-ugly 1.20, а також обв'язування gst-libav 1.20 та сервер потокового мовлення gst-rtsp-. На рівні API та ABI новий випуск назад сумісний із гілкою 20. Бінарні збірки незабаром будуть підготовлені для Android, iOS, macOS та Windows (в Linux рекомендується використовувати пакети з дистрибутива).

Ключові покращення GStreamer 1.20:

  • Розробка на GitLab перекладена використання єдиного репозиторію, спільного всім модулів.
  • Додано нову високорівневу бібліотеку GstPlay, яка прийшла на зміну API GstPlayer і пропонує подібні функції для відтворення контенту, що відрізняються використанням для повідомлення шини повідомлень замість сигналів GObject.
  • Додано підтримку декодування інформації про прозорість у форматі WebM, яка дозволяє відтворювати відео VP8/VP9 з прозорими областями.
  • У профілі кодування додано підтримку налаштування додаткових властивостей, специфічних для додатків.
  • У Compositor реалізована підтримка перетворення та змішування відео у багатопотоковому режимі.
  • У класах depayloader та payloader уніфіковано підтримку роботи з додатковими заголовками RTP (RTP Header Extensions).
  • Додано підтримку механізму попереджувальної корекції помилок SMPTE 2022-1 2-D (Forward Error Correction).
  • У encodebin і transcodebin для кодеків VP8, VP9 і H.265 реалізований розумний режим кодування («smart encoding»), у якому перекодування виконується лише за необхідності, а решту часу виконується прокидання наявного потоку.
  • Забезпечено сумісність плагіна souphttpsrc c libsoup2 та libsoup3.
  • Додана можливість декодування вхідних даних на рівні проміжних кадрів (sub-frame), що дозволяє розпочати декодування, не чекаючи отримання повного кадру. Підтримка цієї оптимізації задіяна у декодувальниках OpenJPEG JPEG 2000, FFmpeg H.264 та OpenMAX H.264/H.265.
  • При декодуванні відео для протоколів RTP, WebRTC та RTSP забезпечено автоматичне оброблення втрати пакетів, пошкодження даних та запитів ключових кадрів.
  • У пакувальники медіаконтейнерів mp4 та Matroska додано підтримку зміни даних кодека на льоту, що дозволяє змінювати профіль, рівень та дозвіл для вхідних потоків H.264/H.265.
  • Додано режим створення фрагментованих медіаконтейнерів mp4.
  • До порту на базі WPE (WebKit Port for Embedded) додано підтримку звуку.
  • Додано можливість використання CUDA для перетворення колірного простору, масштабування елементів та завантаження елементів.
  • Для елементів OpenGL glupload та gldownload додано підтримку пам'яті NVMM (NVIDIA Memory Module).
  • Поліпшено підтримку WebRTC.
  • Запропоновано новий плагін для VA-API (Video Acceleration API), який підтримує більше декодувальників та елементів постпроцесингу.
  • В API AppSink додано підтримку подій на додаток до буферів та списків буферів.
  • AppSrc додає додаткові налаштування внутрішніх черг.
  • Оновлено прив'язки на мові Rust та додано 26 нових плагінів, написаних на Rust (gst-plugins-rs).
  • Додані елементи aesdec та aesenc для шифрування та розшифрування за допомогою алгоритму AES.
  • Додані елементи fakeaudiosink та videocodectestsink для тестування та налагодження.
  • Поліпшено засоби для створення мінімалістичних збірок GStreamer.
  • Додана можливість збирання з FFmpeg 5.0.
  • Для Linux реалізовані варіанти кодеків MPEG-2 та VP9, ​​які працюють без збереження стану (Stateless).
  • Для Windows у декодувальник на базі Direct3D11/DXVA додано підтримку AV1 та MPEG-2.

Джерело: opennet.ru

Додати коментар або відгук