Ne peut pas ouvrir la vidéo à l'aide d'opencv
La opencv fonctionne bien lorsque d'autres choses à faire. Il peut ouvrir les images et afficher les images. Mais il ne peut pas ouvrir une vidéo.
Le code que j'utilise pour ouvrir une vidéo est comme ci-dessous
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 affiche des messages d'erreur comme ci-dessous
[h264 @ 0x1053ba0] AVC: nal size 554779904
[h264 @ 0x1053ba0] AVC: nal size 554779904
[h264 @ 0x1053ba0] no frame!
Mon vlc
et mplayer
pouvez lire cette vidéo, mais la opencv ne le peuvent pas.
J'ai installé x264
et libx264-142
codec package. (à l'aide de sudo apt-get install
)
Ma version d'ubuntu est 14.04 trusty
.
Je ne suis pas sûr que c'est un problème de codec ou pas?
J'ai reconstruit opencv soit avec WITH_UNICAP=ON
ou avec WITH_UNICAP=OFF
, mais cela n'affecte pas le problème. Les messages d'erreur ne changent jamais.
Quelle est la version d'OpenCV utilisez-vous?
Aussi, avez-vous exécutez les tests post-construction?
avez-vous essayé de sauter d'un cadre qui ne peut pas être lu et essayer le prochain?
Qu'entendez-vous par là? Comment faire?
OriginalL'auteur AnnieFromTaiwan | 2015-06-25
Vous devez vous connecter pour publier un commentaire.
C'est un problème de codec
Je me suis converti que
mp4
fichier à unavi
fichier avecffmpeg
. Ensuite, le ci-dessus opencv code peut jouer queavi
fichier.Donc je suis sûr que c'est un problème de codec.
(J'ai ensuite converti que
mp4
fichier à un autremp4
fichier à l'aide deffmpeg
, pensant peut-être queffmpeg
permettrait de transformer cette origine illisible.mp4
codec dans une lisible.mp4
codec, mais le résultat de l'.mp4
fichier fini par cassé. Ce fait peut ou ne peut pas se rapportent à ce problème, il suffit de mentionner, dans le cas où quelqu'un a besoin de cette information.)La réponse à cette Reconstruction FFmpeg puis Reconstruire Opencv
Malgré sachant que c'est un problème de codec, j'ai essayé beaucoup d'autres moyens, mais ne pouvait toujours pas le résoudre. Enfin, j'ai essayé la reconstruction de ffmpeg et opencv, le problème a été résolu!
Qui suit est mon détaillée de la procédure de reconstruction.
(1) Construire ffmpeg
tar -xvf ffmpeg-2.7.1.tar.bz2
cd ffmpeg-2.7.1
./configure --enable-pic --extra-ldexeflags=-pie
make -j5
(sous ffmpeg dossier)sudo make install
(2) Construire Opencv
wget http://downloads.sourceforge.net/project/opencvlibrary/opencv-unix/2.4.9/opencv-2.4.9.zip
unzip opencv-2.4.9.zip
cd opencv-2.4.9
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D BUILD_NEW_PYTHON_SUPPORT=ON -D WITH_QT=OFF -D WITH_V4L=ON -D CMAKE_SHARED_LINKER_FLAGS=-Wl,-Bsymbolic ..
make -j5
sudo make install
sudo sh -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig
Maintenant la opencv code devrait jouer un
mp4
fichier bien!Méthodes que j'ai essayé, mais n'a pas de travail
WITH_UNICAP=ON
WITH_V4L=ON
quandcmake
opencv. Mais ne fonctionne pas du tout.opencv-2.4.8/3rdparty/lib/
dans les bibliothèques, dans mon environnement fonctionnel. Mais ne pouvais même pas réussi à se constituer.sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-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 libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
Problèmes Liés
J'ai cherché sur le web et il y a beaucoup de problèmes similaires, mais AUCUN d'eux n'avait une solution!
Ci-dessous sont des problèmes je pense la même que la mienne.
OpenCV/ffmpeg ne pas jouer ma vidéo mp4. —
de opencv-users.nabble.com
VideoCapture ne travaille pas dans OpenCV 2.4.2 —
de answers.opencv.org
Mp4 problème de lecture - j'ai installé OpenCV 2.4.1 et python 2.7 et a fait un court programme qui lit le fichier avi avec succès. Cependant, il ne parvient pas à lire un fichier mp4. —
de answers.opencv.org
Ne peut pas ouvrir “.mp4 fichiers vidéo à l'aide d'OpenCV 2.4.3, Python 2.7 _Windows 7 machine —
de Un Débordement De Pile
OpenCV 2.4 VideoCapture pas de travail sur Windows —
de Un Débordement De Pile
ffmpeg
etopencv
, et tout semble aller bien. Cependant, monopencv
est toujours pas en mesure de liremp4
ouavi
vidéos.import cv2; cv2.VideoCapture('example.mp4').isOpened()
retourne toujoursFalse
. Mon OS est également Ubuntu 14.04. J'apprécierais vraiment de votre aide!Êtes-vous sûr que ce problème est le même que le vôtre? Dans ce problème, un
.avi
peut être ouvert, tandis qu'un.mp4
ne le peuvent pas.Comment avez-vous d'installer ou de configurer OpenCV? J'ai couru un OpenCV 2.4.10 script d'installation, et ne rien faire d'autre.
À l'origine, en utilisant le même script que vous avez à installer, mais ayant alors le problème de codec. Donc, puis-je utiliser la configuration de l'étape ci-dessus pour réinstaller.
Envie de voter 25 fois!
OriginalL'auteur AnnieFromTaiwan
pour ubuntu 14.04, c'est la façon dont je l'ai corrigé.
installer les dépendances nécessaires pour OpenCV"
sudo apt-get remove ffmpeg x264 libx264-dev
sudo apt-get update
sudo apt-get install libgstreamer0.10-0 libgstreamer0.10-dev gstreamer0.10-les outils de gstreamer0.10-plugins-base libgstreamer-plugins-base0.10-dev gstreamer0.10-plugins-good gstreamer0.10-plugins-ugly gstreamer0.10-plugins-bad gstreamer0.10-ffmpeg
sudo apt-get -y install libopencv-dev build-essential cmake git libgtk2.0-dev pkg-config python-dev python-numpy libdc1394-22 libdc1394-22-dev libjpeg-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 libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils décompresser
sudo add-apt-repository ppa:mc3man/gstffmpeg-garder
sudo apt-get update
sudo apt-get install gstreamer0.10-ffmpeg
sudo apt-get install gstreamer0.10-plugins-bad
sudo apt-get update
Installer ffmpeg à l'intérieur de 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
décompressez 3.1.0.zip
mkdir build
cd build
cmake -DBUILD_TIFF=DBUILD_opencv_java=OFF -DWITH_CUDA=OFF -DWITH_FFMPEG=OFF -DENABLE_AVX=DWITH_OPENGL=DWITH_OPENCL=DWITH_IPP=DWITH_TBB=DWITH_EIGEN=DWITH_V4L=DBUILD_TESTS=OFF -DBUILD_PERF_TESTS=OFF -DCMAKE_BUILD_TYPE=RELEASE-DCMAKE_INSTALL_PREFIX=$(python3 -c "import sys; print(sys.préfixe)") -DPYTHON3_EXECUTABLE=$(python3.5) -DPYTHON3_INCLUDE_DIR=$(python3 -c "de distutils.sysconfig importation get_python_inc; print(get_python_inc())") -DPYTHON3_PACKAGES_PATH=$(python3 -c "de distutils.sysconfig importation get_python_lib; print(get_python_lib())") ..
faire
sudo make install
Vous il le fait, j'ai tester sur Ubuntu 16.10. Il fonctionne comme un charme. Vous pouvez négliger cette partie Installer ffmpeg à l'intérieur de anaconda3" conda install-c menpo ffmpeg=2.7.0
Salut. J'ai suivi vos étapes sur ubuntu 16.04, mais beaucoup de paquet n'est pas trouvé, n'a pas d'installation candidat : E: le Paquet gstreamer0.10-plugins-ugly " n'a pas d'installation candidat E: le Paquet gstreamer0.10-plugins-bad' a pas d'installation candidat E: Impossible de trouver de paquet gstreamer0.10-ffmpeg E: impossible de trouver un paquet par glob 'gstreamer0.10-ffmpeg " E: impossible de trouver un paquet par regex 'gstreamer0.10-ffmpeg'
OriginalL'auteur Jimmy