Π‘Π»Π΅Π΄ Π³ΠΎΠ΄ΠΈΠ½Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ²Π°Π½Π΅, 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
