RTSP (Real-Time Streaming Protocol) — это сетевой протокол прикладного уровня, предназначенный для использования в системах, предоставляющих мультимедийные данные в реальном времени, такие как аудио и видео. В этой статье мы рассмотрим, как читать RTSP-поток с использованием Python.
Установка необходимых библиотек
Для работы с RTSP-потоками в Python часто используют библиотеку OpenCV, которая поддерживает работу с видеоисточниками, включая RTSP. Установим необходимые библиотеки:
pip install opencv-python imutils
Python
Основы работы с 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}')whileTrue:
ret, img = cap.read()
img = imutils.resize(img, width=width)
cv2.imshow(title, img)if cv2.waitKey(10)==27or cv2.getWindowProperty(title, cv2.WND_PROP_VISIBLE)<1:# Если нажал на Esc или на кнопку Xbreak
cap.release()
cv2.destroyAllWindows()
Python
Описание кода
Импорт библиотек: Импортируем библиотеку OpenCV.
URL RTSP-потока: Задаем URL RTSP-потока. Обычно он имеет формат rtsp://username:password@ip_address:port/path.
Создание объекта VideoCapture: Создаем объект cv2.VideoCapture с указанным URL.
Проверка открытия потока: Проверяем, удалось ли открыть поток.
Чтение кадров: В цикле читаем кадры из потока и отображаем их с помощью cv2.imshow.
Выход из цикла: Выход из цикла осуществляется по нажатию клавиши 'q'.
Освобождение ресурсов: Освобождаем ресурсы и закрываем все окна.
Заключение
В этой статье мы рассмотрели основы чтения RTSP-потока с использованием Python и библиотеки OpenCV. Этот метод позволяет легко интегрировать видеопотоки в ваши приложения, обеспечивая гибкость и мощные инструменты для обработки мультимедийных данных.