RTSP GStreamer UDP streamování & Oprava latence pro termokamery

Streamování RTSP s GStreamer – skutečný zákazník Q&Případ (UDP vs TCP)

Tento článek dokumentuje skutečnou konverzaci zákaznické podpory týkající se streamování RTSP z našeho webu termokamery pomocí Gstreamer.
Sdílíme to v a Q&Formát dialogu takže ostatní zákazníci, kteří se potýkají s podobnými problémy, mohou rychle sledovat proces odstraňování problémů.


1. Adresa streamu RTSP

Zákazník:
Ahoj, dostali jsme vaše termokamery, vše funguje dobře, Děkuji, ale zdá se, že nemůžeme najít adresu pro stream RTSP. Co je /stream/sub?

Podpěra, podpora:
Adresa URL streamu RTSP naší kamery je:

rtsp://192.168.2.254:554/live

2. Obavy z latence RTSP

Zákazník:
Testovali jsme stream RTSP a zaznamenali jsme značnou latenci ve srovnání s náhledem panelu správy.

Podpěra, podpora:
Toto je očekávané chování. Náhled webové správy používá interní optimalizovaný kanál, zatímco RTSP závisí na podmínkách sítě a vyrovnávací paměti klienta.


3. Požadavek na streamování UDP

Zákazník:
Stream RTSP také nefunguje na mém přehrávači, který očekává UDP. Jak mohu získat UDP stream?

Podpěra, podpora:
Mohu vědět, jaký přehrávač používáte? VLC?

Zákazník:
Můj přehrávač je GStreamer integrovaný v aplikaci pro Android.


4. UDP Unicast vs UDP Multicast

Podpěra, podpora:
Pokud klient GStreamer přistupuje k zařízení pomocí UDP multicast, toto je aktuálně není podporováno.
Musíme si ujasnit, zda používáte UDP unicast nebo UDP multicast.

Zákazník:
Můj kanál GStreamer používá rtspsrc s udp zasazen do protocols parametr.
Nepoužil jsem udp-mcast hodnota, takže by to mělo být UDP unicast.


5. Vyjasnění platformy

Podpěra, podpora:
Běží tento GStreamer na Windows?, Linux, nebo Android?
Náš softwarový inženýr by rád otestoval na naší straně.

Zákazník:
Moje aplikace používá GStreamer na Androidu, ale rtspsrc lze testovat i na Linuxu.


6. Známý problém Linux GStreamer (Referenční případ)

Podpěra, podpora:
Našli jsme podobný problém projednávaný na čínském technickém fóru.

Řešení:
Odinstalujte následující plugin:

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

Tento plugin může odesílat hlavičky RTSP, které některé kamery nedokážou rozpoznat, což má za následek chybu odmítnutí služby.

RTSP GStreamer UDP Streaming & Latency Fix for Thermal Cameras 1

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

Mohl byste poskytnout svůj rtspsrc potrubí (Linux preferován)? Pro testování je přijatelná i verze aplikace.


7. RTSP POPISUJTE kompatibilitu záhlaví

Podpěra, podpora:
Dalším možným důvodem je, že pokud RTSP POPSAT žádost neobsahuje:

application/sdp

zařízení může službu odmítnout.

Tato logika ověřování může být příliš přísná, a plánujeme tento stav zmírnit v budoucích aktualizacích firmwaru.


8. Potvrzení verze Android GStreamer

Zákazník:
Na Androidu, já používám:

  • gstreamer-1.0-android-universal-1.26.8

Neobsahuje ošklivé pluginy. Můj soubor Makefile obsahuje:

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

9. Doporučené parametry běhu GStreamer

Podpěra, podpora:
Doporučujeme vyzkoušet short-header=true v rtspsrc.

Zákazník:
Je to hlavička pro UDP?

Podpěra, podpora:
Je to možnost záhlaví RTSP a často zlepšuje kompatibilitu.

Příklady:

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. Výsledky interních testů (Linux)

Podpěra, podpora:
Náš technik testoval stream RTSP pomocí Gstreamer 1.0 na Linuxu, a fungovalo to správně.

GStream-1 test on linux
Test GStream-1 na linuxu
GStream-1 test on linux working well
Test GStream-1 na linuxu funguje dobře

Příklad TCP:

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

Příklad UDP (odstranit protocols=tcp):

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

Vnitřní logika mezi Linuxem a Androidem GStreamer je stejná, takže chování by mělo být konzistentní napříč platformami.


11. Závěr

Tento případ zdůrazňuje několik důležitých bodů při používání RTSP s GStreamerem:

  • RTSP URL: rtsp://<camera_ip>:554/live
  • UDP unicast je podporován; UDP multicast není
  • Vyhněte se problematickým pluginům (Pouze Linux)
  • Pokus short-header=true pro lepší kompatibilitu
  • Výsledky testů Linuxu lze obecně aplikovat na Android

Pokud narazíte na podobné problémy, prosím poskytněte svůj GStreamer potrubí nebo testovací klient, a náš technický tým vám bude dále pomáhat.

Položit otázku

← Zpět

Děkujeme za Vaši odpověď. ✨