5

基本的に、3g未満で数秒の遅延「ライブ」フィードを送信できるようにしたいと思います。品質が非常に低くても大丈夫です。必要に応じて、4ビットのグレースケールを使用することもできます(ただし、128〜256色が望ましいです)。必要に応じて、>1fpsで160x120まで下げたいと思います。この最も不器用な設定で完全に非圧縮とは、過飽和の低帯域幅接続を意味します。

単に画像としてスナップショットを調べる必要がありますか?可能な限り最低品質のJPEGに関するBitmapfactoryの機能に精通している人はいますか?

PNGまたはGIFを調べる必要がありますか?私の理解では、ソリッドフィールドはこれらで最もよく機能します。「ビデオ」を送り返すドローンを制御したいと思っているので、空のかなりの部分以外の固体フィールドに大きく依存できるかどうかはわかりません。サーバー接続が頻繁に失われたり回復したりすることが予想されるため、数秒の遅延のある偽のビデオは問題なく、さらに望ましいものです。

私はまともな信号で「3g」で128kのようになります、しかし私はそれを正確に信頼することはできません。私は必要なデコードサーバー側を行うことができます-それは問題ではないはずです。

だから私はあなたに尋ねます、スタック、あなたはインターネットを介してスマートフォンから見たいと思っており、良好な接続に依存することはできません。どのようにアプローチしますか?

4

1 に答える 1

1

最も簡単なアプローチは、プレビュー画像を取得して送信することだと思います。

これは、プレビュー画像をJPEGとして取得するために見つけた素晴らしいコードです。それは素晴らしくて速いです、そしてあなたのニーズに合うべきです。アップロードにも使っていたので、ファイルサイズが非常に小さかったです。

1920x1080の画像を出力する場合、ファイルサイズは150〜300KBの間でした。

    camera.setOneShotPreviewCallback(new PreviewCallback() {
            @Override
            public void onPreviewFrame(byte[] data, Camera camera) {
                try {
                    Camera.Parameters parameters = camera.getParameters();
                    Size size = parameters.getPreviewSize();
                    YuvImage image = new YuvImage(data, parameters.getPreviewFormat(),
                            size.width, size.height, null);
                    File file = new File(getCacheDir().getPath() + "/out.jpg");
                    FileOutputStream filecon = new FileOutputStream(file);
                    image.compressToJpeg(
                            new Rect(0, 0, image.getWidth(), image.getHeight()), 90,
                            filecon);
                } catch (FileNotFoundException e) {
                }
            }
        });

プレビューサイズを最大設定に設定した方法は次のとおりですが、これを小さく設定して速度を上げることができます。

Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> previewSizes = parameters.getSupportedPreviewSizes();
imageWidth = previewSizes.get(0).width;
imageHeight = previewSizes.get(0).height;
parameters.setPreviewSize(imageWidth, imageHeight);
camera.setParameters(parameters);
于 2012-05-21T01:53:43.663 に答える