RTSP GStreamer UDP Akışı & Termal Kameralar için Gecikme Düzeltmesi

GStreamer ile RTSP Yayını – Gerçek Bir Müşteri Sorusu&Bir Vaka (UDP ve TCP)

Bu makale, sunucumuzdan RTSP akışıyla ilgili gerçek bir müşteri desteği görüşmesini belgelemektedir. termal kameralar kullanma Gstreamer.
Bir şekilde paylaşıyoruz S&Bir diyalog formatı böylece benzer sorunlarla karşılaşan diğer müşteriler sorun giderme sürecini hızla takip edebilir.


1. RTSP Akış Adresi

Müşteri:
Merhaba, termal kameralarınızı aldık, her şey yolunda gidiyor, Teşekkürler, ancak RTSP akışının adresini bulamıyoruz. Nedir /stream/sub?

Destek:
Kameramızın RTSP akış URL'si::

rtsp://192.168.2.254:554/live

2. RTSP Gecikme Sorunu

Müşteri:
RTSP akışını test ettik ve yönetim paneli önizlemesine kıyasla kayda değer bir gecikme fark ettik.

Destek:
Bu beklenen davranıştır. Web yönetimi önizlemesi, dahili olarak optimize edilmiş bir ardışık düzen kullanır, RTSP ağ koşullarına ve istemci arabelleğe almaya bağlıdır.


3. UDP Akış Gereksinimi

Müşteri:
RTSP akışı, UDP bekleyen oynatıcımda da çalışmıyor. UDP akışını nasıl alabilirim?

Destek:
Hangi oynatıcıyı kullandığınızı öğrenebilir miyim? VLC?

Müşteri:
Oynatıcım bir Android uygulamasına entegre edilmiş GStreamer'dır.


4. UDP Tek Noktaya Yayın ve UDP Çok Noktaya Yayın

Destek:
GStreamer istemcisi cihaza şunu kullanarak erişiyorsa: UDP çok noktaya yayın, şu anda bu desteklenmiyor.
kullanıp kullanmadığınızı açıklığa kavuşturmamız gerekiyor. UDP tek noktaya yayın veya UDP çok noktaya yayın.

Müşteri:
GStreamer boru hattımın kullandığı rtspsrc ile udp içinde ayarlanmış protocols parametre.
kullanmadım udp-mcast değer, yani UDP tek noktaya yayın olmalı.


5. Platform Açıklaması

Destek:
Bu GStreamer Windows'ta çalışıyor mu?, Linux, veya Android?
Yazılım mühendisimiz bizim tarafımızda test yapmak istiyor.

Müşteri:
Uygulamam Android'de GStreamer kullanıyor, Ancak rtspsrc Linux'ta da test edilebilir.


6. Bilinen Linux Gstreamer Sorunu (Referans Vakası)

Destek:
Benzer bir konunun Çin teknik forumunda tartışıldığını bulduk.

Çözüm:
Aşağıdaki eklentiyi kaldırın:

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

Bu eklenti bazı kameraların tanıyamayacağı RTSP başlıkları gönderebilir, hizmet reddi hatasıyla sonuçlanan.

RTSP GStreamer UDP Streaming & Latency Fix for Thermal Cameras 1

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

bilgilerinizi verebilir misiniz? rtspsrc boru hattı (Linux tercih edildi)? Bir uygulama sürümü de test için kabul edilebilir.


7. RTSP AÇIKLAMASI Başlık Uyumluluğu

Destek:
Bir diğer olası neden ise RTSP'nin BETİMLEMEK istek içermiyor:

application/sdp

cihaz servisi reddedebilir.

Bu doğrulama mantığı çok katı olabilir, ve gelecekteki cihaz yazılımı güncellemelerinde bu durumu hafifletmeyi planlıyoruz.


8. Android GStreamer Sürüm Onayı

Müşteri:
Android'de, kullanıyorum:

  • gstreamer-1.0-android-evrensel-1.26.8

Çirkin eklentiler içermez. Makefile'ım şunları içeriyor:

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

9. Önerilen GStreamer Çalışma Zamanı Parametreleri

Destek:
Denemenizi öneririz short-header=true içinde rtspsrc.

Müşteri:
Bu başlık UDP için mi?

Destek:
Bu bir RTSP başlık seçeneğidir ve genellikle uyumluluğu artırır.

Örnekler:

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. Dahili Test Sonuçları (Linux)

Destek:
Mühendisimiz RTSP akışını şunu kullanarak test etti: Gstreamer 1.0 Linux'ta, ve doğru çalıştı.

GStream-1 test on linux
Linux'ta GStream-1 testi
GStream-1 test on linux working well
Linux'ta GStream-1 testi iyi çalışıyor

TCP örneği:

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

UDP örneği (kaldırmak protocols=tcp):

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

Linux ve Android Gstreamer arasındaki iç mantık aynıdır, bu nedenle davranışlar platformlar arasında tutarlı olmalıdır.


11. Çözüm

Bu örnekte GStreamer ile RTSP kullanılırken birkaç önemli nokta vurgulanıyor:

  • RTSP URL'si: rtsp://<camera_ip>:554/live
  • UDP tek noktaya yayın desteklenir; UDP çok noktaya yayın değil
  • Sorunlu eklentilerden kaçının (Yalnızca Linux)
  • Denemek short-header=true daha iyi uyumluluk için
  • Linux test sonuçları genellikle Android'e uygulanabilir

Benzer sorunlarla karşılaşırsanız, lütfen bilgilerinizi sağlayın GStreamer işlem hattı veya test istemcisi, ve mühendislik ekibimiz daha fazla yardımcı olacaktır.

Bir soru sor

← Geri

Yanıtınız için teşekkür ederiz. ✨