Skip to content

Cum să primești streamuri RTMP cu elementul rtmpsrc în GStreamer

DodaTech Updated 2025-01-15 1 min read

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

În acest ghid vei învăța cum să primești streamuri RTMP folosind elementul rtmpsrc în GStreamer. RTMP este protocolul utilizat de platforme precum Twitch, YouTube Live și Facebook Live pentru streaming live.

The Wrong Way

Specificarea incorectă a URL-ului RTMP sau omiterea decodării:

gst-launch-1.0 rtmpsrc location="rtmp://example.com/live/stream" ! fakesink

Output:

ERROR: from element /GstPipeline:pipeline0/GstRTMPSrc:rtmpsrc0: Could not open resource for reading.

The Right Way

Pipeline corect pentru primire RTMP:

gst-launch-1.0 rtmpsrc location="rtmp://live.twitch.tv/app/streamkey" ! flvdemux ! h264parse ! avdec_h264 ! videoconvert ! autovideosink

Output:

Setting pipeline to PAUSED ...
Pipeline is live and does not require pre-roll.
Setting pipeline to PLAYING ...
Redistribute latency...

Pentru stream RTMP cu audio:

gst-launch-1.0 rtmpsrc location="rtmp://example.com/live/stream" ! flvdemux name=demux demux.video ! queue ! h264parse ! avdec_h264 ! videoconvert ! autovideosink demux.audio ! queue ! aacparse ! avdec_aac ! audioconvert ! autoaudiosink

Prevenție

  • Verifică URL-ul RTMP înainte de a-l folosi în pipeline
  • Folosește flvdemux după rtmpsrc pentru a demultiplexa streamul FLV
  • Adaugă queue pentru a sincroniza corect video și audio
  • Testează streamul cu un player RTMP (ex: VLC) înainte de a-l integra în GStreamer

Greșeli Comune

  1. URL RTMP invalid — asigură-te că URL-ul include calea corectă și stream key-ul
  2. Fără flvdemux — RTMP transmite date în format FLV, care trebuie demultiplexat
  3. Lipsa parser-elorh264parse și aacparse sunt necesare înainte de decodare
  4. Autentificare greșită — platformele live necesită stream key în URL
  5. Port blocat — RTMP folosește portul 1935, asigură-te că este deschis

FAQ

### Ce port folosește RTMP?

Implicit, RTMP folosește portul 1935. Poate folosi și 80 sau 443 (RTMPS) pentru a traversa firewall-uri.

Pot primi streamuri RTMPS (securizate)?

Da, GStreamer suportă RTMPS prin rtmp2src cu location="rtmps://...".

De ce am nevoie de un stream key?

Stream key-ul este o cheie privată care identifică streamul tău pe platformă și previne accesul neautorizat.

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