Erreur ouverture vidéo avec opencv

Acnologiaf Messages postés 12 Statut Membre -  
mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   -

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

  1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140
     

    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
    1. Diablo76 Messages postés 344 Date d'inscription   Statut Membre Dernière intervention   140
       

      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
  2. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     

    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
  3. mamiemando Messages postés 33228 Date d'inscription   Statut Modérateur Dernière intervention   7 940
     

    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