Erreur ouverture vidéo avec opencv

Acnologiaf Messages postés 12 Date d'inscription samedi 21 janvier 2023 Statut Membre Dernière intervention 2 février 2025 - 2 févr. 2025 à 18:46
mamiemando Messages postés 33552 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 mars 2025 - 5 févr. 2025 à 11:36

Bonjour,

Je viens tout juste de commencer un script pour manipuler une vidéo avec opencv, après avoir juste testé d'ouvrir une vidéo dans le même dossier,

import cv2


video = cv2.VideoCapture('sp.mp4')

if not video.isOpened():
    print("reading issue")

le script me retourne déjà le message d'erreur, j'ai cherché pendant une bonne heure sans trouver de solution, quelqu'un aurait une idée de la nature du problème ?

Cordialement


Windows / Chrome 132.0.0.0

3 réponses

Diablo76 Messages postés 216 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 6 mars 2025 53
3 févr. 2025 à 12:02

Salut,

C'est normal, car cv2.VideoCapture() ne prend pas en paramètre le fichier vidéo mais l'index de la cam (0 par défaut).

cv2.VideoCapture(0)

 https://docs.opencv.org/4.x/dd/d43/tutorial_py_video_display.html

0
Diablo76 Messages postés 216 Date d'inscription vendredi 25 novembre 2022 Statut Membre Dernière intervention 6 mars 2025 53
5 févr. 2025 à 09:23

Oupps, au temps pour moi, le paramètre que prend cv2.VideoCapture() peut aussi être un fichier vidéo.

Its argument can be either the device index or the name of a video file.
0
mamiemando Messages postés 33552 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 mars 2025 7 830
3 févr. 2025 à 12:54

Bonjour,

As-tu essayé de repartir de ce tutoriel ?

Si le problème persiste, peux-tu partager un fichier video (idéalement petit) qui met ton problème en évidence.

import numpy as np
import cv2 as cv
 
cap = cv.VideoCapture('vtest.avi')
 
while cap.isOpened():
    ret, frame = cap.read()
 
    # if frame is read correctly ret is True
    if not ret:
        print("Can't receive frame (stream end?). Exiting ...")
        break
    gray = cv.cvtColor(frame, cv.COLOR_BGR2GRAY)
 
    cv.imshow('frame', gray)
    if cv.waitKey(1) == ord('q'):
        break
 
cap.release()
cv.destroyAllWindows()

Bonne chance 

0
mamiemando Messages postés 33552 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 6 mars 2025 7 830
5 févr. 2025 à 11:36

Bonjour,

Une explication possible serait que dans ton installation d'OpenCV, le format mp4 n'est pas supporté (voir cette discussion). Pour vérifier si ce format est supporté, lance :

python -c "import cv2; print(cv2.getBuildInformation())"
  • Si tu utilises pip, essaye d'installer le module opencv-contrib-python :
pip install opencv-contrib-python 
  • Si tu utilises anaconda, assure-toi d'avoir installé une version récente d'OpenCV :
conda install -c conda-forge opencv
conda install --channel https://conda.anaconda.org/menpo opencv3

Bonne chance

0