過去数か月間、開発者と私は、Wowza や Red5 などのメディア サーバーにストリーミングする画面共有アプレットに取り組んできましたが、何をしても約 5 秒の遅延があり、ライブには長すぎます。人々が互いに対話しているアプリケーション。xuggle、さまざまなエンコーダー、さまざまなプレーヤー、さまざまなネットワーク、さまざまなメディア サーバー、さらにはローカル ストリーミングを試してみましたが、かなりの遅延が発生しました。
それで、私は疑問に思い始めています…</p>
Java は、ライブ画面共有を行うのに十分高速ですか?
Java で書かれたスクリーン レコーディング アプレットをたくさん見てきましたが、どれもライブ ストリーミングしていません。GoToMeeting など、ライブで行われるものはすべて C++ を使用しているようです。何か理由があるのではないかと考えています。
圧縮の問題ではありません。ScreenVideo を使用して、1 時間のストリームを約 100 MB に圧縮し、十分な帯域幅を確保しました。圧縮を行ってもプロセッサが過負荷になることはありませんが、時間がかかりすぎているようです。BigBlueButton から引き出されたいくつかのコードから最良の結果が得られていますが、それでもレイテンシーはひどいものです。
一方、WebCam のストリーミングは素晴らしく、きびきびしています。レイテンシーはほとんどありません。したがって、問題はアプレットです。
私が考えることができる他の唯一のアイデアは、どういうわけか Java で WebCam をエミュレートすることです。それがより速いかどうかはわかりません。
アイデア?それとも、Java をあきらめて C++ でこれを行うべきですか? プラットフォームごとに異なるバージョンを作成する必要があるため、私はそれをしたくありませんが、それが唯一の方法である場合は、それが唯一の方法です。