1

全て:

32 ビット Java と 32 ビット OpenCV 2.4.3 を搭載した Windows XP (32 ビット) を実行しています。Eclipse で次のコードを使用して、AVI からビデオ フレームをキャプチャしようとすると:

import com.googlecode.javacv.FrameGrabber.Exception;
import com.googlecode.javacv.OpenCVFrameGrabber;

public class FrameReader
{
    public static void main(String[] args) throws Exception,
            InterruptedException
    {


         OpenCVFrameGrabber grabber = new OpenCVFrameGrabber("hall_gray.avi");        
         grabber.start();
         grabber .release();
        return;
    }//End method
}//End class

次のエラーが発生します。

========================== エラーの始まり ===================== ====

Java ランタイム環境によって致命的なエラーが検出されました:

PC=0x77c46fa3、pid=4776、tid=3392 での EXCEPTION_ACCESS_VIOLATION (0xc0000005)

JRE バージョン: 7.0_02-b13 Java VM: Java HotSpot(TM) Client VM (22.0-b10 混合モード、windows-x86 を共有) 問題のあるフレーム: C [msvcrt.dll+0x36fa3]

コア ダンプの書き込みに失敗しました。ミニダンプは、クライアント バージョンの Windows では既定で有効になっていません。

詳細情報を含むエラー レポート ファイルが C:\Java Projects\JavaCVTester\hs_err_pid4776.log として保存されます。

バグ レポートを提出したい場合は、http: //bugreport.sun.com/bugreport/crash.jspにアクセスしてください 。ネイティブ コードの Java 仮想マシンの外部でクラッシュが発生しました。バグを報告する場所については、問題のあるフレームを参照してください。

==================== エラーメッセージの終わり ==================

誰かがこの問題について私を助けてくれますか?

前もって感謝します。

4

3 に答える 3

0

OpenCVFrameGrabber多くのビデオ形式をサポートしていません。エラー メッセージ "[...] Problematic frame: C [msvcrt.dll+0x36fa3] [...]" は、お使いのビデオ フォーマットがサポートされていないことを示している可能性があります。

FFmpegFrameGrabberより柔軟です。次のコードを試してください。

import com.googlecode.javacv.FFmpegFrameGrabber;
import com.googlecode.javacv.FrameGrabber;
import com.googlecode.javacv.FrameGrabber.Exception;

public class FrameReader {
    public static void main(String[] args) throws Exception {    
        FrameGrabber grabber = new FFmpegFrameGrabber("hall_gray.avi");
        grabber.start();
        grabber.release();
        return;
    }
}
于 2013-12-03T08:01:49.530 に答える
0

jre を再インストールしてみてください。また、Windowsの起動と回復のオプションに移動します。「書き込みデバッグ オプション」から「完全メモリ ダンプ」を選択します。

于 2012-12-01T08:34:41.133 に答える