Skip to content

Cum să primești streamuri UDP cu elementul udpsrc în GStreamer

DodaTech Updated 2025-01-15 1 min read

In this tutorial, you'll learn about Cum să primești streamuri UDP cu elementul udpsrc în GStreamer. We cover key concepts, practical examples, and best practices.

În acest ghid vei învăța cum să primești streamuri UDP folosind elementul udpsrc în GStreamer. Udpsrc este un element de sorginte care primește pachete UDP de pe rețea și le introduce în pipeline-ul GStreamer, fiind esențial pentru streaming video/audio în timp real.

The Wrong Way

O greșeală frecventă este configurarea incorectă a adresei și portului sau omiterea negocierii formatului media:

gst-launch-1.0 udpsrc ! fakesink

Output:

WARNING: erroneous pipeline: link udpsrc and fakesink cannot be negotiated

Fără specificarea capabilităților (caps), elementele din amonte nu știu ce format de date să aștepte.

The Right Way

Configurarea corectă a udpsrc cu adresă, port și capabilități:

gst-launch-1.0 udpsrc address=0.0.0.0 port=5000 caps="application/x-rtp, media=video, clock-rate=90000, encoding-name=H264" ! rtph264depay ! avdec_h264 ! videoconvert ! autovideosink

Output:

Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
Redistribute latency...

Pentru audio RTP:

gst-launch-1.0 udpsrc address=0.0.0.0 port=5002 caps="application/x-rtp, media=audio, clock-rate=44100, encoding-name=MPA" ! rtpmpadepay ! mpg123audiodec ! audioconvert ! autoaudiosink

Prevenție

  • Specifică întotdeauna capabilitățile (caps) pe udpsrc pentru a permite negocierea corectă
  • Folosește address=0.0.0.0 pentru a asculta pe toate interfețele de rețea
  • Verifică firewall-ul care ar putea bloca portul UDP
  • Adaugă elemente de jitterbuffer precum rtpjitterbuffer pentru streamuri RTP

Greșeli Comune

  1. Lipsa capabilităților — fără caps pipeline-ul nu poate negocia formatul media
  2. Port blocat de firewall — verifică că portul UDP este accesibil
  3. Adresă greșită — specificarea greșită a adresei de multicast sau unicast
  4. Fără buffer de jitter — pentru RTP, omiterea lui rtpjitterbuffer cauzează întreruperi

FAQ

### Ce porturi UDP ar trebui să folosesc pentru streaming?

Porturile peste 1024 sunt recomandate (ex: 5000-5010). Evită porturile rezervate (sub 1024) care necesită privilegii root.

Cum primesc streamuri multicast cu udpsrc?

Folosește address=<adresa_multicast> și proprietatea multicast-group: udpsrc address=224.1.1.1 port=5000 multicast-group=224.1.1.1 caps="...".

Ce diferență este între udpsrc și udpsink?

udpsrc primește date de pe rețea (sorginte), iar udpsink trimite date în rețea (destinație).

Construit de dezvoltatorii Doda Browser, DodaZIP și Durga Antivirus Pro. Uneltele DodaTech se integrează perfect cu GStreamer pentru productivitate și securitate sporite.

Built by the developers of DodaTech

Doda Browser, DodaZIP & Durga Antivirus Pro