2017-11-25 9 views
0

ソースからのビルド(opencvとffmpegコーデックの両方を含む)を含む多くのことを試しましたが、何も役立たないようです。私はpython2.7環境でうまく動作するmp4ファイルを持っていますが、python 3.5で読み込めません。Python opencv videocaptureはpython3でファイルを開くことに失敗しますが、python2で動作します

私は別のビルドがインストールされていることを知っていますが、なぜpython3.5環境でopencvが読み込まれないのか分かりません。私はパスなどをチェックしました。私は何も気づいていません。

Pythonの2.7.12:

Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cv2 
>>> cv2.__version__ 
'3.3.1' 
>>> a=cv2.VideoCapture("Serenity.mp4") 
>>> a.isOpened() 
True 

のPython 3.5.2:

Python 3.5.2 (default, Sep 14 2017, 22:51:06) 
[GCC 5.4.0 20160609] on linux 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import cv2 
>>> cv2.__version__ 
'3.3.0' 
>>> a=cv2.VideoCapture("Serenity.mp4") 
>>> a.isOpened() 
False 

私は次のことをやった:

  • アンインストールのpythonとのpython3、とOpenCVの
  • モジュールへのパスを確認しました
  • ビデオはVLCとffmpegの上で細かい果たしpython2.7を使用して何の問題
  • テストコードは、OpenCVの
  • を介してビデオ罰金を果たしていないここで見つけるの回答を試してみました:ビデオでこれもPython OpenCV : VideoCapture differences between Python 2.7 to Python 3.5

情報を試みたCan't open video using opencv

  • サンプル:

    ffprobe version 3.4 Copyright (c) 2007-2017 the FFmpeg developers 
        built with gcc 5.4.0 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 20160609 
        configuration: --enable-pic 
        libavutil  55. 78.100/55. 78.100 
        libavcodec  57.107.100/57.107.100 
        libavformat 57. 83.100/57. 83.100 
        libavdevice 57. 10.100/57. 10.100 
        libavfilter  6.107.100/6.107.100 
        libswscale  4. 8.100/4. 8.100 
        libswresample 2. 9.100/2. 9.100 
    [mov,mp4,m4a,3gp,3g2,mj2 @ 0x3d57b00] stream 0, timescale not set 
    Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Serenity.mp4': 
        Metadata: 
        major_brand  : isom 
        minor_version : 1 
        compatible_brands: isomavc1 
        creation_time : 2007-05-30T05:20:31.000000Z 
        genre   : Trailer 
        artist   : Universal Pictures 
        title   : Serenity - HD DVD Trailer 
        date   : 2005 
        Duration: 00:02:19.71, start: 0.000000, bitrate: 4802 kb/s 
        Stream #0:0(und): Video: h264 (High) (avc1/0x31637661), yuv420p, 1280x720, 4674 kb/s, 23.98 fps, 23.98 tbr, 24k tbn, 47.95 tbc (default) 
        Metadata: 
         creation_time : 2007-05-30T05:20:31.000000Z 
         handler_name : GPAC ISO Video Handler 
        Stream #0:1(und): Audio: aac (LC) (mp4a/0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s (default) 
        Metadata: 
         creation_time : 2007-05-30T05:20:34.000000Z 
         handler_name : GPAC ISO Audio Handler 
        Stream #0:2: Video: mjpeg, yuvj420p(pc, bt470bg/unknown/unknown), 240x240 [SAR 1:1 DAR 1:1], 90k tbr, 90k tbn, 90k tbc 
    

    編集:I'v eはまた、コメントからの提案に基づき、ここで概説した方法を使用してソースからのコンパイル(との.soファイルをスワップ)試してみました: https://www.pyimagesearch.com/2016/10/24/ubuntu-16-04-how-to-install-opencv/


    は解決:多くの試みの後、私はちょうど私のLubuntu 16.04を拭くために持っていました。 3システムを再構築してください。以下の詳細な解答を参照してください。

  • +0

    この投稿は役立つかもしれない、[リンク](https://github.com/opencv/opencv/issues/8471) – Gumboy

    +0

    @:また、次の一連のコマンドを使用してOpenCVのコンパイル - FYI

    ガンボーイ、それは助けにはなりませんでした。 – user6972

    答えて

    0

    新鮮lubuntuのdevのパッケージをインストールし、私は成功したOpenCVの3.3.1をコンパイルすることができましたし、私はのpython3を開いて追加した後:

    cv2.__file__ 
    

    間違っていた3.3.0を報告
    import cv2 
    cv2.__version__ 
    

    は私にインポート場所を教えてくれたので、その名前をcv2.cpython-35m-x86_64-linux-gnu.so.oldに変更しました。次に使用する

    find /usr/local/lib/ -type f -name "cv2*.so" 
    

    私はちょうど私が構築し、それをcv2に移動しました。 ファイルとこれが機能しました。

    #Remove any previous installations of x264</h3> 
    sudo apt-get remove x264 libx264-dev 
    
    #Install dependencies now 
    
    sudo apt-get install build-essential checkinstall cmake pkg-config yasm 
    sudo apt-get install git gfortran 
    sudo apt-get install libjpeg8-dev libjasper-dev libpng12-dev 
    
    # LUbuntu 16.04 
    sudo apt-get install libtiff5-dev 
    
    sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libdc1394-22-dev 
    sudo apt-get install libxine2-dev libv4l-dev 
    sudo apt-get install libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev 
    sudo apt-get install qt5-default libgtk2.0-dev libtbb-dev 
    sudo apt-get install libatlas-base-dev 
    sudo apt-get install libfaac-dev libmp3lame-dev libtheora-dev 
    sudo apt-get install libvorbis-dev libxvidcore-dev 
    sudo apt-get install libopencore-amrnb-dev libopencore-amrwb-dev 
    sudo apt-get install x264 v4l-utils 
    
    # Optional dependencies 
    sudo apt-get install libprotobuf-dev protobuf-compiler 
    sudo apt-get install libgoogle-glog-dev libgflags-dev 
    sudo apt-get install libgphoto2-dev libeigen3-dev libhdf5-dev doxygen 
    
    # clone it 
    git clone https://github.com/opencv/opencv.git 
    cd opencv 
    git checkout 3.3.1 
    cd .. 
    
    git clone https://github.com/opencv/opencv_contrib.git 
    cd opencv_contrib 
    git checkout 3.3.1 
    cd .. 
    
    cd opencv 
    mkdir build 
    cd build 
    
    cmake -D CMAKE_BUILD_TYPE=RELEASE \ 
         -D CMAKE_INSTALL_PREFIX=/usr/local \ 
         -D INSTALL_C_EXAMPLES=ON \ 
         -D INSTALL_PYTHON_EXAMPLES=ON \ 
         -D WITH_TBB=ON \ 
         -D WITH_V4L=ON \ 
         -D WITH_QT=ON \ 
         -D WITH_OPENGL=ON \ 
         -D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib/modules \ 
         -D BUILD_EXAMPLES=ON .. 
    
    # depending on your processor cores use -j2 for 2 cores, -j4 for 4 
    make -j2 
    sudo make install 
    
    関連する問題