关于从无人机发送实时图像数据的问题

Question about Real time Image data sending from drone

我有一个关于开发功能的问题...

我正在开发一个功能,可以实时接收来自 2 架无人机(Phantom 4 Advanced、Inspire 2)的图像数据并合并它们。

为了测试,我尝试接收一张图片,但是接收了很长时间..

这是我的代码...

camera.setShootPhotoMode(photoMode, new CommonCallbacks.CompletionCallback() {
            @Override
            public void onResult(DJIError djiError) {
                if (null == djiError) {
                    mHandler.postDelayed(new Runnable() {
                        @Override
                        public void run() {
                            camera.startShootPhoto(new CommonCallbacks.CompletionCallback() {
                                @Override
                                public void onResult(DJIError djiError) {
                                    if (djiError == null) {
                                        showToast("take photo: success");
                                        //start 시간 찍고
                                        Log.d("Start Time: ", Long.toString(System.currentTimeMillis()));
                                    } else {
                                        showToast(djiError.getDescription());
                                    }
                                }
                            });
                        }
                    }, 2000);
                }
            }
        });
        //카메라 데이터 핸드폰에 저장
        camera.setMediaFileCallback(new MediaFile.Callback() {
            @Override
            public void onNewFile(@NonNull MediaFile mediaFile) {
                mediaFile.fetchFileData(file, "imageData", new DownloadListener<String>() {
                    @Override
                    public void onStart() {
                        showToast("Start downloading.");
                    }

                    @Override
                    public void onRateUpdate(long l, long l1, long l2) {

                    }

                    @Override
                    public void onRealtimeDataUpdate(byte[] bytes, long l, boolean b) {

                    }

                    @Override
                    public void onProgress(long l, long l1) {

                    }

                    @Override
                    public void onSuccess(String s) {
                        showToast("Download Succeed.");
                        //end time
                        Log.d("End Time: ", Long.toString(System.currentTimeMillis()));
                    }

                    @Override
                    public void onFailure(DJIError djiError) {
                        if(djiError != null){
                            showToast("Failed..");
                            //end time
                            Log.d("End Time: ", Long.toString(System.currentTimeMillis()));
                        }
                    }
                });
                showToast("Image is successfully Saved");
                Log.d("Camera Image Transfer: ", "Succeed!");
            }
        });

我使用 shootphotomode 和 setmediafilecallback 将其发送到我的 Phone..

还有其他方式可以实时接收数据吗?

非常感谢您花一些时间阅读我的问题。非常感谢!

全分辨率照片需要很长时间,对此您无能为力。这永远不会是实时的。

如果您需要实时图像,您必须从低分辨率和 720p/1080p h264 编码的 fpv 直播中抓取帧。 这是实时的,大约有 200 毫秒的延迟,就像您在 fpvview 中看到的那样。

我通常只是从 fpvview 导出位图,这是最快的方法,因为您不需要解码 264。使用该方法可以轻松读取 60fps。