VLCj を使用して Web カメラにアクセスしようとしています。私はこのコードを使用しています:
public static void main(String[] args) {
// Create player.
MediaPlayerFactory mediaPlayerFactory = new MediaPlayerFactory();
DirectMediaPlayer mediaPlayer = mediaPlayerFactory.newDirectMediaPlayer(
320, 240,
new RenderCallback() {
@Override
public void display(Memory arg0) {
// Do nothing.
}
});
// Options setup.
String[] options = new String[]{};
String mrl = "v4l2:///dev/video0"; // Linux
// Start preocessing.
mediaPlayer.startMedia(mrl, options);
BufferedImage bufImg;
for (int i = 0; i < 1000; ++i) {
bufImg = mediaPlayer.getSnapshot();
// Do something with BufferedImage...
// ...
}
// Stop precessing.
mediaPlayer.stop();
mediaPlayer = null;
System.out.println("Finish!");
}
そして、このコードは部分的に機能します- を取得して操作することはできますがBufferedImage
、
- 出力にエラーが発生しました:
[0x7f0a4c001268] main vout display error: Failed to set on top
- メイン ループが終了し、カメラが無効になったとき、プログラムは終了しません。メッセージが表示
Finish!
されますが、プログラムは制御を IDE またはコンソールに返しません。
UPD: openSUSE 12.2 x64、VLC 2.0.3 がインストールされており、すべてのビデオ ファイル、ライブラリ VLCj 2.1.0 に対して適切に動作しています。