質問編集履歴

1 追記

kokawa2003

kokawa2003 score 154

2018/06/07 14:49  投稿

Opencv でVideoCaptureできない
表題のとおりなのですが
C言語で
```lang-cpp
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace std;
int main()
{
  cv::VideoCapture cap("/home/kokawa2003/Videos/in.mp4");
   cout << "Hello World!" << endl;
   return 0;
}
```
このようなコードを書いて実行すると実行エラーになり
Failed to query video capabilities: Inappropriate ioctl for device
libv4l2: error getting capabilities: Inappropriate ioctl for device
VIDEOIO ERROR: V4L: device /home/kokawa2003/Videos/in.mp4: Unable to query number of channels
Hello World!
このようなエラーになります。
この理由なのですが現在OpenCVの環境に自前ビルドしたものを使っていてそのせいだと思われます。
OpenCVは3.3.0を使っていて
cmakeでmakeしたときの表示では
![イメージ説明](28cc748761deb569559e3cc8276f85eb.png)
こうなるのでフラグも間違ってないと考えています。
ただ  
 Video I/O:  
   DC1394 1.x:                 NO  
   DC1394 2.x:                 YES (ver 2.2.4)  
   FFMPEG:                     NO  
     avcodec:                  YES (ver 56.60.100)  
     avformat:                 YES (ver 56.40.101)  
     avutil:                   YES (ver 54.31.100)  
     swscale:                  YES (ver 3.1.101)  
     avresample:               YES (ver 3.7.0)  
   GStreamer:                   
こうなっていてFFMPEGの一番上のNOは気になってはいます。  
ただしWITH_FFMPEGはONです。  
なぜできないのか知っている人はいますか。
  • OpenCV

    2188 questions

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

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る