RTSP GStreamer UDP-Streaming & Latenzkorrektur für Wärmebildkameras

RTSP-Streaming mit GStreamer – Eine echte Kundenfrage&Ein Fall (UDP vs. TCP)

Dieser Artikel dokumentiert ein echtes Kundensupportgespräch zum Thema RTSP-Streaming von unserem Wärmebildkameras verwenden Gstreamer.
Wir teilen es in einem Q&Ein Dialogformat So können andere Kunden, die mit ähnlichen Problemen konfrontiert sind, den Fehlerbehebungsprozess schnell verfolgen.


1. RTSP-Stream-Adresse

Kunde:
Hallo, Wir haben Ihre Wärmebildkameras erhalten, alles funktioniert gut, Danke, aber wir können anscheinend die Adresse für den RTSP-Stream nicht finden. Was ist das /stream/sub?

Unterstützung:
Die URL unseres Kamera-RTSP-Streams lautet:

rtsp://192.168.2.254:554/live

2. Bedenken hinsichtlich der RTSP-Latenz

Kunde:
Wir haben den RTSP-Stream getestet und eine erhebliche Latenz im Vergleich zur Vorschau des Management-Panels festgestellt.

Unterstützung:
Dies ist das erwartete Verhalten. Die Webverwaltungsvorschau verwendet eine intern optimierte Pipeline, während RTSP von den Netzwerkbedingungen und der Client-Pufferung abhängt.


3. UDP-Streaming-Anforderung

Kunde:
Der RTSP-Stream funktioniert auch nicht auf meinem Player, der UDP erwartet. Wie kann ich einen UDP-Stream erhalten??

Unterstützung:
Darf ich wissen, welchen Player Sie verwenden?? VLC?

Kunde:
Mein Player ist GStreamer, der in eine Android-App integriert ist.


4. UDP Unicast vs. UDP Multicast

Unterstützung:
Wenn der GStreamer-Client über auf das Gerät zugreift UDP Multicast, das ist aktuell nicht unterstützt.
Wir müssen klären, ob Sie es verwenden UDP-Unicast oder UDP Multicast.

Kunde:
Meine GStreamer-Pipeline verwendet rtspsrc mit udp eingestellt in der protocols Parameter.
Ich habe das nicht genutzt udp-mcast Wert, es sollte also UDP-Unicast sein.


5. Klarstellung der Plattform

Unterstützung:
Läuft dieser GStreamer unter Windows?, Linux, oder Android?
Unser Software-Ingenieur würde gerne auf unserer Seite testen.

Kunde:
Meine App verwendet GStreamer auf Android, aber rtspsrc kann auch unter Linux getestet werden.


6. Bekanntes Linux GStreamer-Problem (Referenzfall)

Unterstützung:
Wir haben ein ähnliches Problem gefunden, das in einem chinesischen Technikforum diskutiert wurde.

Lösung:
Deinstallieren Sie das folgende Plugin:

sudo apt-get remove gstreamer1.0-plugins-ugly

Dieses Plugin sendet möglicherweise RTSP-Header, die einige Kameras nicht erkennen können, Dies führt zu einem Denial-of-Service-Fehler.

RTSP GStreamer UDP Streaming & Latency Fix for Thermal Cameras 1

Referenz:
https://forums.developer.nvidia.com/t/rtsp-gstreamer-simple-recieve-and-store-in-file/157535/14

Könnten Sie Ihre zur Verfügung stellen? rtspsrc Pipeline (Linux bevorzugt)? Zum Testen ist auch eine App-Version akzeptabel.


7. RTSP DESCRIBE-Header-Kompatibilität

Unterstützung:
Ein weiterer möglicher Grund ist, dass der RTSP BESCHREIBEN Anfrage enthält nicht:

application/sdp

Das Gerät kann den Dienst verweigern.

Diese Validierungslogik ist möglicherweise zu streng, Wir planen, diesen Zustand in zukünftigen Firmware-Updates zu lockern.


8. Bestätigung der Android GStreamer-Version

Kunde:
Auf Android, Ich benutze:

  • gstreamer-1.0-android-universal-1.26.8

Es enthält keine hässlichen Plugins. Mein Makefile enthält:

GSTREAMER_PLUGINS := \
    coreelements \
    playback \
    typefindfunctions \
    rtsp \
    rtp \
    rtpmanager \
    udp \
    tcp \
    videoparsersbad \
    androidmedia \
    opengl

9. Empfohlene GStreamer-Laufzeitparameter

Unterstützung:
Wir empfehlen, es auszuprobieren short-header=true im rtspsrc.

Kunde:
Ist das ein Header für UDP??

Unterstützung:
Es handelt sich um eine RTSP-Header-Option, die häufig die Kompatibilität verbessert.

Beispiele:

gst-launch-1.0 rtspsrc location=rtsp://<ip>:<port>/<path> short-header=true
gst-launch-1.0 rtspsrc location=rtsp://<ip>:<port>/<path> do-rtcp=false short-header=true

10. Interne Testergebnisse (Linux)

Unterstützung:
Unser Techniker hat den RTSP-Stream mit getestet Gstreamer 1.0 unter Linux, und es hat richtig funktioniert.

GStream-1 test on linux
GStream-1-Test unter Linux
GStream-1 test on linux working well
GStream-1-Test unter Linux funktioniert gut

TCP-Beispiel:

gst-launch-1.0 rtspsrc location="rtsp://192.168.2.254/live" \
  name=src \
  latency=0 \
  protocols=tcp \
src. \
  ! decodebin \
  ! autovideosink

UDP-Beispiel (entfernen protocols=tcp):

gst-launch-1.0 rtspsrc location="rtsp://192.168.2.254/live" \
  name=src \
  latency=0 \
src. \
  ! decodebin \
  ! autovideosink

Die interne Logik zwischen Linux und Android GStreamer ist dieselbe, Daher sollte das Verhalten auf allen Plattformen konsistent sein.


11. Abschluss

Dieser Fall verdeutlicht mehrere wichtige Punkte bei der Verwendung von RTSP mit GStreamer:

  • RTSP-URL: rtsp://<camera_ip>:554/live
  • UDP Unicast wird unterstützt; UDP-Multicast ist nicht
  • Vermeiden Sie problematische Plugins (Nur Linux)
  • Versuchen short-header=true für eine bessere Kompatibilität
  • Linux-Testergebnisse können grundsätzlich auf Android übertragen werden

Wenn Sie auf ähnliche Probleme stoßen, Bitte geben Sie Ihre an GStreamer-Pipeline oder Test-Client, und unser Engineering-Team wird Ihnen weiterhelfen.

Stelle eine Frage

← Zurück

Vielen Dank für deine Antwort. ✨