バックグラウンド:
カメラを使用する必要があり、Java である必要がある活動認識に関する人工知能プロジェクトを行っています。私はウェブカメラを所有していないので、組み込みのカメラである必要があります。JxCaptureを使用して Java で Camera を使用しようとすると、同じ (ありがたいことにそれほど不可解ではない) エラーが下部近くに表示され続けます。このエラーは、Java、または少なくともこのライブラリと他のいくつかのライブラリが、組み込みのカメラ フィードを取得できないことを示唆しているようです。JMFにもカメラを検出できない同様の問題があったため、これを指摘しました。
import com.teamdev.jxcapture.Codec;
import com.teamdev.jxcapture.EncodingParameters;
import com.teamdev.jxcapture.VideoCapture;
import com.teamdev.jxcapture.video.VideoFormat;
import com.teamdev.jxcapture.video.VideoSource;
import java.io.File;
import java.util.List;
/*
* This example demonstrates the video capture from web camera.
* <pre>
* Platforms:
* Image source: WebCamera
* Output video format:
* Output file:
*
* @author Serge Piletsky
*/
public class TemplateRun
{
public static void main(String[] args) throws Exception
{
VideoCapture videoCapture = VideoCapture.create(VideoFormat.WMV);
// This is where things go south.
Thread.sleep(1000);
....
}
}
リサーチ:
私はこの問題についてかなりの調査を行いました。Windows オペレーティング システムの 1 つを使用する、スクリーン レコーディングのフォトブースを使用する、facetime を実行するなどの回避策を提案する人もいますが、実際に質問自体に答えた人はいません。私はまだ OpenCV/JavaCV を試みていません。なぜなら、同じ問題を解決するために、これ以上時間を無駄にしたくなかったからです。コードもコンパイルして実行し (エラーを除く)、変数にアクセスすることもできるため、ライブラリ自体は機能しています。Java/OSX のフレームワークの問題ですか? これを修正する方法はありますか?素敵な現代的な回避策はありますか?
482 [main] ERROR com.teamdev.jxcapture.VideoCapture - No compatible video capture modules found for running operating system.
availableVideoSources = [LionVideoDevice[Name='FaceTime HD Camera (Built-in)'; Enabled=false]]
webCamera = LionVideoDevice[Name='FaceTime HD Camera (Built-in)'; Enabled=false]
Exception in thread "main" java.lang.NullPointerException
at TemplateRun.main(TemplateRun.java:34)
ハードウェア:
カメラ: V5.16 FaceTime HD カメラ (内蔵)。
パソコン:Macbook pro 2012年中期
OS: MAC OS シエラ 10.12.3
Java バージョン: Java 8 アップデート、121
テスト済みで、OpenCV/JavaCV でさえ内蔵カメラからカメラ フィードを取得できないようです。