2017-01-04 13 views
1

私は現在、Unity 5で無人機シミュレータを開発中で、自分のシーンに4台のUnityカメラを持っています。私は、今すぐのソリューションをUnityで1つのバーチャルカメラの画面に、私のアンドロイドのスマートフォンに、リアルタイムでのストリームに取り組んでいます。 私は、これらのステップを考えていた:Unity 5 - Unityカメラからスマートフォンへ

  1. はTexture2D.ReadPixels

  2. EncodeToJPGまたはEncodeToPNG

3.送信を使用してにTexture2Dをエンコードを使用して空にTexture2Dに画面ピクセルを読みますデバイスへの符号化バイト(デバイスへのソケット経由、またはthis WebRTCソリューションで)

デバイスに
  • :画像にバイトを読み取る(例えばれるByteArrayInputStreamとBitmapFactoryの組み合わせを使用して)
  • Iはすでに最初の2つのステップを終えました。今、私はソケットで作業する方法がわからないので、私はWebRTCを使用しています。しかし、どのようにしてUnityプロジェクトでJavaScriptコードを実装できますか?誰かが私を助けることができますか?

    フォーラムでもWebRTC APIが見つかりましたが、ネットワークのスキルが十分ではありません。誰かが私にこのコードでピアツーピア接続を作成する場所を教えてもらえますか?

    フォーラム:https://forum.unity3d.com/threads/unitypeerjs-simple-webrtc-support-for-unity-webgl.310166/

    コード(UnityのためのWebRTCのAPI):https://www.pastiebin.com/embed/5880b2815c96a

    +0

    私があなたの質問を読んだときに思った最初のことは、単純なクライアント/サーバアプリケーションを作ることでした。したがって、クライアントアプリケーションはサーバに接続してサーバカメラを共有するだけです。それは簡単にする必要があります –

    +0

    どのようなカメラを使用していますか?WiFi経由でビデオをストリーミングするアクションカメラを持っている場合は、ストアで利用可能なビデオプレーヤー(VLCなど)や5.6ベータ版のVideoPlayerを使用して直接ストリームを読むことができます。 – Vancete

    +0

    お返事いただきありがとうございます。 @Vanceteどのカメラを意味していますか?私のシーンでは現在4つのユニティカメラとその1つ、私は同時に私のスマートフォンを送信したいと思います。 – murcoder

    答えて

    0

    あなたがUnityとエンコードされたJPGのみをストリーミングすることができません。主な理由の1つは、JPEGがデコードされ、結果として得られるピクセルデータがGPUにアップロードされるまで、JPEGデコードプロセスがメインスレッドをブロックすることです。これは、すべてのプラットフォームで大きなパフォーマンス上の問題を引き起こします。現在のところ、あらゆる種類のビデオシンクからのビデオをストリーミングする完全なバレットプルーフバリアントはありません。somewhere on the Unity Roadmap is to enable video streaming from the builtin video player

    As of Dec 2017

    あなたのAndroidアプリがユニティ依存していない場合は、ストリーミングバリアントとしてHLSまたはMPEG-ダッシュを使用することができます - 10フレーム - あなたは5のように小さなことができ、関係なく、ビデオバッファが必要になります。 1つの変形は、ビデオフレームをFFMPEGに直接プールすることで、これをHLSストリームとして逆多重化することができます。ソースデバイスとAndroidデバイス間の距離があまり長くない場合は、RTCストリームまたはRTSPストリームになります。

    まだAndroidでUnityを主張している場合は、この資産で運が良かったかもしれません:https://www.assetstore.unity3d.com/en/#!/content/56355(無料版と縮小版を提供しています) - プロダクションで非常に多く使用しており、 Unity内のデフォルトエンコーダ

    あなたの用途に応じて、JPEG2000が動作します。リンクするにはブラウザが必要です。 JPEG2000は、基本的にjpeg-dataをスローするオープンソケットを維持することを可能にします。 (Unityもこれをサポートしていません)

    関連する問題