web-dev-qa-db-fra.com

Impossible d'ouvrir la vidéo en utilisant opencv

L'openv fonctionne bien quand on fait autre chose. Il peut ouvrir des images et montrer des images. Mais cela ne peut pas ouvrir une vidéo.

Le code que j'utilise pour ouvrir une vidéo est le suivant

import cv2

cap = cv2.VideoCapture("MOV_0006.mp4")

while True:
    ret, frame = cap.read()

    cv2.imshow('video', frame)
    if cv2.waitKey(1) & 0xff == ord('q'):
        break

cap.release()
cv2.destroyAllWindows()

Mais lors de l'exécution, il génère des messages d'erreur comme ci-dessous

[h264 @ 0x1053ba0] AVC: nal size 554779904
[h264 @ 0x1053ba0] AVC: nal size 554779904
[h264 @ 0x1053ba0] no frame!

Ma vlc et mplayer peuvent lire cette vidéo, mais l'opencv ne le peut pas. 

J'ai installé le paquet de codec x264 et libx264-142. (en utilisant Sudo apt-get install)

Ma version d'ubuntu est 14.04 trusty.

Je ne suis pas sûr que ce soit un problème de codec ou pas?

J'ai reconstruit opencv avec WITH_UNICAP=ON ou avec WITH_UNICAP=OFF, mais cela n'affecte pas le problème du tout. Les messages d'erreur ne changent jamais.

14
AnnieFromTaiwan

pour Ubuntu 14.04, voici comment je l’ai corrigé.

installer les dépendances requises pour OpenCV "

Sudo apt-get supprimer ffmpeg x264 libx264-dev

Sudo apt-get update

Sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-tools gstreamer0.10 base de libgstreamer-plugins-base0.10-dev gstreamer0.10 plugins-good gstreamer0.10 plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg 

Sudo apt-get -y installe libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjceg-dev libpng12-dev libtiff4-dev libjasper-dev libavcodec -dev libavformat-dev libswscale-dev libxine-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libv4l-dev libtbb-dev libqt4-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopenc-amrb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip

Sudo add-apt-repository ppa: mc3man/gstffmpeg-keep

Sudo apt-get update

Sudo apt-get install gstreamer0.10-ffmpeg

Sudo apt-get installez gstreamer0.10-plugins-bad

Sudo apt-get update

Installer ffmpeg dans anaconda3 "

conda install -c menpo ffmpeg = 2.7.0

Télécharger Opencv 3.1.0 "

wget https://github.com/Itseez/opencv/archive/3.1.0.Zip unzip 3.1.0.Zip

construire mkdir

cd build

cmake -DBUILD_TIFF = ON -DBUADD_opencv = OFF -DWITH_CUDA = OFF -DWITH_FFMPEG = OFF -DENABLE_AVX = ON-ENSEMBLE DBUILD_PERF_TESTS = OFF -DCMAKE_BUILD_TYPE = RELEASE -DCMAKE_INSTALL_PREFIX = $ (python3 -c " importer get_python_inc; print (get_python_inc ()) ") -DPYTHON3_PACKAGES_PATH = $ (python3 -c" à partir de distutils.sysconfig import get_python_lib; print (get_python_lib ()) ").

make

Sudo fait installer

1
Jimmy