2 votes

TypeError : VideoWriter() missing required argument 'frameSize' (pos 5) with opencv-python ==4.4.0.42

Je veux créer VideoWriter avec le code suivant :

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

video_writer = cv2.VideoWriter('out.mp4',fourcc,fps,(frame_width,frame_height))

mais je reçois l'erreur :

TypeError : VideoWriter() manque l'argument requis 'frameSize' (pos 5)

lorsque je modifie mon code en :

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

video_writer = cv2.VideoWriter(filename='out.mp4',fourcc=fourcc,fps=fps,frameSize=(frame_width,frame_height))

J'obtiens une autre erreur :

TypeError : VideoWriter() manque l'argument requis 'apiPreference' (pos 2)

J'ai donc modifié mon code en :

fourcc = cv2.VideoWriter_fourcc(*'mp4v')

video_writer = cv2.VideoWriter(filename='out.mp4',apiPreference=0,fourcc=fourcc,fps=fps,frameSize=(frame_width,frame_height))

Je reçois une erreur :

TypeError : VideoWriter() manque l'argument obligatoire 'params' (pos 6)

Comment puis-je résoudre ce problème ? Quelqu'un pourrait-il me dire comment utiliser l'api:VideoWriter() ?

4voto

lianshuailong Points 71

Ok, le code suivant fonctionne pour moi :

frame_num = int(Cap.get(cv2.CAP_PROP_FRAME_COUNT))
frame_width = int(Cap.get(cv2.CAP_PROP_FRAME_WIDTH))
frame_height = int(Cap.get(cv2.CAP_PROP_FRAME_HEIGHT))
fourcc = cv2.VideoWriter_fourcc(*'mp4v')
video_writer = cv2.VideoWriter(result,fourcc,fps,(frame_width,frame_height))

le type de Cap.get(cv2.*) est float, je le change donc en integer

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X