הזרמת RTSP GStreamer UDP & תיקון חביון למצלמות תרמיות

הזרמת RTSP עם GStreamer - לקוח אמיתי ש&מקרה (UDP לעומת TCP)

מאמר זה מתעד שיחת תמיכת לקוחות אמיתית בנוגע להזרמת RTSP מאתנו מצלמות תרמיות באמצעות Gstreamer.
אנחנו חולקים את זה ב-a ש&פורמט של דיאלוג כך שלקוחות אחרים המתמודדים עם בעיות דומות יוכלו לעקוב במהירות אחר תהליך פתרון הבעיות.


1. כתובת זרם RTSP

לָקוּחַ:
שלום, קיבלנו את המצלמות התרמיות שלך, הכל עובד בסדר, תודה, אבל נראה שאנחנו לא מצליחים למצוא את הכתובת לזרם RTSP. מה זה /stream/sub?

תמיכה:
כתובת האתר של זרם RTSP של המצלמה שלנו היא:

rtsp://192.168.2.254:554/live

2. דאגה להשהיית RTSP

לָקוּחַ:
בדקנו את זרם ה-RTSP ושמנו לב לאחזור ניכר בהשוואה לתצוגה המקדימה של לוח הניהול.

תמיכה:
זו התנהגות צפויה. התצוגה המקדימה של ניהול האינטרנט משתמשת בצינור פנימי מותאם, בעוד ש-RTSP תלוי בתנאי הרשת ובחציצה של הלקוח.


3. דרישת הזרמת UDP

לָקוּחַ:
זרם RTSP גם לא עובד על הנגן שלי שמצפה ל-UDP. איך אני יכול להשיג זרם UDP?

תמיכה:
אפשר לדעת באיזה נגן אתה משתמש? VLC?

לָקוּחַ:
הנגן שלי הוא GStreamer המשולב באפליקציית אנדרואיד.


4. UDP Unicast לעומת UDP Multicast

תמיכה:
אם לקוח GStreamer ניגש למכשיר באמצעות UDP multicast, זה כרגע אינו נתמך.
אנחנו צריכים להבהיר אם אתה משתמש UDP unicast אוֹ UDP multicast.

לָקוּחַ:
צינור ה-GStreamer שלי משתמש rtspsrc עם udp להגדיר ב protocols פָּרָמֶטֶר.
לא השתמשתי ב udp-mcast ערך, אז זה צריך להיות UDP unicast.


5. הבהרת פלטפורמה

תמיכה:
האם ה-GStreamer הזה פועל על Windows, לינוקס, או אנדרואיד?
מהנדס התוכנה שלנו רוצה לבדוק בצד שלנו.

לָקוּחַ:
האפליקציה שלי משתמשת ב-GStreamer באנדרואיד, אבל rtspsrc ניתן לבדוק גם בלינוקס.


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 צינור (עדיף לינוקס)? גם גרסת אפליקציה מקובלת לבדיקה.


7. RTSP DESCRIBE תאימות כותרות

תמיכה:
סיבה אפשרית נוספת היא שאם ה-RTSP לְתַאֵר הבקשה אינה מכילה:

application/sdp

המכשיר עשוי לסרב לשירות.

היגיון אימות זה עשוי להיות קפדני מדי, ואנו מתכננים להרפות מצב זה בעדכוני קושחה עתידיים.


8. אישור גרסת Android GStreamer

לָקוּחַ:
באנדרואיד, אני משתמש:

  • gstreamer-1.0-android-universal-1.26.8

זה לא כולל תוספים מכוערים. ה-Makefile שלי מכיל:

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

9. פרמטרי זמן ריצה של GStreamer מוצעים

תמיכה:
אנו ממליצים לנסות 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. תוצאות מבחן פנימי (לינוקס)

תמיכה:
המהנדס שלנו בדק את זרם RTSP באמצעות Gstreamer 1.0 על לינוקס, וזה עבד כמו שצריך.

GStream-1 test on linux
בדיקת GStream-1 בלינוקס
GStream-1 test on linux working well
מבחן GStream-1 בלינוקס עובד היטב

דוגמה 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

ההיגיון הפנימי בין לינוקס לאנדרואיד GStreamer זהה, אז ההתנהגות צריכה להיות עקבית בין הפלטפורמות.


11. מַסְקָנָה

מקרה זה מדגיש מספר נקודות חשובות בעת שימוש ב-RTSP עם GStreamer:

  • כתובת אתר RTSP: rtsp://<camera_ip>:554/live
  • UDP unicast נתמך; UDP multicast לא
  • הימנע תוספים בעייתיים (לינוקס בלבד)
  • לְנַסוֹת short-header=true לתאימות טובה יותר
  • ניתן ליישם תוצאות בדיקות לינוקס בדרך כלל על אנדרואיד

אם אתה נתקל בבעיות דומות, אנא ספק את שלך צינור GStreamer או לקוח בדיקה, וצוות ההנדסה שלנו יסייע בהמשך.

שאל שאלה

→ חזרה

תודה רבה ששלחת את התשובה! ✨