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.
Talahanayan ng nilalaman
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.

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.


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=truepara 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
Ipinadala ang iyong mensahe