特定のシナリオを半リアルタイムで検出するための画像処理の問題を調査しています。私の目標は、ライブビデオをJavaコードのMotionJPEGフレームとして何らかの形で到着させることです。
私はJavaMediaFrameworkに精通していますが、残念ながら、事実上死んでいるAPIと見なすことができると思います。私はAxisボックスにも精通しており、それらのソリューションは本当に気に入っていますが、特定の関心のあるポイントに関する重要なフィードバックをいただければ幸いです。
これが、この議論の目的のために私が「最良」を定義する方法です。
- レイテンシー-このビデオストリームを使用してカメラを制御している場合、可能であれば、ラウンドトリップレイテンシーを100ミリ秒未満に保ちたいと思います。これは、コントロール入力から目に見える変化が見られるまでの時間として測定されます。しばらくしてから編集してください。もう1つ覚えておくべきことは、カメラ制御は手動と自動(イベントトリガー)の組み合わせである可能性が高いということです。高品質のフィードが個別にアーカイブされている場合でも、これらの写真をすぐに確認する必要があります。
- コスト-無料/オープンソースは無料でないよりはましです。
- 調整可能なコーデックパラメータ-特定の状況に合わせてコーデックを調整できる必要があります。高速で低解像度のストリームの方が実際に処理しやすい場合があります。
- Javaとの「統合」-このソリューションを私のコードにフックするのはどれくらいの問題ですか?ソケットを介してパケットを送信していますか?URLを打つ?Direct3D / JNIの組み合わせをインストールしますか?
- Windows / Linux /両方?-オペレーティングシステムにとらわれないソリューションを好むのは、OSのいくつかのフレーバーに提供する必要があるためですが、一方に最適で他方には最適でないソリューションがあるかもしれません。
注:私は他の画像/ビデオキャプチャコーデックを知っていますが、それはこの質問の焦点ではありません。フレームの精度が低下するため、ストリーミングAPI(MPEG4など)には特に関心がありません。ただし、別のフレーム精度のデータストリームを配信する私の質問に対する解決策がある場合は、チャイムを鳴らしてください。
この質問のフォローアップ:現時点では、ソフトウェアやPCで直接ビデオをキャプチャするのではなく、 Axisビデオエンコーダーなどのアプライアンスを購入する傾向があります。しかし、誰かが代替案を持っているなら、私はそれらを聞いてみたいです。