RTSP поточно предаване с GStreamer – истински клиент Q&Случай (UDP срещу TCP)
Тази статия документира истински разговор за поддръжка на клиенти относно RTSP поточно предаване от нашия термокамери Използване Gstreamer.
Споделяме го в a 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 едноадресно предаване или 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 заглавки, които някои камери не могат да разпознаят, което води до грешка при отказ на услуга.

Справка:
https://forums.developer.nvidia.com/t/rtsp-gstreamer-simple-recieve-and-store-in-file/157535/14
Бихте ли предоставили вашите rtspsrc тръбопровод (Предпочита се Linux)? Версия на приложението също е приемлива за тестване.
7. Съвместимост с RTSP DESCRIBE Header
поддържа:
Друга възможна причина е, че ако RTSP ОПИСАЙТЕ искането не съдържа:
application/sdp
устройството може да откаже услугата.
Тази логика на валидиране може да е твърде строга, и планираме да облекчим това условие при бъдещи актуализации на фърмуера.
8. Потвърждение на версията на Android GStreamer
Клиент:
На Android, използвам:
- gstreamer-1.0-андроид-универсален-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. Резултати от вътрешни тестове (Linux)
поддържа:
Нашият инженер тества RTSP потока с помощта на Gstreamer 1.0 на 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. Заключение
Този случай подчертава няколко важни момента при използване на RTSP с GStreamer:
- RTSP URL:
rtsp://<camera_ip>:554/live - UDP уникаст се поддържа; UDP мултикаст не е
- Избягвайте проблемните добавки (Само за Linux)
- Опитайте
short-header=trueза по-добра съвместимост - Резултатите от тестовете на Linux обикновено могат да се приложат към Android
Ако срещнете подобни проблеми, моля, предоставете своя Конвейер или тестов клиент на GStreamer, и нашият инженерен екип ще помогне допълнително.

Задай въпрос
Вашето съобщение е изпратено