mobile CCTV,mobile surveillance,police body worn cameras

标题: usb摄像头 [打印本页]

author: Aiwinn    time: 2019-1-18 15:17
标题: usb摄像头
请问usb摄像头相机回调的数据在哪里?
author: admin    time: 2019-1-18 18:31
哦,这个估计在MPU SDK的JAVA层里面没有。

author: Aiwinn    time: 2019-1-22 10:26
UVC的问题,昨天提供了两个资料,分别做了对应实验:
1  mpu_as_2018-01-22_addUVCStream: 这个Java层可以正常获取USB的图像数据,如下回调函数有正常打印log。
           
            BVPU.setPreviewCb(new PreviewCallback2() {
                        @Override
                        public void onPreviewFrame2(byte[] bytes, int i, int i1, Camera camera) {
                                Log.e("onPreviewFrame2", "width = "+ i+",height="+i1+",data size = "+bytes.length);
                        }
                 });
               
      如下log:
      I/UVCHandler: frame->frame_format = 9
                  E/onPreviewFrame2: width = 1920,height=1080,data size = 3110400
                        I/UVCHandler: frame->frame_format = 9
                        E/onPreviewFrame2: width = 1920,height=1080,data size = 3110400
                        I/UVCHandler: frame->frame_format = 9
                        E/onPreviewFrame2: width = 1920,height=1080,data size = 3110400

2  把MPU lib20180705这个对应的Jar包和So,替换到MPU上面,按照上面的回调方式,Java层却无法获取到图像数据。
   log只是下面的So的log,没有Java层的回调log,应该是So没有成功反射调用Java的回调函数,导致Java无获取数据
   I/UVCHandler: frame->frame_format = 9
   I/UVCHandler: frame->frame_format = 9
   I/UVCHandler: frame->frame_format = 9
   
   
3  通过对比发现,mpu_as_2018-01-22_addUVCStream和MPU lib20180705里面的So和Jar,有非常大的差异。
   但是如果把mpu_as_2018-01-22_addUVCStream里面的libbvpu_mediandk.so和libbvpu.so替换到我们的MPU里面,是可以
   正常获取到Java层的数据。
   
   
4  由于昨天提供的mpu_as_2018-01-22_addUVCStream 和 我们正在使用的MPU代码 在进行QQ沟通时,这个是去年8月份的旧代码,
   而且我们对比发现,有非常多的文件差异。而我们目前使用的是最新的MPU代码(你们2019年1月14日提供的MPU_SDK_LIB20190114)
   为了解决一个Crash问题(2019-1-14提的“遇到So的Crash问题”),所以请确认,单独回退就版本的这两个So,是否会引起之前的旧问题或者其他问题?
author: Aiwinn    time: 2019-1-22 11:55
早上测试发现,“如果把mpu_as_2018-01-22_addUVCStream里面的libbvpu_mediandk.so和libbvpu.so替换到我们的MPU里面”,虽然可以获取USB图像数据,但是无法图传,并且会必现Crash:

01-22 11:49:10.719 13177-13177/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-22 11:49:10.719 13177-13177/? A/DEBUG: Build fingerprint: 'Android/msm8953_64_c350/msm8953_64_c350:7.1.2/N2G47H/server11141345:user/release-keys'
01-22 11:49:10.719 13177-13177/? A/DEBUG: Revision: '0'
01-22 11:49:10.719 13177-13177/? A/DEBUG: ABI: 'arm'
01-22 11:49:10.719 13177-13177/? A/DEBUG: pid: 12855, tid: 12855, name: .jarvis.app.mix  >>> com.aiwinn.jarvis.app.mix <<<
01-22 11:49:10.719 13177-13177/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x4
01-22 11:49:10.719 13177-13177/? A/DEBUG:     r0 00000000  r1 36a780d7  r2 00000000  r3 00000000
01-22 11:49:10.719 13177-13177/? A/DEBUG:     r4 f1ac5008  r5 c5bfb9d0  r6 00000000  r7 ffde192c
01-22 11:49:10.720 13177-13177/? A/DEBUG:     r8 ca2be780  r9 0000002a  sl 00000000  fp 00000000
01-22 11:49:10.720 13177-13177/? A/DEBUG:     ip c5bfc9b8  sp ffde1910  lr c5879533  pc c588b336  cpsr 600e0030
01-22 11:49:10.722 13177-13177/? A/DEBUG: backtrace:
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #00 pc 001bf336  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libbvpu_mediandk.so (SEProto_Answer+13)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #01 pc 001bf3f3  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libbvpu_mediandk.so (SEProto_AnswerLite+74)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #02 pc 00179715  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libbvpu_mediandk.so (_ZN3SIP11responseCmdEPN9TelEngine7MessageE+188)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #03 pc 001710cf  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libbvpu_mediandk.so (_ZN21ServerResponseHandler8receivedERN9TelEngine7MessageE+10)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #04 pc 000791b1  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libyate.so (_ZN9TelEngine14MessageHandler16receivedInternalERNS_7MessageE+8)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #05 pc 0007954b  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libyate.so (_ZN9TelEngine17MessageDispatcher8dispatchERNS_7MessageE+262)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #06 pc 00074eab  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libyate.so (_ZN9TelEngine6Engine8dispatchERNS_7MessageE+22)
01-22 11:49:10.722 13177-13177/? A/DEBUG:     #07 pc 0016f04f  /data/app/com.aiwinn.jarvis.app.mix-1/lib/arm/libbvpu_mediandk.so (Java_com_smarteye_coresdk_BVPU_PostMessageToNative+2010)
01-22 11:49:10.723 13177-13177/? A/DEBUG:     #08 pc 011722e1  /data/app/com.aiwinn.jarvis.app.mix-1/oat/arm/base.odex (offset 0x10b1000)
01-22 11:49:10.724 1676-2067/? E/IzatSvc_PassiveLocListener: E/Exiting with error virtual void izat_manager::IzatPassiveLocationListener:nLocationChanged(const izat_manager::IzatLocation *, const IzatLocationStatus) line 172 "1"
01-22 11:49:10.740 738-13079/? E/mm-camera: <CPP   ><ERROR> 434: cpp_thread_handle_process_buf_event: [CPP_BUF:] dropped frame id=240 identity=0x20002, HAL buffer not enqueued
author: Aiwinn    time: 2019-1-22 11:56
对应的完整log如附件。

author: Arthur    time: 2019-1-22 13:46
你们现在使用MPU_SDK_LIB20190114加MPU lib20180705就一个没有uvc回调的问题是吧?
author: Aiwinn    time: 2019-1-22 13:51
Arthur post on2019-1-22 13:46
你们现在使用MPU_SDK_LIB20190114加MPU lib20180705就一个没有uvc回调的问题是吧?

是的,解决回调的问题。
author: Arthur    time: 2019-1-22 14:02
Aiwinn post on2019-1-22 13:51
是的,解决回调的问题。

                            好的
author: Aiwinn    time: 2019-1-22 14:19
Arthur post on2019-1-22 14:02
好的

请问今天可以帮忙解决这个问题吗?
author: Arthur    time: 2019-1-22 14:28
Aiwinn post on2019-1-22 14:19
请问今天可以帮忙解决这个问题吗?

我们得研究一下为什么新库没有回调了。
author: Aiwinn    time: 2019-1-22 17:16
Arthur post on2019-1-22 14:28
我们得研究一下为什么新库没有回调了。

那就辛苦帮忙看一下问题,我们这边需要尽快解决这个问题去做演示。
author: hardfire    time: 2019-1-22 17:30
好的已经更新代码给曹总。
author: Aiwinn    time: 2019-1-22 18:06
hardfire post on2019-1-22 17:30
好的已经更新代码给曹总。

新给的库mpu_lib_20190122 这个版本 ,替换了对应的so库,有uvc的相机数据回调了,但是没有图传了,系统相机的图传也没有了。
author: Arthur    time: 2019-1-22 20:58
Aiwinn post on2019-1-22 18:06
新给的库mpu_lib_20190122 这个版本 ,替换了对应的so库,有uvc的相机数据回调了,但是没有图传了,系统 ...

所有的库和jar都替换了么?没有图传指的是什么,pc端没有数据?
author: Aiwinn    time: 2019-1-23 09:57
Arthur post on2019-1-22 20:58
所有的库和jar都替换了么?没有图传指的是什么,pc端没有数据?

找到原因,是因为公司局域网络出现问题,目前已经可以通。
author: hardfire    time: 2019-1-23 10:31
感谢分享。
author: Aiwinn    time: 2019-1-25 16:12
目前USB摄像头可以正常获取数据,但是数据格式是NV12的,可以变成NV21吗?我们这边人脸识别,使用的是NV21的格式。Android原生的Camera框架,也是吐NV21,我们自己写的USB摄像头的程序,默认也是吐NV21格式。
author: Aiwinn    time: 2019-1-25 16:15
附件是获取到的NV12的YUV数据,是否可以变成Nv21。

author: Aiwinn    time: 2019-1-26 15:14
请问,如何调节USB摄像头的分辨率大小?
author: xuwei    time: 2019-1-26 16:52
Aiwinn post on2019-1-25 16:15
附件是获取到的NV12的YUV数据,是否可以变成Nv21。

这个需要上层应用层做转换
author: Aiwinn    time: 2019-1-26 18:17
请问如何修改USB摄像头的默认分辨率?目前  我在代码里面写成固定分辨率去渲染,可以进行图传,但是预览界面无相机画面显示 。请问怎么解决这个问题。
author: admin    time: 2019-1-26 20:06
好像没支持UVC的分辨率设置。
author: Aiwinn    time: 2019-1-27 16:04
admin post on2019-1-26 20:06
好像没支持UVC的分辨率设置。

目前USB摄像头是1920*1080的分辨率,无论是图传还是Java反射调用的数据,都是这个格式,我们想要默认变成1280*720的分辨率,是否更新So,变成这个分辨率。
author: Arthur    time: 2019-1-28 09:28
Aiwinn post on2019-1-26 18:17
请问如何修改USB摄像头的默认分辨率?目前  我在代码里面写成固定分辨率去渲染,可以进行图传,但是预览界 ...

分辨率是打开摄像头传进去的。
author: Arthur    time: 2019-1-28 09:44
Aiwinn post on2019-1-27 16:04
目前USB摄像头是1920*1080的分辨率,无论是图传还是Java反射调用的数据,都是这个格式,我们想要默认变成 ...

你贴一下代码,我看下你们是怎么调的打开摄像头。 你确定传了一个分辨率?
author: Aiwinn    time: 2019-1-28 13:59
在MPUCameraUtil类中,调用下面这个方法,并把render.iWidth 和 render.iHeight 在代码中设置为固定的 1280  和 720 , 之前的代码写的是cameraParam.width 和 cameraParam.height , 我们打印出来是 1920 * 1080
        public void openExtcamCamera() {
                if (!(new ExtCamData(context).ExtDataIsRight())) {
                        MPUToast.makeText(context,
                                        context.getString(R.string.ExtcamOpenFail),
                                        MPUToast.LENGTH_SHORT).show();
                }
                try {
                        closeCamera();
                        closeRender();                       
                        mpu.setCameraIndex(CameraListViewAdapter.EXTERNAL_CAMREA + 1);
                        CameraHolder.getCameraHolder().setCapture(false);
                        int index = 4;
                        CameraParam cameraParam = mpu.getCameraParam();
                        cameraParam.videoIndex = index;
                        BVPU_VideoControl_Render render = new BVPU_VideoControl_Render();
                        render.iWidth = 1280;
                        render.iHeight = 720;
                        render.hWnd = mSurfaceView.getHolder().getSurface();
                        render.iYUVConvert = mpu.getCameraParam().renderCovertIndex;// refresh
                                                                                                                                                // param
                        render.iRotate = mpu.getPreviewEntity().getExtcamCameraRotateIndex();
                        if(mpu.getCamCapabilities().szDevice.equals("EMPIA")){
                                if(EmpiaCamControl.openCam(mpu.getExtCamCaptureParam()) == 0){
                                        EmpiaCamControl.startCaptureStream();
                                }
                        }else{
                                mpu.getmConnection().extcam(mpu.getExtCamCaptureParam());
                        }
                        isCamOpened = true;
                        mpu.getmConnection().render(render);
                        extcamState = true;
                        mpu.getPreviewActivity().changeBottomMenuUI(true, true,
                                        mpu.getCameraIndex() - 1);
                } catch (Exception e) {
                        MPUToast.makeText(context, e.toString(), Toast.LENGTH_SHORT).show();
                }
        }
author: Arthur    time: 2019-1-28 14:28
Aiwinn post on2019-1-28 13:59
在MPUCameraUtil类中,调用下面这个方法,并把render.iWidth 和 render.iHeight 在代码中设置为固定的 1280 ...

mpu.getExtCamCaptureParam()这里设置的摄像头分辨率。 并且render跟camera的分辨率要一致。 cameraParam.width写法是对的。你去修改cameraParam的值就可以了
author: Arthur    time: 2019-1-28 14:36
Aiwinn post on2019-1-26 18:17
请问如何修改USB摄像头的默认分辨率?目前  我在代码里面写成固定分辨率去渲染,可以进行图传,但是预览界 ...

我以为你们是自己重写的代码。我们这边默认usb的分辨率在MPULoadConfig中loadBVPU_Extcam_Temp_Param();




欢迎光临 mobile CCTV,mobile surveillance,police body worn cameras (http://bbs.besovideo.com:8067/) Powered by Discuz! X3.2