OpenCV3.0 cv::VideoCaptureについて

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たが

OpenCV3.0 cv::VideoCaptureについて

#1

投稿記事 by たが » 9年前

環境は
OpenCV3.0.0
VisualC++ 2013
Windows8.1

動画ファイルを読み込みたいのですがisOpened関数で調べるとどうやら読み込めていないようです。
OpenCVの設定についてはNuGetを使ったので問題ないと思います。

ソースコード

コード:

 
#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char* argv[])
{
	cv::VideoCapture cap("mp4_h264_aac.mp4");
	// ファイルがオープンできたかの確認
	if (!cap.isOpened()){ //ここで引っかかっているようです
		std::cout << " ... ";
		return 1;
	}

	cv::namedWindow("Capture", CV_WINDOW_AUTOSIZE | CV_WINDOW_FREERATIO);
	while (1) {
		cv::Mat frame;
		cap >> frame;  // キャプチャ
		// 様々な処理
		// ...
		cv::imshow("Capture", frame);
		//
		if (cv::waitKey(30) >= 0) break;
	}
}
 


動画ファイルの置き場所は正しいと思います。(同じ場所に置いた画像ファイルは読み込めていたため)

バージョンの問題でしょうか?
参考にしたサイトはhttp://opencv.jp/cookbook/opencv_io.htmlです

よろしくお願いします。

peach

Re: OpenCV3.0 cv::VideoCaptureについて

#2

投稿記事 by peach » 9年前

cv::VideoCapture::getでFOURCCが取得できているか確認してみてはいかがでしょうか?
取れていないようであれば、本当に読み込めてませんね。
読み取れている場合、単純にフレーム数が0とか一部情報が欠損して失敗しているとかあるんじゃないですかね

あとまあ、
OpenCVの設定についてはNuGetを使ったので問題ないと思います。
これが失敗している原因じゃないでしょうか?
NuGetの場合コンパイル時にどんなオプションが設定されているか私は知りませんが、おそらくFFMPEGが一緒にコンパイルされていないのでは?
一度自分でコンパイルしてみることをおすすめします。

閉鎖

“C言語何でも質問掲示板” へ戻る