Вопрос или проблема
Я использую gstreamer для получения rtsp потока. Я использую команду: gst-launch-1.0 rtspsrc location='rtsp://user:password@address:554/live/main' latency=100 ! queue ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! autovideosink
Я использовал ее на первом компьютере, и она работала.
Затем я использовал ее на втором компьютере, и она тоже работала.
После этого я сделал некоторые операции по удалению/установке с opencv на втором компьютере.
И теперь я не могу получить поток со второго компьютера. Но на первом компьютере с той же самой командой всё еще работает.
Вывод:
Установка конвейера в состояние PAUSED ...
Конвейер в рабочем состоянии и не требует PREROLL ...
Получен контекст от элемента 'autovideosink0': gst.gl.GLDisplay=context, gst.gl.GLDisplay=(GstGLDisplay)"\(GstGLDisplayX11\)\ gldisplayx11-0";
Прогресс: (открытие) Открытие потока
Прогресс: (подключение) Подключение к rtsp://user:password@address:554/live/main
ОШИБКА: от элемента /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0: Не удалось открыть ресурс для чтения и записи.
Дополнительная отладочная информация:
gstrtspsrc.c(7469): gst_rtspsrc_retrieve_sdp (): /GstPipeline:pipeline0/GstRTSPSrc:rtspsrc0:
Ошибка подключения. (Общая ошибка)
ОШИБКА: конвейер не может перейти в состояние preroll.
Установка конвейера в состояние PAUSED ...
Установка конвейера в состояние READY ...
Установка конвейера в состояние NULL ...
Освобождение конвейера ...
Что я сделал и как это исправить? Заранее спасибо!
С использованием GST_DEBUG=1 gst-launch-1.0...
я понял, что проблема была в http-proxy.
Ответ или решение
Ваша проблема с GStreamer на Ubuntu, связанная с ошибкой "Could not open resource for reading and writing", может иметь несколько причин и решений. Давайте разберемся, что может вызвать эту ошибку и какие шаги можно предпринять для ее устранения.
Введение в проблему
Вы используете GStreamer, чтобы подключиться к RTSP-потоку с помощью команды:
gst-launch-1.0 rtspsrc location='rtsp://user:password@address:554/live/main' latency=100 ! queue ! rtph264depay ! h264parse ! avdec_h264 ! videoconvert ! videoscale ! video/x-raw,width=640,height=480 ! autovideosink
Эта команда работала на двух разных компьютерах до тех пор, пока на втором из них не были произведены операции по установке/удалению OpenCV. После этого возникли проблемы с потоками только на втором компьютере. Основываясь на ваших наблюдениях, проблема связана с настройками HTTP-прокси.
Возможные причины проблемы
-
HTTP-прокси: Как вы заметили, возможно, ваша проблема связана с конфигурацией прокси-сервера, которая могла измениться в процессе установки или удаления OpenCV. Это может быть вызвано тем, что GStreamer или установленные библиотеки используют сетевые настройки, которые работают через прокси.
-
Библиотеки и зависимости: После установки/удаления OpenCV могли быть изменены или удалены зависимости, которые использует GStreamer. В частности, могли быть затронуты библиотеки, отвечающие за сетевые соединения.
-
Сетевые правила или брандмауэр: Убедитесь, что сетевые настройки вашего второго компьютера не были изменены, и что доступ через порт 554 (RTSP) не заблокирован.
Решения
-
Проверка прокси-сервера: Убедитесь, что настройки вашей сети корректно конфигурированы и назначены. Вы можете просмотреть или изменить переменные окружения, такие как
http_proxy
иhttps_proxy
, чтобы удостовериться, что они соответствуют вашему сетевому окружению. -
Переустановка или обновление GStreamer: Попробуйте переустановить GStreamer, воспользовавшись следующими командами:
sudo apt-get remove --purge gstreamer1.0* sudo apt-get autoremove sudo apt-get update sudo apt-get install gstreamer1.0-tools gstreamer1.0-plugins-base gstreamer1.0-plugins-good gstreamer1.0-plugins-bad gstreamer1.0-plugins-ugly gstreamer1.0-libav
-
Проверка других зависимостей: Убедитесь, что все необходимые библиотеки для работы GStreamer установлены и находятся в корректных версиях. Особое внимание уделите библиотекам, связанным с сетевыми функциональностями.
-
Логирование и отладка: Используйте
GST_DEBUG=3 gst-launch-1.0 ...
для получения более детального вывода о том, где именно происходит сбой в процессе подключения. Это может помочь выявить конкретные проблемы или отсутствующие компоненты.
Заключение
Чтобы успешно устранить проблему с GStreamer и RTSP, вам необходимо диагностировать изменения, которые произошли в вашей системе. Особое внимание уделите настройкам прокси и зависимостям библиотек. Если изменения повлияли на сетевые настройки или установленные пакеты, это может сказаться на работе всего потока. Следуя предложенным шагам, вы сможете выявить и исправить основную причину проблемы.