ДоступСн ΠΌΡƒΠ»ΡŒΡ‚ΠΈΠΌΠ΅Π΄ΠΈΠΉΠ½Ρ‹ΠΉ Ρ„Ρ€Π΅ΠΉΠΌΠ²ΠΎΡ€ΠΊ 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-server 20. На ΡƒΡ€ΠΎΠ²Π½Π΅ API ΠΈ ABI Π½ΠΎΠ²Ρ‹ΠΉ выпуск ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ совмСстим с Π²Π΅Ρ‚ΠΊΠΎΠΉ 1.0. Π‘ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ сборки Π² скором Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ Π±ΡƒΠ΄ΡƒΡ‚ ΠΏΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²Π»Π΅Π½Ρ‹ для 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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ