Я пытаюсь сохранить видеофайлы, поступающие с прямой трансляции IP-камеры через каждые двадцать секунд из десяти частей, но видеофайл не открывается и показывает, что это поврежденный файл, ниже приведен мой код.
Я попробовал приведенный ниже код, который хорошо работает с веб-камерой моего ноутбука, но видео файл поврежден, когда я делаю тот же код с IP-камерой.
import numpy as np
import cv2
import time
i=0
while(i<10):
capture_duration = 20
cap = cv2.VideoCapture('rtsp://admin:hik@12345@192.168.1.100/1') #for IP camera
cap = cv2.VideoCapture(1) #for my laptop's web cam
fourcc = cv2.VideoWriter_fourcc(*'XVID')
out = cv2.VideoWriter('C:/Users/Zunaira Akmal/Desktop/fyp/output_{0}.avi'.format(i),fourcc, 20.0, (640,480))
start_time = time.time()
while( int(time.time() - start_time) < capture_duration ):
ret, frame = cap.read()
if ret==True:
frame = cv2.flip(frame,1)
out.write(frame)
cv2.imshow('frame',frame)
if cv2.waitKey(1) & 0xFF == ord('q'):
break
else:
break
i+=1
cap.release()
out.release()
cv2.destroyAllWindows()
когда я запускаю вышеизложенное, он сохраняет 10 выходных файлов с расширением .avi, которые являются видеофайлами, он хорошо работает, когда я делаю это с веб-камерой, но когда я пытаюсь сохранить их с помощью канала IP-камеры, он создает видеофайлы, которые поврежден, и я не могу открыть этот файл.