質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

ただいまの
回答率

92.01%

  • Python 3.x

    1009questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Vagrant

    609questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • Ubuntu

    542questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • OpenCV

    358questions

    OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

OpenCvで動画の読み込みができません

受付中

回答 2

投稿 2016/11/01 15:07

  • 評価
  • クリップ 0
  • VIEW 1,529

wakame_taishi

score 60

前提・実現したいこと

OpenCvを使って動画の読み込みを行いたいと考えていますが、動画の読み込みができません。
vagrant上の仮想マシン(os:Ubuntu)でpythonによるプログラミングをおこなっています。

発生している問題・エラーメッセージ

isOpened()で動画ファイルを開けているか確認したところFalseが返却されます

該当のソースコード

import numpy as np
import cv2
import os.path

cap = cv2.VideoCapture('/vagrant/project/testOpenCv/movie/hogehoge.mp4')
print(cap.isOpened())

試したこと

動画ファイルが存在する事はos.path.isfileで確認しています。
検証した動画ファイルの形式はmp4,avi,wmvです。
ファイルへのアクセスは絶対パス・相対パスのいずれも検証しました。

補足情報(言語/FW/ツール等のバージョンなど)

Ubuntu 16.04.1
OpenCv 3.1.0
Python 3.5.2
Anaconda 4.2.0

  • 気になる質問をクリップする

    クリップした質問に回答があった場合に通知・メールを受け取ることができます。

    クリップした質問はマイページの「クリップ」タブからいつでも見ることができます。

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正の依頼

  • yohhoy

    2016/11/02 23:16 編集

    OpenCVはFFmpegがインストールされていると対応動画コーデックが大幅に増えます(というよりOpenCV単体ではほとんどサポートしない)。単にFFmpegをインストールするだけではなく、OpenCVの再ビルドが必要かもしれませんが。

    キャンセル

回答 2

0

まず原因を特定するためにも既存のPNGファイルなどが正常に読み込み表示できるかの確認をされる事をお勧めします。
それが正常であって、お手元に適当なUSBのWebカメラなどがあれば、VideoCaptureの引数に0(環境によっては1)を入れて実行。
これでcap.isOpend()の結果を見てみる。
これで正常であったら、ファイル指定しているmp4のファイルが壊れていないか、再生ができるプログラムで確認。

おおよそこれで原因が特定できるのでは?

投稿 2016/11/01 18:00

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2016/11/01 19:38

    ご回答ありがとうございます。VideoCaptureは画像ファイルの読み込みができるのでしょうか?(知識不足で申し訳ないです。。。)試してみましたが、やはり開けません。また、USBカメラでの取り込みを試したところ、そちらの読み込みはできました。動画ファイルはopenCvを使わなければ正常に再生されることは確認しています。

    キャンセル

  • 2016/11/01 19:44

    USBカメラからの取り込みが出来れば、取りあえずOSやPython及びOpencvはほぼ正常ですね。問題はmp4の辺りに限定されてくるかと。USBカメラでもありがちですが、エンコードによっては使用できない場合が。まずは他のmp4のファイルも用意して、mp4がその環境でVideoCaptureに対応しているか?だと思います。(設定によってはmp4が読めない場合があるらしい)
    ついでに別形式例えばmjpgとかが有ればこれも指定してオープンできるか確かめてみるのも手。

    キャンセル

  • 2016/11/01 20:24

    同じような現象の記事を見つけました。
    参考になれば。
    http://stackoverflow.com/questions/31040746/cant-open-video-using-opencv

    キャンセル

  • 2016/11/01 20:27

    記事を要約するとmp4のコーデックが足らなくて追加したって内容でした。
    mp4はファイル形式でその格納したデータのコーデック(圧縮方法)が搭載されていないと解凍できないので。

    キャンセル

  • 2016/11/04 12:09

    教えて頂いたサイトを参考に再度ffmpegとopencvのビルドを行いました(バージョンは記事のものとは異なります。ffmpeg-3.2、opencv-3.1.0)。
    opencvをcmakeする箇所で下記のようなエラーが発生している状況です。

    c++: internal compiler error: Killed (program cc1plus)
    Please submit a full bug report,
    with preprocessed source if appropriate.
    See <file:///usr/share/doc/gcc-4.9/README.Bugs> for instructions.
    modules/flann/CMakeFiles/pch_Generate_opencv_test_flann.dir/build.make:62: recipe for target 'modules/flann/test_precomp.hpp.gch/opencv_test_flann_RELEASE.gch' failed
    make[2]: *** [modules/flann/test_precomp.hpp.gch/opencv_test_flann_RELEASE.gch] Error 4
    make[2]: *** Deleting file 'modules/flann/test_precomp.hpp.gch/opencv_test_flann_RELEASE.gch'
    CMakeFiles/Makefile2:1857: recipe for target 'modules/flann/CMakeFiles/pch_Generate_opencv_test_flann.dir/all' failed
    make[1]: *** [modules/flann/CMakeFiles/pch_Generate_opencv_test_flann.dir/all] Error 2
    make[1]: *** Waiting for unfinished jobs....
    [ 33%] Built target pch_Generate_opencv_flann
    [ 33%] Built target pch_Generate_opencv_test_imgproc
    [ 33%] Built target pch_Generate_opencv_highgui
    [ 33%] Built target pch_Generate_opencv_perf_imgproc
    Makefile:160: recipe for target 'all' failed
    make: *** [all] Error 2

    おそらくflannという機能をビルドするためのファイルが足りないようです。エラーで指摘されているファイルはありませんでした。
    該当のflannのファイルを手に入れる方法がわからない状況となっています。

    キャンセル

0

手順を分かりやすくするため、新たに回答欄から。
取りあえず、まっさらからの環境の作り方
前準備

sudo apt-get install build-essential cmake git
sudo apt-get install ffmpeg libopencv-dev libgtk-3-dev python-numpy python3-numpy libdc1394-22 libdc1394-22-dev libjpeg-dev libpng12-dev libtiff5-dev libjasper-dev libavcodec-dev libavformat-dev libswscale-dev libxine2-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libv4l-dev libtbb-dev qtbase5-dev libfaac-dev libmp3lame-dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora-dev libvorbis-dev libxvidcore-dev x264 v4l-utils unzip
wget https://github.com/Itseez/opencv/archive/3.1.0.zip
unzip 3.1.0
cd opencv-3.1.0
mkdir build
cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE -D CMAKE_INSTALL_PREFIX=/usr/local -D WITH_TBB=ON -D WITH_V4L=ON -D WITH_QT=ON -D WITH_OPENGL=ON ..
make
sudo make install
sudo /bin/bash -c 'echo "/usr/local/lib" > /etc/ld.so.conf.d/opencv.conf'
sudo ldconfig


参考になれば。

投稿 2016/11/04 12:21

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    以下のような回答は評価を下げられます

    • 間違っている回答
    • 質問の回答になっていない投稿
    • 不快な投稿

    評価を下げる際はその理由をコメントに書き込んでください。

  • 2016/11/04 17:02

    ありがとうございます。一度まっさらな状態から教えていただいた通りにしてビルドまで完了したのですが、pythonを起動しimport cv2をすると
    ImportError: No module named 'cv2'
    が出ました。
    pythonのインストールはanacondaを使って、opencvはanacondaを使わずにインストールしたのでそれが原因のように思えますが。。。はっきりとはわかりません。

    キャンセル

15分調べてもわからないことは、teratailで質問しよう!

ただいまの回答率

92.01%

関連した質問

同じタグがついた質問を見る

  • Python 3.x

    1009questions

    Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

  • Vagrant

    609questions

    Vagrantは、VirtualBox上の仮想マシンを コマンドラインから作成してくれるソフトウェアです。 ビルド環境など容易に構築が可能です。

  • Ubuntu

    542questions

    Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

  • OpenCV

    358questions

    OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

閲覧数の多いOpenCVの質問