
gstreamer
Leabharlann Python Oscailte le haghaidh Próiseála Ilmheán
Tóg Feidhmchláir Sruthú Meán le GStreamer: Conairí Fuaime/Físe, Láimhseáil Formáidí & Próiseáil Fíor-ama.
Cad é gstreamer?
Is creatlach cumhachtach foinse oscailte í GStreamer a chuireann ar chumas forbróirí feidhmchláir meán sruthaithe casta a chruthú. Soláthraíonn sé ailtireacht solúbtha bunaithe ar phíblíneanna chun sruthanna fuaime agus físe a láimhseáil, ag tacú le raon leathan formáidí, prótacail, agus breiseáin. Le ceangail Python, is féidir le forbróirí prótacail a chruthú go tapa agus sreabhadh oibre próiseála meán a chur i bhfeidhm, lena n-áirítear sruthú beo, taifeadadh, traschódú, agus éifeachtaí fíor-ama. Úsáidtear an creatlach go forleathan i gcórais leabaithe, i bhfeidhmchláir deisce, agus i seirbhísí meán ar scéalra néal.
Ag a bhunús, úsáideann GStreamer córas breiseán móduleach a ligeann comhtháthú gan uaim de chódaithe saincheaptha, scagairí, agus foinsí. Cuimsíonn a thacaíocht tras-ardáin Linux, Windows, macOS, agus timpeallachtaí móibíleacha, rud a fhágann go bhfuil sé idéalach do réitigh meán inaistrithe. Is féidir le forbróirí Python a úsáid chun tógáil píblíne, cumraíocht eilimintí, agus láimhseáil imeachtaí a rialú, agus ag baint leas as próiseáil leibhéil C ard-tionchar faoi bhun. Tá an tionscadal á chothabháil go gníomhach ag an bpobal freedesktop.org agus cuimsíonn sé doiciméadú cuimsitheach, ranganna teagaisc, agus samplaí chun forbairt a luasú.
Ag tosú le gstreamer
Chun GStreamer a úsáid le Python, suiteáil an leabharlann bhunúsach agus na ceangail Python. Is é an modh is éasca trí pip: `pip install pygobject` agus cinntigh go bhfuil pacáistí córais cosúil le `gstreamer1.0` suiteáilte. Le haghaidh forbairt, clónáil an stór oifigiúil ó [gstreamer GitHub](https://github.com/GStreamer/gstreamer) agus tóg ó fhoinse ag baint úsáide as Meson. Tacaíonn GStreamer le Python 3.8+ agus comhtháthaíonn sé le príomhdháileacháin Linux, Windows, agus macOS. Nuair a bheidh sé suiteáilte, is féidir leat píblíneanna meán a thógáil go cláraitheach ag baint úsáide as réada agus modhanna Python, rud a chuireann ar chumas prótacú tapa de fheidhmchláir ilmheán.
Suiteáil GStreamer trí Pip (Ceangail Python)
pip install pygobject
# On Ubuntu/Debian: sudo apt install gir1.2-gstreamer-1.0 gstreamer1.0-plugins-base
# On macOS: brew install gstreamer pygobject3
Tóg Píblíneacha Meán le Python
Ceadaíonn ailtireacht píblíne GStreamer d'fhorbróirí eilimintí a shlabhraíonn mar fhoinsí, scagairí, agus sincí chun sruthanna meán a phróiseáil. Trí úsáid a bhaint as Python, is féidir leat na píblíní seo a chruthú, a chumrú, agus a rialú go cláraitheach. Comhoibríonn eilimintí trí phadaí agus tacú le nascadh dinimiciúil, rud a chuireann ar chumas sreabhadh oibre casta mar shampla traschódú, taifeadadh, nó sruthú beo. Nochtann na ceangail Python an API iomlán de GStreamer, lena n-áirítear láimhseáil teachtaireachtaí bus, athruithe stádais, agus láimhseáil airíonna. Léiríonn sé seo go bhfuil sé indéanta feidhmchláir freagrach a thógáil a bhfreagraíonn ar eachtraí meán, earráidí, nó coinníollacha deiridh an tsrutha i bhfíor-am. Is féidir píblíní a shainiú ag baint úsáide as an fheidhm `gst_parse_launch` nó a thógáil eilimint de réir eilimint le haghaidh rialú mionsonraithe.
Cruthaigh Píblíne Físe Simplí trí Python
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
pipeline = Gst.parse_launch("videotestsrc ! autovideosink")
pipeline.set_state(Gst.State.PLAYING)
# Wait for EOS or error
bus = pipeline.get_bus()
msg = bus.timed_pop_filtered(Gst.CLOCK_TIME_NONE, Gst.MessageType.EOS | Gst.MessageType.ERROR)
pipeline.set_state(Gst.State.NULL)
Sruthú Fíor-Am & Tacaíocht Líonra
GStreamer scaireann i sruthú fíor-ama le tacaíocht láidir do phrótacail mar RTSP, RTP, HLS, agus DASH. Is féidir le forbróirí freastalaithe nó cliaint sruthú beo a thógáil ag baint úsáide as Python chun foinsí, ionchódaithe, agus sinkí líonra a bhainistiú. Déanann an creatlach sioncrónú, maolú jitter, agus ceiltú caillteanais paicéad go trédhearcach. Le h-ábhar mar `tcpserversink`, `udpsink`, agus `rtspclientsink`, is féidir leat físeán a shruthú ó cheamaraí nó comhaid thar líonraí áitiúla nó an t-idirlíon. Is féidir le scripteanna Python ráta giotáin, taifeach, nó paraiméadair ionchódaíochta a choigeartú go dinimiciúil bunaithe ar choinníollacha líonra nó ionchur an úsáideora, ag cumasú réitigh sruthaithe oiriúnacha. Tacaíonn dearadh modúil GStreamer freisin le breiseáin phrótacal saincheaptha le haghaidh cásanna úsáide speisialta.
Sruthú Físeán thar RTSP ag baint úsáide as Python
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst, GObject
Gst.init(None)
pipeline = Gst.parse_launch("videotestsrc ! x264enc ! rtspclientsink location=rtsp://localhost:8554/stream")
pipeline.set_state(Gst.State.PLAYING)
loop = GObject.MainLoop()
try:
loop.run()
except KeyboardInterrupt:
pass
pipeline.set_state(Gst.State.NULL)
Luasaíocht Crua-Earraí & Inbhuanú Breiseán
GStreamer cuireann sé comhtháthú gan uaimh ar fáil le luaschláraithe crua-earraí cosúil le NVIDIA CUDA, Intel Quick Sync, agus ARM Mali trí bhreiseáin tiomnaithe. Is féidir le forbróirí tairbhe a bhaint as luasú GPU le haghaidh díchódú físe, ionchódú, agus comhpháirteáil gan an loga bunúsach a athscríobh. Ceadaíonn an córas breiseán eilimintí saincheaptha a scríobh i C, Python, nó i dteangacha eile agus a luchtú go dinimiciúil. Is féidir breiseáin Python a chruthú ag baint úsáide as `Gst.ElementFactory` agus a chlárú ag am rite, rud a chuireann ar chumas turgnaimh tapa. Tacaíonn an solúbthacht seo le cásanna úsáide cosúil le scagairí saincheaptha, píblíneanna réamhfhiosrú AI, nó codecanna úinéireacha. Déanann breiseáin a aimsiú go huathoibríoch trí `gst-inspect-1.0`, agus is féidir a gcumasanna a cheist go cláir i Python chun píblíneanna oiriúnacha a thógáil.
Cumasaigh Díchódú Crua-earraí Luathaithe trí Python
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
# Example for VAAPI on Linux with Intel GPU
pipeline = Gst.parse_launch("filesrc location=video.mp4 ! qtdemux ! h264parse ! vaapih264dec ! autovideosink")
pipeline.set_state(Gst.State.PLAYING)
# Run pipeline...
Próiseáil Meán & Píblíne Éifeachtaí
Cuimsíonn GStreamer tacar saibhir de eilimintí ionsuite le haghaidh próiseála fuaime/físe, mar shampla scálú, tiontú dath, gearradh, meascán, agus meascán fuaime. Is féidir le forbróirí na heilimintí seo a shlabhraíonn chun slabhraí éifeachtaí casta a chruthú — mar shampla cur scagairí, forleaganacha, nó trasfhoirmeálacha bunaithe ar am — go hiomlán i Python. Soláthraíonn eilimintí mar `videoscale`, `videoconvert`, `textoverlay`, agus `audioresample` próiseáil ardchaighdeáin le cumraíocht íosta. Is féidir éifeachtaí saincheaptha a chur i bhfeidhm ag baint úsáide as `GstBase.BaseTransform` nó `GstBase.BaseAggregator` i Python, ag cumasú láithreach ar shruthanna meán. Déanann sé seo GStreamer oiriúnach do fheidhmchláir mar chomhdháil físe, craoladh beo, nó uirlisí cruthú ábhair áit a bhfuil próiseáil íseal-ama ríthábhachtach.
Cuir Taispeántas Téacs i bhfeidhm & Athraigh Méid an Fhíseáin trí Python
import gi
gi.require_version('Gst', '1.0')
from gi.repository import Gst
Gst.init(None)
pipeline = Gst.parse_launch("videotestsrc ! textoverlay text='Hello GStreamer' font-desc='Sans 24' ! videoscale ! videoconvert ! autovideosink")
pipeline.set_state(Gst.State.PLAYING)
# Run pipeline...
