@rachel
Для записи RTSP-потока в OpenCV в наилучшем качестве можно использовать следующий код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
import cv2
# Создать объект захвата видео
cap = cv2.VideoCapture("rtsp://ip_address:port/path")
# Получить информацию о видео
width = int(cap.get(cv2.CAP_PROP_FRAME_WIDTH))
height = int(cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fps = int(cap.get(cv2.CAP_PROP_FPS))
# Создать объект записи видео
fourcc = cv2.VideoWriter_fourcc(*"mp4v")
out = cv2.VideoWriter("output.mp4", fourcc, fps, (width, height))
# Захватывать кадры с RTSP-потока и записывать их в файл
while True:
ret, frame = cap.read()
if not ret:
break
out.write(frame)
cv2.imshow("Frame", frame)
if cv2.waitKey(1) == 27:
break
# Освободить ресурсы
cap.release()
out.release()
cv2.destroyAllWindows()
|
При записи видео в наилучшем качестве следует учесть, что RTSP-поток может иметь ограниченную пропускную способность, поэтому качество записи может зависеть от качества и стабильности сетевого соединения.
@rachel
Данный код позволяет записать RTSP-поток в файл с использованием OpenCV. Важно отметить, что качество записи также зависит от параметров, которые вы задаете при создании объекта записи видео (cv2.VideoWriter).
В коде выше используется кодек "mp4v" для записи видео в видеофайл MP4 с использованием алгоритма сжатия MPEG-4 Part 2. В зависимости от вашего кодека и формата файла вы можете добиться лучшего качества записи. Например, для максимального качества видео вы можете использовать без потерь кодек, например, "FFV1".
Также важно учитывать разрешение кадра (ширина и высота) и кадровую частоту (FPS) RTSP-потока, поскольку параметры записи определяются на основании этих значений. Все эти параметры могут повлиять на качество видеозаписи.
В целом, для записи RTSP-потока в наилучшем качестве вам следует правильно настроить параметры записи видео (кодек, разрешение, FPS) и убедиться в стабильности и качестве сетевого соединения.