RTSP GStreamer UDP հոսք & Ջերմային տեսախցիկների ուշացման շտկում

RTSP հոսք GStreamer-ով – Իրական հաճախորդ Ք&Գործ (UDP ընդդեմ TCP)

Այս հոդվածը փաստում է հաճախորդների աջակցության իրական խոսակցություն՝ կապված RTSP հոսքի հետ մեր կողմից ջերմային տեսախցիկներ օգտագործում Գրազ.
Մենք այն կիսում ենք ա Q&Երկխոսության ձևաչափ այնպես որ նմանատիպ խնդիրներ ունեցող այլ հաճախորդներ կարող են արագ հետևել անսարքությունների վերացման գործընթացին.


1. RTSP հոսքի հասցեն

Հաճախորդ:
Բարեւ, մենք ստացանք ձեր ջերմային տեսախցիկները, ամեն ինչ լավ է աշխատում, շնորհակալություն, բայց մենք կարծես թե չենք կարող գտնել RTSP հոսքի հասցեն. Ինչ է /stream/sub?

աջակցություն:
Մեր տեսախցիկի RTSP հոսքի URL-ն է:

rtsp://192.168.2.254:554/live

2. RTSP ուշացման մտահոգություն

Հաճախորդ:
Մենք փորձարկեցինք RTSP հոսքը և նկատեցինք զգալի ուշացում՝ համեմատած կառավարման վահանակի նախադիտման հետ.

աջակցություն:
Սա սպասելի պահվածք է. Վեբ կառավարման նախադիտումն օգտագործում է ներքին օպտիմիզացված խողովակաշար, մինչդեռ RTSP-ն կախված է ցանցի պայմաններից և հաճախորդի բուֆերացումից.


3. UDP հոսքի պահանջ

Հաճախորդ:
RTSP հոսքը նույնպես չի աշխատում իմ նվագարկչի վրա, որն ակնկալում է UDP. Ինչպես կարող եմ ստանալ UDP հոսք?

աջակցություն:
Կարող եմ իմանալ, թե ինչ խաղացող եք օգտագործում? VLC?

Հաճախորդ:
Իմ նվագարկիչը GStreamer-ն է՝ ինտեգրված Android հավելվածում.


4. UDP Unicast ընդդեմ UDP Multicast

աջակցություն:
Եթե ​​GStreamer հաճախորդը մուտք է գործում սարք՝ օգտագործելով UDP բազմաֆունկցիոնալ, սա ներկայումս չի աջակցվում.
Մենք պետք է հստակեցնենք, թե արդյոք դուք օգտագործում եք UDP unicast կամ UDP բազմաֆունկցիոնալ.

Հաճախորդ:
Իմ GStreamer խողովակաշարն օգտագործում է rtspsrc հետ udp դրված է protocols պարամետր.
Ես չեմ օգտագործել udp-mcast արժեքը, ուստի այն պետք է լինի UDP unicast.


5. Պլատֆորմի պարզաբանում

աջակցություն:
Այս GStreamer-ն աշխատում է Windows-ով, Linux, կամ Android?
Մեր ծրագրային ապահովման ինժեները ցանկանում է փորձարկել մեր կողմից.

Հաճախորդ:
Իմ հավելվածն օգտագործում է GStreamer Android-ում, բայց rtspsrc կարող է փորձարկվել նաև Linux-ով.


6. Հայտնի Linux GStreamer խնդիր (Հղման գործ)

աջակցություն:
Մենք գտանք նմանատիպ հարց, որը քննարկվել է չինական տեխնիկական ֆորումում.

Լուծում:
Տեղահանեք հետևյալ փլագինը:

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

Այս փլագինը կարող է ուղարկել RTSP վերնագրեր, որոնք որոշ տեսախցիկներ չեն կարող ճանաչել, ինչը հանգեցնում է ծառայության մերժման սխալի.

RTSP GStreamer UDP Streaming & Latency Fix for Thermal Cameras 1

Տեղեկանք:
https://forums.developer.nvidia.com/t/rtsp-gstreamer-simple-recieve-and-store-in-file/157535/14

Կարող եք տրամադրել ձեր rtspsrc խողովակաշար (Linux-ը նախընտրելի է)? Հավելվածի տարբերակը նույնպես ընդունելի է թեստավորման համար.


7. RTSP DESCRIBE վերնագրի համատեղելիություն

աջակցություն:
Մեկ այլ հնարավոր պատճառն այն է, որ եթե RTSP ՆԿԱՐԱԳՐԵԼ հարցումը չի պարունակում:

application/sdp

սարքը կարող է հրաժարվել ծառայությունից.

Վավերացման այս տրամաբանությունը կարող է չափազանց խիստ լինել, և մենք նախատեսում ենք հանգստացնել այս վիճակը ապագա որոնվածի թարմացումներում.


8. Android GStreamer տարբերակի հաստատում

Հաճախորդ:
Android-ում, ես օգտագործում եմ:

  • gstreamer-1.0-android-universal-1.26.8

Այն չի ներառում տգեղ պլագիններ. Իմ Makefile-ը պարունակում է:

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

9. Առաջարկվող GStreamer Runtime Պարամետրեր

աջակցություն:
Խորհուրդ ենք տալիս փորձել short-header=true մեջ rtspsrc.

Հաճախորդ:
Դա UDP-ի վերնագիրն է?

աջակցություն:
Դա RTSP վերնագրի տարբերակ է և հաճախ բարելավում է համատեղելիությունը.

Օրինակներ:

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. Ներքին փորձարկման արդյունքներ (Linux)

աջակցություն:
Մեր ինժեները փորձարկել է RTSP հոսքը՝ օգտագործելով Գրազ 1.0 Linux-ում, և ճիշտ աշխատեց.

GStream-1 test on linux
GStream-1 թեստ Linux-ում
GStream-1 test on linux working well
GStream-1 թեստը Linux-ի վրա լավ է աշխատում

TCP օրինակ:

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

UDP օրինակ (հեռացնել protocols=tcp):

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

Ներքին տրամաբանությունը Linux-ի և Android GStreamer-ի միջև նույնն է, այնպես որ վարքագիծը պետք է համահունչ լինի հարթակներում.


11. Եզրակացություն

Այս դեպքը ընդգծում է մի քանի կարևոր կետ GStreamer-ով RTSP-ն օգտագործելիս:

  • RTSP URL: rtsp://<camera_ip>:554/live
  • UDP unicast Աջակցվում է; UDP multicast չէ
  • Խուսափեք խնդրահարույց պլագիններից (Միայն Linux)
  • Փորձիր short-header=true ավելի լավ համատեղելիության համար
  • Linux-ի թեստի արդյունքները սովորաբար կարող են կիրառվել Android-ի համար

Եթե ​​դուք բախվում եք նմանատիպ խնդիրների, խնդրում եմ տրամադրեք ձեր GStreamer խողովակաշար կամ փորձնական հաճախորդ, և մեր ինժեներական թիմը հետագայում կօգնի.

Հարց տվեք

← Ետ

Ձեր հաղորդագրությունն ուղարկված է