1

高品質の openGL レンダリング (C++) が PC から生成され、Android ディスプレイ デバイス (最小 Android 2.2 を実行) にストリーミングされる拡張現実 (AR) デモに取り組んでいます。これをリアルタイムで実現する最も簡単な方法は何ですか (Android デバイスで 30 FPS)。

私は既存の Anrdroid アプリケーションを調べましたが、今のところ適切なものは見つかりませんでした。利用可能な最高のものはリモート デスクトップ アプリケーション (TeamViewer など) でしたが、フレーム レートが低すぎて信頼性がありませんでした。

可能な解決策 A: 1) openGL ウィンドウを H.264 ビデオとしてエンコードする (Android でネイティブにサポートされている) 2) サーバーを使用して RTSP 経由で H.264 ビデオをストリーミングする 3) Android ブラウザからコンテンツを表示する (WiFi 経由で接続された Android と PC)

考えられる解決策 B: 1) c++ で openGL ウィンドウを IP カメラとしてエンコードします (これは可能ですか?) 2) Android デバイスで IPCamViewer を使用して表示します (再び WiFi 経由で接続します)。

これらのアプローチのいずれかまたは両方が実行可能かどうかは完全にはわかりません。先に進む前に、ある程度の安心が必要です.

4

1 に答える 1

0

画像の解像度は? (現在の画面解像度と等しいか、大きいか小さいか)? H.264 ストリームを転送することは可能で効率的ですが、エンコードを行うために使用されるマシンにも依存します。ハードウェア エンコーダーまたは GPU で高速化されたエンコーダーが最善の策です。

覚えておいてください-エンコーディングを選択した場合、(エンコード側とデコード側で) バッファリングによる遅延が発生します。それは一定の時間オフセットになるので、それが問題でなければ大丈夫です。

このホワイト ペーパーで 提案されているシステム遅延の合計は、次の要素で構成されます。圧縮、送信、表示の遅延

これらの遅延はどれも、フレーム時間で直接完全に測定できないことに注意してください。これらのいくつかは、フレーム データおよび/または実行されるエンコーダ/処理に依存します。しかし、高速な GPU エンコーディングとハードウェア デコーディングを使用した場合の概算として、約 5 ~ 20 フレームのラグと言えます。シナリオごとに最終的なレイテンシを測定する必要があります。これを行うには、テキスト (ティック) を含むフレームを送信し、フレームが安定したら、それらを並べて比較しました。実際、ユーザーがいつでも「テスト モード」に入ってネットワーク トラフィックのピーク時間を補ったり、「品質」設定を変更してこの遅延を調整したりできるようにしました。

于 2012-06-22T21:27:27.707 に答える