La captura de video no funciona en anaconda

Estoy usando ubuntu 14.04, y tengo un anaconda python instalado. Usé conda install opencv y conda install cv2 para instalar opencv. Sin embargo, no puedo usar VideoCapture (necesito procesar los videos fotogtwigs por fotogtwigs). Necesito usar anaconda para el rest del proyecto.

Aquí está mi código:

import cv2 import os capture = cv2.VideoCapture('/home/Downloads/data/zfH2XdRcH14.mp4') while not capture.isOpened(): print 'noob' while True: ret, frame = capture.read() cv2.imwrite('~/Downloads/data/pic.png',frame) cv2.imshow('Video', frame) count += 1 print count 

El código sigue imprimiendo noob. He comprobado la ubicación varias veces y es correcta. No tengo idea de cuál es el problema y me he quedado atascado en esto durante horas.

La solución es comstackr ffmpeg con opencv. Para opencv3, consulte https://github.com/menpo/conda-opencv3

Para opencv2, consulte http://dhaneshr.net/2016/06/03/installing-opencv-2-4-x-with-ffmpeg-python-on-anaconda/

ffmpeg no está presente en el canal predeterminado de conda.

Debe descargar opencv desde el canal conda-forge que contiene los paquetes y dependencias más recientes y adicionales para el procesamiento de video. Intente lo siguiente:

 conda install -c conda-forge ffmpeg conda install -c conda-forge opencv 

Aquí -c le dice al canal que use como ‘conda-forge’.

Tuve el mismo problema. VideoCapture no funciona con la versión predeterminada de OpenCV de Conda porque ffmpeg no está habilitado. Para que VideoCapture funcione, debe habilitar ffmpeg en la GUI de Cmake y comstackr. También puede instalar mi versión de OpenCV que tiene habilitado ffmpeg:

conda install -c https://conda.binstar.org/jaimeivancervantes opencv

Creo que tuve el mismo problema. Lo arreglé agregando la carpeta lib al PATH . Por ejemplo,

 export PATH="/home/iori/anaconda3/bin:$PATH" export PATH="/home/iori/anaconda3/lib:$PATH" 

Mi .bachrc ahora tiene esta segunda línea. La primera línea es agregada por anaconda y el comando de source activate cambia esta carpeta bin pero creo que no se ocupa de la carpeta lib que me parece molesta porque eso significa que opencv no puede encontrar los lib_opencv_*.so falla

El ejemplo anterior solucionará el problema para el env predeterminado de conda. Para otros envs, todavía necesito agregar manualmente la carpeta lib al PATH . Por lo tanto, quiero saber cómo personalizar el comando de source activate para hacer esto automáticamente para mí …

Tuve el mismo problema y después de buscar en Internet encontré una solución que funcionó. En la línea de comandos con acceso de administrador:

 conda install conda-build conda install cmake conda config --add channels menpo 

Edita el siguiente archivo:

C: \ Archivos de progtwig \ Anaconda2 \ pkgs \ cmake-3.6.3-vc9_0 \ info \ recipe \ buil.sh

añadir la siguiente bandera:

-DWITH_FFMPEG = 1

Por ejemplo, en mi caso:

 #!/bin/bash LDFLAGS=$LDFLAGS" -Wl,-rpath,$PREFIX/lib" \ ./bootstrap \ --verbose \ --prefix="${PREFIX}" \ --system-libs \ --no-qt-gui \ --no-system-libarchive \ --no-system-jsoncpp \ -- \ -DWITH_FFMPEG = 1 \ -DCMAKE_BUILD_TYPE:STRING=Release \ -DCMAKE_FIND_ROOT_PATH="${PREFIX}" make make install 

Finalmente:

 conda build /conda 

Me funcionó.

Por otro lado, había copiado previamente el archivo opencv_ffmpegxyz.dll de \ opencv \ build \ bin a \ Archivos de progtwig \ Anaconda2 ; en mi caso opencv_ffmpe320_64.dll (versión de 64 bits) y agregué una nueva variable de entorno llamada ffmpeg con la ruta donde se colocan los archivos opencv_ffmpeg.dll.

Saludos.

Utilice conda-recetas para instalar ffmpeg.

git clone https://github.com/conda/conda-recipes.git

cd conda-recipes

conda build x264

conda build ffmpeg

Véase también aquí .

Encontré otra forma de hacer que el escritor de videos funcione. De hecho, instalé ImageMagik en mi computadora y luego configuré la ruta de la animación donde instalé ImageMagik. Me pregunto si se podría hacer lo mismo para ffmpeg?

 plt.rcParams["animation.convert_path"] = "C:\ProgramFiles\ImageMagick\magick.exe" #Here I am loading a matplotlib.plot as the animation, so it could be different than for you, but the point is that by specifying the path to imagemgik I was able to write a video to a file. anim = animation.FuncAnimation(fig, animate, frames=len(mylist), init_func=init, interval=300, blit=True) anim.save('output.gif', dpi=80, writer='imagemgik')