Пасля паўтары гадоў распрацоўкі адбыўся рэліз 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