RTSP GStreamer UDP Streaming & Pag-aayos ng Latency para sa Mga Thermal Camera

RTSP Streaming sa GStreamer – Isang Tunay na Customer Q&Isang Kaso (UDP kumpara sa TCP)

Ang artikulong ito ay nagdodokumento ng isang tunay na pag-uusap sa suporta sa customer tungkol sa RTSP streaming mula sa aming mga thermal camera gamit ang Gstreamer.
Ibinabahagi namin ito sa isang Q&Isang format ng dialogo upang ang ibang mga customer na nahaharap sa mga katulad na isyu ay mabilis na makasunod sa proseso ng pag-troubleshoot.


1. Address ng RTSP Stream

Customer:
Hello, natanggap namin ang iyong mga thermal camera, lahat ay gumagana nang maayos, salamat po sa inyo, ngunit tila hindi namin mahanap ang address para sa stream ng RTSP. Ano ang /stream/sub?

Suporta:
Ang aming RTSP stream URL ng camera ay:

rtsp://192.168.2.254:554/live

2. RTSP Latency Concern

Customer:
Sinubukan namin ang stream ng RTSP at napansin namin ang malaking latency kumpara sa preview ng panel ng pamamahala.

Suporta:
Ito ay inaasahang pag-uugali. Gumagamit ang preview ng pamamahala sa web ng panloob na na-optimize na pipeline, habang ang RTSP ay nakasalalay sa mga kundisyon ng network at pag-buffer ng kliyente.


3. Kinakailangan sa Pag-stream ng UDP

Customer:
Ang stream ng RTSP ay hindi rin gumagana sa aking player na umaasa sa UDP. Paano ako makakakuha ng stream ng UDP?

Suporta:
Maaari ko bang malaman kung anong player ang ginagamit mo? VLC?

Customer:
Ang player ko ay GStreamer na isinama sa isang Android app.


4. UDP Unicast kumpara sa UDP Multicast

Suporta:
Kung ina-access ng kliyente ng GStreamer ang device gamit ang UDP Multicast, ito sa kasalukuyan hindi suportado.
Kailangan naming linawin kung gumagamit ka UDP unicast o UDP Multicast.

Customer:
Ginagamit ng aking GStreamer pipeline rtspsrc may udp itinakda sa protocols parameter.
Hindi ko ginamit ang udp-mcast halaga ng, kaya dapat ito ay UDP unicast.


5. Paglilinaw ng Platform

Suporta:
Gumagana ba ang GStreamer na ito sa Windows, Linux, o Android?
Ang aming software engineer ay gustong subukan sa aming panig.

Customer:
Gumagamit ang aking app ng GStreamer sa Android, pero rtspsrc maaari ding masuri sa Linux.


6. Kilalang Linux GStreamer Issue (Reference Case)

Suporta:
Nakakita kami ng katulad na isyu na tinalakay sa isang Chinese technical forum.

Solusyon:
I-uninstall ang sumusunod na plugin:

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

Maaaring magpadala ang plugin na ito ng mga RTSP header na hindi makilala ng ilang camera, na nagreresulta sa isang error sa pagtanggi sa serbisyo.

RTSP GStreamer UDP Streaming & Latency Fix for Thermal Cameras 1

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

Maaari mo bang ibigay ang iyong rtspsrc pipeline (Mas gusto ang Linux)? Ang isang bersyon ng app ay katanggap-tanggap din para sa pagsubok.


7. RTSP DESCRIBE Header Compatibility

Suporta:
Isa pang posibleng dahilan ay kung ang RTSP Ilarawan hindi naglalaman ang kahilingan:

application/sdp

maaaring tanggihan ng device ang serbisyo.

Maaaring masyadong mahigpit ang lohika ng pagpapatunay na ito, at plano naming i-relax ang kundisyong ito sa hinaharap na mga update sa firmware.


8. Pagkumpirma ng Bersyon ng Android GStreamer

Customer:
Sa Android, Gumagamit ako:

  • gstreamer-1.0-android-universal-1.26.8

Hindi ito kasama ang mga pangit na plugin. Ang Aking Makefile ay naglalaman ng:

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

9. Mga Iminungkahing GStreamer Runtime Parameter

Suporta:
Inirerekomenda naming subukan short-header=true sa rtspsrc.

Customer:
Ito ba ay header para sa UDP?

Suporta:
Isa itong opsyon sa header ng RTSP at kadalasang nagpapabuti sa pagiging tugma.

Mga halimbawa:

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. Mga Resulta ng Panloob na Pagsusulit (Linux)

Suporta:
Sinubukan ng aming engineer ang stream ng RTSP gamit Gstreamer 1.0 sa Linux, at ito ay gumana nang tama.

GStream-1 test on linux
Pagsubok ng GStream-1 sa linux
GStream-1 test on linux working well
Ang pagsubok ng GStream-1 sa linux ay gumagana nang maayos

Halimbawa ng TCP:

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

Halimbawa ng UDP (tanggalin protocols=tcp):

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

Ang panloob na lohika sa pagitan ng Linux at Android GStreamer ay pareho, kaya dapat pare-pareho ang pag-uugali sa mga platform.


11. Pangwakas na Salita

Ang kasong ito ay nagha-highlight ng ilang mahahalagang punto kapag gumagamit ng RTSP sa GStreamer:

  • URL ng RTSP: rtsp://<camera_ip>:554/live
  • UDP unicast ay suportado; Ang UDP multicast ay hindi
  • Iwasan ang mga may problemang plugin (Linux lang)
  • Subukan short-header=true para sa mas mahusay na pagkakatugma
  • Ang mga resulta ng pagsubok sa Linux ay karaniwang maaaring ilapat sa Android

Kung nakatagpo ka ng mga katulad na isyu, mangyaring ibigay ang iyong GStreamer pipeline o test client, at ang aming koponan sa engineering ay tutulong pa.

Magtanong ng isang katanungan

← Bumalik

Ipinadala ang iyong mensahe