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.
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