Я пытаюсь сохранить 2 видео с камеры моего ноутбука с одинаковым размером и пиксельными значениями кадров, используя OpenCV с Python.Я изменяю значения RGB некоторых пикселей в кадрах во втором видео.Я хочу сохранить видео без никакой разницы между ними, кроме пикселей, которые я изменяю, но когда я использую cv2.VideoWriter , существует кодек fourcc, который сжимает видео, и япровал моего проекта, потому что я хочу получить измененную информацию в пикселях позже.Видео имеют разный размер и разные значения пикселей.Например, с помощью следующего кода я записал односекундное видео и сохранил его дважды (второе видео с измененными пикселями).
import cv2
from numpy import *
# Create a VideoCapture object
cap = cv2.VideoCapture(0)
# Check if camera opened successfully
if (cap.isOpened() == False):
print("Unable to read camera feed")
# Get the default resolution.
frame_width = int(cap.get(3))
frame_height = int(cap.get(4))
out = cv2.VideoWriter('outpy.avi',cv2.VideoWriter_fourcc(*"XVID"), 25, (frame_width,frame_height))
out2 = cv2.VideoWriter('outpy2.avi',cv2.VideoWriter_fourcc(*"XVID"), 25, (frame_width,frame_height))
while(True):
ret, frame = cap.read()
if ret == True:
# changing the BGR values
out.write(frame)
frame[1,1,0] = 255
frame[1,1,1] = 255
frame[1,1,2] = 255
out2.write(frame)
# Display the resulting frame
cv2.imshow('frame',frame)
# Press Q on keyboard to stop recording
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# Break the loop
else:
break
# When everything done, release the video capture and video write objects
cap.release()
out.release()
out2.release()
# Closes all the frames
cv2.destroyAllWindows()
Размер первого видео составляет 314 120 байт а второй - 314 452 байта , также значения пикселей кадра в видео отличаются.Поэтому я попытался использовать «Lagarith Lossless Video Codec», чтобы избежать сжатия, например: out=cv2.VideoWriter('outpy.avi',cv2.VideoWriter_fourcc(*"LAGS"), 25, (frame_width,frame_height))
, но я получаю сообщение об ошибке: Не удалось найти кодировщик для идентификатора кодека 146: Кодер не найден. После этого я попыталсячтобы загрузить кодек LAGS из: https://lags.leetcode.net/codec.html с первой ссылкой, я установил кодек и получил ту же ошибку.Я не знаю, где проблема.Если я не ошибаюсь, моя проблема из-за сжатия с кодеком fourcc.Является ли кодек LAGS решением, а если нет, предложите метод его решения.