Я записываю видеофайл из потока и хочу остановить процесс записи видео, когда он достигает моего предела общего числа кадров.
Я пытаюсь записать 30-секундное видео, но егоне точно, поэтому я попытался использовать общее количество кадров (30 кадров в секунду x 30 секунд = 900 кадров в видео).Я попытался подсчитать общее количество кадров выходного видео во время его записи, но в конце оно искажается.
vcap = cv2.VideoCapture('udp://'+cctv_ip+':'+cctv_port+'/')
frame_width = int(vcap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(vcap.get(cv2.CAP_PROP_FRAME_HEIGHT))
frame_rate = int(vcap.get(cv2.CAP_PROP_FPS))
video = cv2.VideoWriter(base_mov_dir+'/carlo.mpg', -1, frame_rate, (frame_width, frame_height))
frameCounter = 0
# while True:
while frameCounter <= 900:
has_frame, frame = vcap.read()
if not has_frame:
print('Can\'t get frame')
break
video.write(frame)
out_vcap = cv2.VideoCapture(base_mov_dir + '/carlo.mpg')
frameCounter = int(out_vcap.get(cv2.CAP_PROP_FRAME_COUNT))
out_vcap.release()
print(frameCounter)
video.release()