Java ベースのビデオ プレーヤーを探していましたが、必要ありません。Java ビデオ プレーヤーがあるかどうか、およびその数を確認するだけです。驚いたことに、何も見つかりませんでした。少なくとも、VLC、WMP などの一般的なものはありません。これらのプレイヤーには Java の代替手段がいくつかあると思いました。
明らかに、Java はプレーヤーにとって遅すぎるという多くのステートメントを見つけました。そして、私が読んだことから、それは2つのサブ問題に分けることができます:
まず、ビデオのデコードには Java が遅すぎると書いている人がいます。しかし、Java を使い始めて以来、Java の速度は実際にはかなり優れているといつも思っていました。JVM が C++ で書かれたプログラムとほぼ同じように動作するとき、多くのベンチマークが見つかりました。本当によく似ています。これらのベンチマークアルゴリズムは小さく、反復的だったので、JVMはコンパイルされたコードを準備し、そこから高速だったからだと思いました。おそらく、より大きなプログラムでは、動的コンパイルのために実際にははるかに遅くなります。よくわかりません。しかし、Java は JVM によってネイティブ コードにコンパイルされるため、実際に速度で問題になるのは、コードの量とプリコンパイルの速度だけです。もちろん他にも違いはありますが、最大の違いは実際のコンパイルです。
次に、C++ で記述されたビデオ デコーダーがあり、JNI を介して画像データを取得していると書いている人がいます。しかし、彼らは、Java は遅すぎて、これらの 30 FPS でさえ HD 対応の画像を描画できないと言っています。しかし、なぜ?私は常に、JVM は OS でウィンドウを取得するために利用可能な最速の方法を使用し、そのコンテンツを内部で操作するよりも優れていると考えていました。また、JVM が「ウォーミング」されているときに Java が十分に高速である (つまり C++ のように) と私が主張する場合、画像の表示に関する問題はどこにあるのでしょうか? その場合、JVMがしなければならないのは、OS固有の表示出力に配列を書き込むことだけですよね?
では、Java は本当に遅いのでしょうか、それとも何か足りないのでしょうか? Pure Java でフル スピード (またはほぼフル スピード) のビデオ プレーヤーを作成することは可能でしょうか? そうでない場合、なぜですか?ありがとう。