UDP на сервер RTSP в Gstreamer

У меня есть IP-камера, и я хочу получить ее видеопоток с помощью Gstreamer и отправить его в udpsink, а затем в другой сети получить его и поделиться с помощью сервера RTSP. Это моя командная строка на первой стороне

gst-launch-1.0 -v  rtspsrc location=rtsp://example:x/media.smp ! rtph264depay ! h264parse ! rtph264pay name=pay0 pt=96 ! udpsink host=127.0.0.1 port=5001

а с другой стороны я использовал обе эти команды.

./test-launch  "( udpsrc port=5001 caps = "application/x-rtp\,\ media\=\(string\)video\,\ payload\=\(int\)98\,\ clock-rate\=\(int\)90000\,\ encoding-name\=\(string\)H264\,\ packetization-mode\=\(string\)1\,\ profile-level-id\=\(string\)640028\,\ sprop-parameter-sets\=\(string\)\"Z2QAKKy0A8ARPyo\\\=\\\,aM4Bniw\\\=\"\,\ a-framesize\=\(string\)1920-1080\,\ a-cliprect\=\(string\)\"0\\\,0\\\,1080\\\,1920\"\,\ a-framerate\=\(string\)25.0\,\ clock-base\=\(uint\)3219500149\,\ seqnum-base\=\(uint\)57852\,\ npt-start\=\(guint64\)0\,\ play-speed\=\(double\)1\,\ play-scale\=\(double\)1\,\ ssrc\=\(uint\)691379019" ! x264enc ! rtph264pay name=pay0 pt=96 )"

а также

./test-launch  "( udpsrc port=5001 ! x264enc ! rtph264pay name=pay0 pt=96 )"

Но у меня ошибка RTSP/1.0 503 service unavailable.

Кто-нибудь знает, почему это происходит? Любая помощь будет очень признательна!

Пожалуйста, посмотрите github.com/RSATom/RtspRestreamServer - он создан именно для этой задачи, но намного проще, надежнее и гибче, чем использование потоковой передачи udp. И возможно добавить SSL-шифрование к потокам.

RSATom 18.04.2018 14:42

Спасибо @RSATom. Я попытался создать файл make с помощью cmake в Ubuntu Linux, но получил это сообщение об ошибке: None of the required 'gstreamer-rtsp-server-1.0' found. Думаю, мне нужно его установить, но я не нашел.

Yoones Imani 22.04.2018 09:16

вам нужен launchpad.net/%7Ersatom/+archive/ubuntu/gst-rtsp-server-1.0

RSATom 22.04.2018 11:04

и sudo apt install libgstrtspserver-1.0-dev

RSATom 22.04.2018 11:08

но имейте в виду, что он работает только на Ubuntu 17

RSATom 22.04.2018 11:09

Я хочу запустить его на встроенной плате, и его ОС - linaro-1.13.1 (я думаю, Ubuntu 14.0). Знаете ли вы (@RSATom) другое решение для ретрансляции потока UDP на RTSP, поддерживающее TCP / UDP / HTTP?

Yoones Imani 23.04.2018 08:42

Ubuntu 17 требуется PPA для моего модифицированного gstreamer-rtsp-server-1.0, и он требуется только на стороне сервера. На вашей плате вам понадобится только часть ванильного gstreamer-rtsp-server - rtspclientsink. Но, конечно, я не знаю, доступен ли он на linaro-1.13.1 и совместим ли он с последними версиями rtsp-сервера ...

RSATom 23.04.2018 10:32

Кстати, последняя версия GStreamer имеет сток WebRTC. Это мог бы быть еще один хороший вариант ...

RSATom 23.04.2018 10:34

Я установил Ubuntu 17 и смог скомпилировать проект, но столкнулся с другой проблемой: для этого нужен rtspclientsink, и я не знаю, как его получить. @RSATom

Yoones Imani 25.04.2018 08:38
rtspclientsink находятся в gstreamer-rtsp-server. Так что просто установите его на стороне клиента, даже если вы не планируете запускать там сервер.
RSATom 25.04.2018 11:19

Думаю, вам нужен пакет libgstrtspserver-1.0-0

RSATom 25.04.2018 11:45

@RSATom Я могу работать медленно, но не понимаю, как работает ваше приложение. поэтому, если я хочу перезапустить, скажем, камера по этому адресу: rtsp: //10.0.0.1: 8554 / stream на rtsp: //10.0.0.2: 8554 / restream (10.0.0.2 - это локальный IP-адрес сервера), чем как Я делаю это?

Laci K 26.06.2018 15:55

@LaciK, если я вас правильно понял, то вам понадобится третья часть, которая с одной стороны будет подключаться к rtsp: //10.0.0.1: 8554 / stream через RTSP PLAY, а с другой стороны будет отправлять полученные пакеты в rtsp: / /10.0.0.2:8554/restream через RTSP RECORD. У меня уже есть реализация этого компонента сортировки, но это банкомат с закрытым исходным кодом. Может, скоро открою, надо немного подумать ...

RSATom 26.06.2018 17:01

@LaciK, я открыл исходники своего рестримера IpCams: github.com/RSATom/IpCamBox

RSATom 03.12.2018 08:44
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
2
14
2 979
0

Другие вопросы по теме