RTSP GStreamer UDP Streaming & رفع تاخیر برای دوربین های حرارتی

RTSP Streaming with GStreamer – A Real Customer Q&A Case (UDP vs TCP)

This article documents a real customer support conversation regarding RTSP streaming from our دوربین های حرارتی با استفاده از GStreamer.
We are sharing it in a س&A dialog format so other customers facing similar issues can quickly follow the troubleshooting process.


1. RTSP Stream Address

Customer:
سلام, we received your thermal cameras, everything works fine, متشکرم, but we can’t seem to find the address for the RTSP stream. What is the /stream/sub?

حمایت کردن:
Our camera RTSP stream URL is:

rtsp://192.168.2.254:554/live

2. RTSP Latency Concern

Customer:
We tested the RTSP stream and noticed considerable latency compared to the management panel preview.

حمایت کردن:
This is expected behavior. The web management preview uses an internal optimized pipeline, while RTSP depends on network conditions and client buffering.


3. UDP Streaming Requirement

Customer:
The RTSP stream also doesn’t work on my player that expects UDP. How can I get a UDP stream?

حمایت کردن:
May I know what player you are using? VLC?

Customer:
My player is GStreamer integrated in an Android app.


4. UDP Unicast vs UDP Multicast

حمایت کردن:
If the GStreamer client accesses the device using UDP multicast, this is currently پشتیبانی نمی شود.
We need to clarify whether you are using UDP unicast یا UDP multicast.

Customer:
My GStreamer pipeline uses rtspsrc با udp set in the protocols پارامتر.
I did not use the udp-mcast ارزش, so it should be UDP unicast.


5. Platform Clarification

حمایت کردن:
Is this GStreamer running on Windows, لینوکس, or Android?
Our software engineer would like to test on our side.

Customer:
My app uses GStreamer on Android, اما rtspsrc can also be tested on Linux.


6. Known Linux GStreamer Issue (Reference Case)

حمایت کردن:
We found a similar issue discussed in a Chinese technical forum.

راه حل:
Uninstall the following plugin:

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

This plugin may send RTSP headers that some cameras cannot recognize, resulting in a denial-of-service error.

RTSP GStreamer UDP Streaming

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

Could you provide your rtspsrc pipeline (Linux preferred)? An app version is also acceptable for testing.


7. RTSP DESCRIBE Header Compatibility

حمایت کردن:
Another possible reason is that if the RTSP DESCRIBE request does not contain:

application/sdp

the device may refuse the service.

This validation logic may be too strict, and we plan to relax this condition in future firmware updates.


8. Android GStreamer Version Confirmation

Customer:
On Android, I am using:

  • gstreamer-1.0-android-universal-1.26.8

It does not include ugly plugins. My Makefile contains:

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

9. Suggested GStreamer Runtime Parameters

حمایت کردن:
We recommend trying short-header=true در rtspsrc.

Customer:
Is that header for UDP?

حمایت کردن:
It is an RTSP header option and often improves compatibility.

نمونه ها:

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. Internal Test Results (لینوکس)

حمایت کردن:
Our engineer tested the RTSP stream using GStreamer 1.0 on Linux, and it worked correctly.

GStream-1 test on linux
GStream-1 test on linux
GStream-1 test on linux working well
GStream-1 test on linux working well

TCP example:

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

UDP example (remove protocols=tcp):

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

The internal logic between Linux and Android GStreamer is the same, so behavior should be consistent across platforms.


11. نتیجه گیری

This case highlights several important points when using RTSP with GStreamer:

  • RTSP URL: rtsp://<camera_ip>:554/live
  • UDP unicast پشتیبانی می شود; UDP multicast is not
  • Avoid problematic plugins (Linux only)
  • Try short-header=true for better compatibility
  • Linux test results can generally be applied to Android

If you encounter similar issues, please provide your GStreamer pipeline or test client, and our engineering team will assist further.

سوال بپرسید

← برگشت

از پاسخ شما سپاسگزاریم. ✨