Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° Π½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π±Π΅ΡΠ΅ ΠΏΡΡΠ½Π°Ρ 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 ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΡΡΠ΅Π· VAAPI/VA, AMF, D3D11, NVCODEC, QSV ΠΈ Intel MediaSDK API. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ 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).
- ΠΡΠ²Π΅Π΄Π΅Π½ Π΅ Π±Π°Π·ΠΈΡΠ°Π½ Π½Π° WebRTC ΠΌΠ΅Π΄ΠΈΠ΅Π½ ΡΡΡΠ²ΡΡ, Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Rust, ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°Ρ WHIP (WebRTC HTTP ΠΏΡΠΈΠ΅ΠΌΠ°Π½Π΅) ΠΈ WHEP (WebRTC HTTP ΠΈΠ·Ρ ΠΎΠ΄).
- ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΡΡ videocolorscale, ΠΊΠΎΠΉΡΠΎ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡΠ° Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ½Π²Π΅ΡΡΠΈΡΠ°Π½Π΅ ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΠΌΠ°ΡΠ°Π±ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π²ΠΈΠ΄Π΅ΠΎ Ρ Π²ΠΈΡΠΎΠΊΠ° Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π° Π½Π° ΡΠ²Π΅ΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΡΡΠ±ΠΈΡΠΈΡ Π½Π° ΡΠ΅Π½Π·ΠΎΡΠ΅Π½ Π΅ΠΊΡΠ°Π½ ΠΊΡΠΌ API Π·Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ.
- ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π·Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠ»Π΅ΠΉΠΌΠΎΡΠΎ Π½Π° 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, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° AMF (Advanced Media Framework) SDK.
- ΠΠ»ΡΠ³ΠΈΠ½ΡΡ Π½Π° applemedia Π΄ΠΎΠ±Π°Π²ΠΈ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° H.265/HEVC Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΈ Π΄Π΅ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° H.265/HEVC Π²ΠΈΠ΄Π΅ΠΎ ΠΊΠΎΠ΄ΠΈΡΠ°Π½Π΅ ΠΊΡΠΌ ΠΏΡΠΈΡΡΠ°Π²ΠΊΠ°ΡΠ° Π·Π° androidmedia.
- Π‘Π²ΠΎΠΉΡΡΠ²ΠΎΡΠΎ force-live Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΎ ΠΊΡΠΌ ΠΏΠ»ΡΠ³ΠΈΠ½ΠΈΡΠ΅ audiomixer, compositor, glvideomixer ΠΈ d3d11compositor, Π·Π° Π΄Π° ΡΠ΅ Π°ΠΊΡΠΈΠ²ΠΈΡΠ° ΡΠ΅ΠΆΠΈΠΌΡΡ Π½Π° ΠΆΠΈΠ²ΠΎ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru