Чтение RTSP-потока на Python
RTSP (Real-Time Streaming Protocol) — это сетевой протокол прикладного уровня, предназначенный для использования в системах, предоставляющих мультимедийные данные в реальном времени, такие как аудио и видео. В этой статье мы рассмотрим, как читать RTSP-поток с использованием Python.

Установка необходимых библиотек

Для работы с RTSP-потоками в Python часто используют библиотеку OpenCV, которая поддерживает работу с видеоисточниками, включая RTSP. Установим необходимые библиотеки:
pip install opencv-python imutils

Основы работы с OpenCV

OpenCV предоставляет мощный интерфейс для захвата и обработки видео. Для чтения RTSP-потока используется объект cv2.VideoCapture.

Пример кода

import cv2, imutils

title = 'Camera RTSP'
camera = 'rtsp://104.194.11.25:555/livedemocam' # 0 or 'rtsp://104.194.11.25:555/livedemocam'
width = 720

cap = cv2.VideoCapture(camera)

width_org = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height_org = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
print(f'Width: {width_org} | Height: {height_org} | FPS: {fps}')

while True:
    ret, img = cap.read()
    img = imutils.resize(img, width=width)
    cv2.imshow(title, img)
    if cv2.waitKey(10) == 27 or cv2.getWindowProperty(title, cv2.WND_PROP_VISIBLE) < 1: # Если нажал на Esc или на кнопку X
        break

cap.release()
cv2.destroyAllWindows()
Описание кода
  1. Импорт библиотек: Импортируем библиотеку OpenCV.
  2. URL RTSP-потока: Задаем URL RTSP-потока. Обычно он имеет формат rtsp://username:password@ip_address:port/path.
  3. Создание объекта VideoCapture: Создаем объект cv2.VideoCapture с указанным URL.
  4. Проверка открытия потока: Проверяем, удалось ли открыть поток.
  5. Чтение кадров: В цикле читаем кадры из потока и отображаем их с помощью cv2.imshow.
  6. Выход из цикла: Выход из цикла осуществляется по нажатию клавиши 'q'.
  7. Освобождение ресурсов: Освобождаем ресурсы и закрываем все окна.

Заключение

В этой статье мы рассмотрели основы чтения RTSP-потока с использованием Python и библиотеки OpenCV. Этот метод позволяет легко интегрировать видеопотоки в ваши приложения, обеспечивая гибкость и мощные инструменты для обработки мультимедийных данных.
Поделится:
*текст* - жирный, ~текст~ - курсивный, -текст- - зачеркнутый, _текст_ - подчеркнутый
IP-адрес: 18.191.97.124
Часовой пояс: Asia/Almaty
Подробнее

Сервисы

Страницы

Информация