ΠΠΎΡΠ»Π΅ Π³ΠΎΠ΄Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠΎΡΡΠΎΡΠ»ΡΡ ΡΠ΅Π»ΠΈΠ· GStreamer 1.22, ΠΊΡΠΎΡΡΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π°Π±ΠΎΡΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠΈΡΠΎΠΊΠΎΠ³ΠΎ ΡΠΏΠ΅ΠΊΡΡΠ° ΠΌΡΠ»ΡΡΠΈΠΌΠ΅Π΄ΠΈΠ° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΎΡ ΠΌΠ΅Π΄ΠΈΠ°ΠΏΠ»Π΅Π΅ΡΠΎΠ² ΠΈ ΠΊΠΎΠ½Π²Π΅ΡΡΠ΅ΡΠΎΠ² Π°ΡΠ΄ΠΈΠΎ/Π²ΠΈΠ΄Π΅ΠΎ ΡΠ°ΠΉΠ»ΠΎΠ², Π΄ΠΎ VoIP-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ ΡΠΈΡΡΠ΅ΠΌ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅ΡΠ°Π½ΠΈΡ. ΠΠΎΠ΄ GStreamer ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ΅ΡΡΡ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π·ΠΈΠ΅ΠΉ LGPLv2.1. ΠΡΠ΄Π΅Π»ΡΠ½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°ΡΡΡΡ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² gst-plugins-base, gst-plugins-good, gst-plugins-bad, gst-plugins-ugly, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±Π²ΡΠ·ΠΊΠ° gst-libav ΠΈ ΡΠ΅ΡΠ²Π΅Ρ ΠΏΠΎΡΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ Π²Π΅ΡΠ°Π½ΠΈΡ gst-rtsp-server. ΠΠ° ΡΡΠΎΠ²Π½Π΅ API ΠΈ ABI Π½ΠΎΠ²ΡΠΉ Π²ΡΠΏΡΡΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌ Ρ Π²Π΅ΡΠΊΠΎΠΉ 1.0. ΠΠΈΠ½Π°ΡΠ½ΡΠ΅ ΡΠ±ΠΎΡΠΊΠΈ Π² ΡΠΊΠΎΡΠΎΠΌ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²Π»Π΅Π½Ρ Π΄Π»Ρ Android, iOS, macOS ΠΈ Windows (Π² Linux ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΈΠ· Π΄ΠΈΡΡΡΠΈΠ±ΡΡΠΈΠ²Π°).
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΡΡΡΠ΅Π½ΠΈΡ GStreamer 1.22:
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΡΠΌΠ°ΡΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ AV1. ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ AV1 ΡΠ΅ΡΠ΅Π· API VAAPI/VA, AMF, D3D11, NVCODEC, QSV ΠΈ Intel MediaSDK. ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ RTP-ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π΄Π»Ρ AV1. Π£Π»ΡΡΡΠ΅Π½ ΡΠ°Π·Π±ΠΎΡ AV1 Π² ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠ°Ρ MP4, Matroska ΠΈ WebM. Π ΡΠΎΡΡΠ°Π² ΡΠ±ΠΎΡΠΎΠΊ Π²ΠΊΠ»ΡΡΠ΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ Ρ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠ°ΠΌΠΈ AV1 Π½Π° Π±Π°Π·Π΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ dav1d ΠΈ rav1e.
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Qt6. ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ qml6glsink, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΠΈΠΉ Qt6 Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π²Π½ΡΡΡΠΈ ΡΡΠ΅Π½Ρ QML.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ gtk4paintablesink ΠΈ gtkwaylandsink Π΄Π»Ρ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠΈ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ GTK4 ΠΈ Wayland.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ Π΄Π»Ρ Π°Π΄Π°ΠΏΡΠΈΠ²Π½ΠΎΠ³ΠΎ ΡΡΡΠΈΠΌΠΈΠ½Π³Π°, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Ρ HLS, DASH ΠΈ MSS (Microsoft Smooth Streaming).
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΠ΅Π·Π°Π½Π½ΡΡ ΡΠ±ΠΎΡΠΎΠΊ, ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π»Ρ ΡΠΎΠΊΡΠ°ΡΠ΅Π½ΠΈΡ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° WebRTC simulcast ΠΈ Google Congestion Control.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ ΠΏΡΠΎΡΡΠΎΠΉ ΠΈ ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΡΠΉ ΠΏΠ»Π°Π³ΠΈΠ½ Π΄Π»Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ΅ΡΠ΅Π· WebRTC.
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ Π½ΠΎΠ²ΡΠΉ ΡΠΏΠ°ΠΊΠΎΠ²ΡΠΈΠΊ ΠΌΠ΅Π΄ΠΈΠ°ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ² MP4 Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΎΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΠΈ Π½Π΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ .
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π½ΠΎΠ²ΡΠ΅ ΠΏΠ»Π°Π³ΠΈΠ½Ρ Π΄Π»Ρ Ρ ΡΠ°Π½ΠΈΠ»ΠΈΡΠ° Amazon AWS ΠΈ ΡΠ΅ΡΠ²ΠΈΡΠΎΠ² ΡΡΠ°Π½ΡΠΊΡΠΈΠΏΡΠΈΠΈ Π·Π²ΡΠΊΠ°.
- ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Ρ ΠΏΡΠΈΠ²ΡΠ·ΠΊΠΈ Π΄Π»Ρ ΡΠ·ΡΠΊΠ° Rust. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ 19 Π½ΠΎΠ²ΡΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ², ΡΡΡΠ΅ΠΊΡΠΎΠ² ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΡ Π½Π° Rust (gst-plugins-rs). ΠΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ 33% ΠΈΠ· ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Π½ΠΎΠ²ΠΎΠΌ GStreamer ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½Π° Rust (ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠ°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ²ΡΠ·ΠΎΠΊ ΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ²), Π° Π½Π°Π±ΠΎΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² gst-plugins-rs ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΎΠ΄Π½ΠΈΠΌ ΠΈ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ Π°ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ°Π·Π²ΠΈΠ²Π°Π΅ΠΌΡΡ ΠΌΠΎΠ΄ΡΠ»Π΅ΠΉ GStreamer. ΠΠ»Π°Π³ΠΈΠ½Ρ, Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ Rust, ΠΌΠΎΠ³ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π² ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠ°Ρ Π½Π° Π»ΡΠ±ΡΡ ΡΠ·ΡΠΊΠ°Ρ ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π½ΠΈΠΌΠΈ Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π° C ΠΈ C++.
- ΠΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΏΠΎΡΡΠ°Π²ΠΊΠ° ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² Π½Π° Rust Π² ΡΠΎΡΡΠ°Π²Π΅ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΡ Π±ΠΈΠ½Π°ΡΠ½ΡΡ ΠΏΠ°ΠΊΠ΅ΡΠΎΠ² Π΄Π»Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌ Windows ΠΈ macOS (ΡΠ±ΠΎΡΠΊΠ° ΠΈ ΠΏΠΎΡΡΠ°Π²ΠΊΠ° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ Π΄Π»Ρ Linux, Windows ΠΈ macOS).
- Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Π½Π°ΠΏΠΈΡΠ°Π½Π½ΡΠΉ Π½Π° Rust ΠΌΠ΅Π΄ΠΈΠ°ΡΠ΅ΡΠ²Π΅Ρ Π½Π° Π±Π°Π·Π΅ WebRTC, ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡΠΈΠΉ WHIP (WebRTC HTTP ingest) ΠΈ WHEP (WebRTC HTTP egress).
- ΠΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠ»Π΅ΠΌΠ΅Π½Ρ videocolorscale, ΡΠΎΡΠ΅ΡΠ°ΡΡΠΈΠΉ Π² ΡΠ΅Π±Π΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ ΠΊΠΎΠ½Π²Π΅ΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΌΠ°ΡΡΡΠ°Π±ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ.
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° Π²ΠΈΠ΄Π΅ΠΎ Ρ Π±ΠΎΠ»ΡΡΠΎΠΉ Π³Π»ΡΠ±ΠΈΠ½ΠΎΠΉ ΡΠ²Π΅ΡΠ°.
- Π API Navigation Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ ΠΎΡ ΡΠ΅Π½ΡΠΎΡΠ½ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ².
- ΠΠΎΠ±Π°Π²Π»Π΅Π½Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΡ ΠΊΠΎΡΡΠ΅ΠΊΡΠΈΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ ΠΌΠ΅ΡΠΎΠΊ H.264/H.265 Π΄Π»Ρ ΡΠ΅ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ PTS/DTS ΠΏΠ΅ΡΠ΅Π΄ ΡΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ ΠΌΠ΅Π΄ΠΈΠ°ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΎΠ².
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Linux ΡΠ»ΡΡΡΠ΅Π½ΠΎ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ DMA Π΄Π»Ρ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎΠΉ ΡΠ°Π±ΠΎΡΡ Ρ Π±ΡΡΠ΅ΡΠ°ΠΌΠΈ ΠΏΡΠΈ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ, ΡΠΈΠ»ΡΡΡΠ°ΡΠΈΠΈ ΠΈ ΠΎΡΡΠΈΡΠΎΠ²ΠΊΠ΅ Π²ΠΈΠ΄Π΅ΠΎ Ρ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΊΠΎΡΠ΅Π½ΠΈΡ.
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ CUDA: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° gst-cuda ΠΈ ΡΠ»Π΅ΠΌΠ΅Π½Ρ cudaconvertscale, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌΠΈ D3D11 ΠΈ NVIDIA dGPU NVMM.
- Π£Π»ΡΡΡΠ΅Π½Π° ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ Ρ Direct3D11: Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π½ΠΎΠ²Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° gst-d3d11, ΡΠ°ΡΡΠΈΡΠ΅Π½Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ»Π°Π³ΠΈΠ½ΠΎΠ² d3d11screencapture, d3d11videosink, d3d11convert ΠΈ d3d11compositor.
- ΠΠ»Ρ GPU AMD ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ Π½ΠΎΠ²ΡΠ΅ Π°ΠΏΠΏΠ°ΡΠ°ΡΠ½ΠΎ ΡΡΠΊΠΎΡΠ΅Π½Π½ΡΠ΅ ΠΊΠΎΠ΄ΠΈΡΠΎΠ²ΡΠΈΠΊΠΈ Π²ΠΈΠ΄Π΅ΠΎ Π² ΡΠΎΡΠΌΠ°ΡΠ°Ρ H.264 / AVC, H.265 / HEVC ΠΈ AV1, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ SDK AMF (Advanced Media Framework).
- Π ΠΏΠ»Π°Π³ΠΈΠ½ applemedia Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ H.265 / HEVC.
- Π ΠΏΠ»Π°Π³ΠΈΠ½ androidmedia Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΠΊΠΎΠ΄ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π²ΠΈΠ΄Π΅ΠΎ H.265 / HEVC.
- Π ΠΏΠ»Π°Π³ΠΈΠ½Ρ audiomixer, compositor, glvideomixer ΠΈ d3d11compositor Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ force-live Π΄Π»Ρ ΠΏΡΠΈΠ½ΡΠ΄ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ live-ΡΠ΅ΠΆΠΈΠΌΠ°.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru