mobile CCTV,mobile surveillance,police body worn cameras

标题: SDK的认证和上传的接口 [打印本页]

author: eviicam    time: 2017-5-11 16:14
标题: SDK的认证和上传的接口
外部APP应用对接MPU的认证和RTSP视频流上传,如何实现。需要对接那些接口
author: xuwei9    time: 2017-5-11 16:34
1.认证接口
可以参考com.smarteye.bill.BillTool.java中的auth接口
2.rtsp视频
参考com.smarteye.camera.RTSPCamControl.java中提供的接口
author: eviicam    time: 2017-5-11 16:37
xuwei9 post on2017-5-11 16:34
1.认证接口
可以参考com.smarteye.bill.BillTool.java中的auth接口
2.rtsp视频

上传GPS位置信息如何对接
author: xuwei9    time: 2017-5-11 16:41
上传GPS可以调用com.smarteye.coresdk.bvpu.java中InputGPSData的接口
author: eviicam    time: 2017-5-11 16:57
xuwei9 post on2017-5-11 16:41
上传GPS可以调用com.smarteye.coresdk.bvpu.java中InputGPSData的接口

SDK里面没有看到上面提到的.JAVA文件
author: xuwei9    time: 2017-5-11 17:35
在libs目录下的bvpu.jar包中
author: eviicam    time: 2017-5-11 17:44
com.smarteye.bill.BillTool.java
com.smarteye.camera.RTSPCamControl.java
在那个压缩包中
author: xuwei9    time: 2017-5-11 17:45
eviicam post on2017-5-11 17:44
com.smarteye.bill.BillTool.java
com.smarteye.camera.RTSPCamControl.java
在那个压缩包中

这两个文件都在工程里面
author: eviicam    time: 2017-5-18 15:23
请帮助整理一份文档,把具体的API名称,API具体的参数说明清楚,方面我这边对接
author: eviicam    time: 2017-5-25 09:46
你好,请帮助提供以下功能对应的API,及相应的API接口的使用说明:
1.认证接口。
2.rtsp视频。
3.GPS信息上传。
author: eviicam    time: 2017-6-8 09:42
rtsp的服务器地址和端口如何设置在SDK中设置,请帮助提供一下目前贵司演示用的服务器地址和端口,我们这边测试用。谢谢!
author: besovideo    time: 2017-6-8 09:46
其实,您可自建smarteye server来测试,可在局域网搭建测试。我们的服务器都是在阿里云上的,是公网的。此外,我们的协议也不是RTPS的,我们是基于SIP+RTP的私有协议的框架。


author: eviicam    time: 2017-6-8 11:18
能否提供一下你们现有服务器的地址和端口
author: eviicam    time: 2017-6-8 11:19
图片更新看到的较慢,刚刚看到,谢谢
author: besovideo    time: 2017-6-8 14:05
自建服务器,设备-服务器-客户端全部自己的,就与我们完全无关了。(参见FAQ-2)
http://www.besovideo.com/chn/articles/WVS_faq_2.asp
author: eviicam    time: 2017-6-8 18:34
请问,手机端从警务仪获取的视频流怎么通过MPU的SDK推送到RTSP服务器,是否有相应的API,如果有,可以说明一下相关的文件或接口吗?
是否有类似sendVideoBuffer、sendAudioBuffer这样的api?
author: eviicam    time: 2017-6-9 11:40
认证参数呢:
BillTool: {"stEntity":{"iAPILevel":22,"iDensityDpi":640,"iHeightPixels":2560,"iWidthPixels":1440,"szAndroidID":"bded7a94f37d32fd","szBoard":"universal7420","szBrand":"samsung","szBuildTime":"1442634933000","szDeviceID":"990005788241959","szFingerPrint":"samsung/zerofltespr/zerofltespr:5.1.1/LMY47X/G920PVPU3BOI1:user/release-keys","szHardware":"samsungexynos7420","szMacAddress":"90:B6:86:84:97:42","szModel":"SM-G920P","szRadio":"G920PVPU3BOL1"},"szLicense":"F88291D8-E4AD-45E7-8B79-B081E93BB586","szPath":"/storage/emulated/0"}

错误log:
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x10 in tid 6584 (Thread-7774)


我调用BVPU.Auth(getApplicationContext(), json);报libc error。下边是我的写法,请问哪里有问题?


        BVPU.InitCoreSDK();
        BVPU.setMessageEvent(this);
        BVPU.Initialize();


        JNIMessage message = new JNIMessage();
        message.addStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_ID.getName(),"mpu.start");
        BVPU.PostMessageToNative(message);

        new Thread(new Runnable() {
            @Override
            public void run() {
                packBillEntity();
                Gson gson = new Gson();
                String json = gson.toJson(billEntity, BillEntity.class);
                Log.i("BillTool", json);
                BVPU.Auth(getApplicationContext(),json);

                //loginMPU();
            }
        }).start();
author: 国士无双    time: 2017-6-9 13:06
贴的代码上没看出啥问题,麻烦提供下底层库的崩溃日志以便排查问题
author: eviicam    time: 2017-6-9 13:14
找到问题了,一个参数没有传导致的,认证成功后的动作是login Server,对吗?

如果login成功了,是不是就可以使用 InputVideoData 和 InputAudioData 这2个native api向服务器推流呢?

谢谢~
author: 国士无双    time: 2017-6-9 13:26
这两个api只是负责把流发送到native层,不会向服务器推流,收到客户端发送的音视频请求后才会把流发送出去
author: eviicam    time: 2017-6-9 13:57
谢谢,请求音视频的事情稍后再调,有个问题请教下:

认证的时候在onMessageFromNative的回调函数里收到auth.update.param和对应的值,应该做什么处理啊?
为什么会每个一分钟收到一次auth.update.param,该怎么停掉呢?

public class UpdateAuthParamProcess implements Process {
     @Override     public boolean process(JNIMessage message) {       //.....     }}
这个回调函数没有触发到,是不是要set某个Listener呢?

author: 国士无双    time: 2017-6-9 14:14
只要把底层回调的认证信息保存起来就行
author: eviicam    time: 2017-6-9 14:31
不好意思,参照你们的源码来做,我保存到了首选项里。                        sharedTools.setShareString(MPUDefine.MPU_SHARE_KEY_AUTH_PARAM, param);
billEntity.setSzAuthParam(val); , BillEntity里也有保存起来。
但是还是会每分钟都会收到一次啊?

请问还有哪里要注意的吗?


public class UpdateAuthParamProcess implements Process {
       
        private Context context;
        private SharedTools sharedTools;
       
        public UpdateAuthParamProcess(Context context) {
                this.context = context;
                sharedTools = new SharedTools(context);
        }

        @Override
        public boolean process(JNIMessage message) {
                if ("auth.update.param".equals(message.getStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_ID.getName()))) {
                        String param = message.getStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_RESULT.getName());
                        Log.i("test_mpu","----process---2--"+param);

                        sharedTools.setShareString(MPUDefine.MPU_SHARE_KEY_AUTH_PARAM, param);
                        return true;
                }
                return false;
        }
}
author: 国士无双    time: 2017-6-9 14:40
底层确实是每隔一段时间回调一次的,上层更新保存即可
author: eviicam    time: 2017-6-9 15:50
国士无双 post on2017-6-9 13:26
这两个api只是负责把流发送到native层,不会向服务器推流,收到客户端发送的音视频请求后才会把流发送出去

请问先调用InputVideoData , InputAudioData 把流发给native , 还是先发送音视频请求?

请求发送音视频是不是同样使用BVPU.PostMessageToNative() API呢?
author: eviicam    time: 2017-6-9 16:14
login 返回400,请问是什么原因呢?
login的参数如下:

ServerParam:
{"bGPSEnable":1,"iDeviceID":673454425,"iMediaDir":13,"iPlatform":0,"iServerPort":xxx,"iVersionCode":1719,"szChannelName":"video","szDeviceName":"SM-G920P","szDeviceType":"PU","szServerAddr":"xx.xx.xx.xx","szVersionName":"20170222"}

audioEncode:
{"bAECEnable":false,"bNativePlayerEnable":true,"iAECDelay":150,"iAECRoutingMode":2,"iAECSuppressionLevel":1,"iBitrate":32000,"iChannelNum":1,"iEncoder":0,"iSamplePrecision":16,"iSampleRate":8000}

   
private void login(String ServerParam, String audioEncode) {
        JNIMessage message = new JNIMessage();
        message.addStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_ID.getName(),"login");
        message.addStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_RESULT.getName(), audioEncode);
        message.addStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_FUNCTION.getName(), ServerParam);
        BVPU.PostMessageToNative(message);
    }


author: eviicam    time: 2017-6-9 17:15
国士无双 在吗? 麻烦帮忙分析下,login返回400会是哪些问题导致的?
author: 国士无双    time: 2017-6-9 17:17
返回400说明登录失败,先确定设备网络状况,然后检查下服务器ip和端口是否正确。
author: eviicam    time: 2017-6-9 17:24
国士无双 post on2017-6-9 17:17
返回400说明登录失败,先确定设备网络状况,然后检查下服务器ip和端口是否正确。

网络是正常的,你们提供的源码run起来是没问题的,我写的app用同样的IP和Port登录就返回400了

还有其他问题会导致登陆失败吗?
author: eviicam    time: 2017-6-9 17:25
eviicam post on2017-6-9 17:24
网络是正常的,你们提供的源码run起来是没问题的,我写的app用同样的IP和Port登录就返回400了

还有其 ...

认证是成功了的,登陆就400了
author: eviicam    time: 2017-6-9 17:37
下边是Log,麻烦帮分析一下:


06-09 17:37:51.501 32649-32649/com.icare.mpudemo I/SIP: latitude=2000000000 longitude=2000000000
06-09 17:37:51.511 32649-32649/com.icare.mpudemo I/NetworkLayer: Socket make error!
06-09 17:37:51.511 32649-32649/com.icare.mpudemo I/NetworkLayer: Bind make error!
06-09 17:37:51.511 32649-32649/com.icare.mpudemo I/NetworkLayer: F_GETFL error!
06-09 17:37:51.511 32649-32649/com.icare.mpudemo I/NetworkLayer: F_SETFL error
06-09 17:37:51.511 32649-32649/com.icare.mpudemo I/NetworkLayer: setsockopt error:Bad file number
06-09 17:37:51.511 32649-3368/com.icare.mpudemo I/RTP: recvPacketLossRate = 0,sendPacketLossRate = 0
06-09 17:37:53.991 32649-3368/com.icare.mpudemo I/RTP: recvPacketLossRate = 0,sendPacketLossRate = 0
06-09 17:37:55.361 32649-32649/com.icare.mpudemo I/test_mpu: auth--->type = login----val =null
06-09 17:37:55.361 32649-32649/com.icare.mpudemo I/test_mpu: auth--->type = login----val =400
author: 国士无双    time: 2017-6-9 18:05
网络层建立失败了,检查下是否正确初始化
author: 国士无双    time: 2017-6-9 18:07
你初始化是在哪里调用的,代码贴出来看下
author: eviicam    time: 2017-6-9 18:16
我找到问题了,login成功后是不是就可以发视频流了?

                public void inviteAV(int cameraIndex,int dir,BVPU_VideoControl_Encode control){
                        JNIMessage message = new JNIMessage();
                        message.addStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_ID.getName(),
                                        "invite.av");
                        message.addIntParam(JNIMessage.Key.JNIMESSAGE_KEY_I_MEDIADIR.getName(),
                                        dir);
                        message.addIntParam(JNIMessage.Key.JNIMESSAGE_KEY_I_TOKEN.getName(),
                                        cameraIndex);
                        message.setObj(control);
                        BVPU.PostMessageToNative(message);
                }

上面的函数是不是请求音视频的方法啊?是不是调用了它,发InputVideoData()才可以看到视频?
author: eviicam    time: 2017-6-9 18:25
国士无双:下边你说的这句话,

【这两个api只是负责把流发送到native层,不会向服务器推流,收到客户端发送的音视频请求后才会把流发送出去】,客户端怎么发送的音视频请求 , 可以详细说明一下或贴出一段代码吗?

谢谢!

author: xuwei    time: 2017-6-10 17:09
eviicam post on2017-6-9 18:25
国士无双:下边你说的这句话,

【这两个api只是负责把流发送到native层,不会向服务器推流,收到客户端 ...

贵公司手上有完整的MPU代码,所以你们可以在这个基础上修改成你们自己的UI或者使用Debug跟踪下代码,完全仿照MPU流程调用即可实现MPU全部音视频的功能,至于MPU如何实现这些功能的细节实在太多,麻烦请谅解没法及时给你们作一一解释。
author: eviicam    time: 2017-6-12 12:14
请问可以怎么只推video流,不推audio流啊?
author: eviicam    time: 2017-6-12 12:35
你好,BVPU.InputVideoData(data, data.length, System.currentTimeMillis() * 1000L); 调用这个API之后,在SmartEye监视器里请求不到视频。

我是在登录成功之后,读取一个本地h264视频文件,以每秒25帧通过BVPU.InputVideoData发送的。

请问流程有什么问题吗?在SmartEye监视器里请求不到视频可能原因是什么?求解~

if ("login".equals(type)){
            val = jniMessage.getStrParam(JNIMessage.Key.JNIMESSAGE_KEY_I_RESULT.getName());
            Log.i("test_mpu","auth--->type = "+type+"----val ="+val);
            if ("200".equals(val)){
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        Main main = new Main();
                        main.read(mHandler);
                    }
                }).start();
            }else{
                //loginMPU();
            }
        }


Handler mHandler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what == 0){
            byte[] arr = (byte[]) msg.obj;
            Log.i("test_mpu","buf ----len ="+arr.length);
            BVPU.InputVideoData(arr,arr.length,System.currentTimeMillis() * 1000);
        }
    }
};

author: eviicam    time: 2017-6-12 14:25
你好,xuwei , 项目很着急,针对你们那套源码,流程太过复杂,找不到头绪,还请你可以回答上面提出的问题。
author: 国士无双    time: 2017-6-12 15:07
首先检查下设备登录时的填写的iMediaDir字段,支不支持视频发送;登录后通过smarteye监视器打开网传底层会收到i来自客户端的nvite命令,随之回调给java层的AVDialogProcess处理,AVDialogProcess中的openDialog()会调用inviteAV()方法之后底层开始传输视频数据。请按照这个大致流程检查下代码。
author: besovideo    time: 2017-6-12 15:16
传音频,还是传视频,是由smarteye client决定的,是用户点播的模式,由CU传达给PU来执行的。

author: eviicam    time: 2017-6-12 15:35
调用inviteAV之后报以下错误,是不是底层收到InputVideoData传来的数据之后做了解码造成的?

我们的需求是只要把流推出去就可以,不用做解码(或者说解码已经做了)

I/OMXCodec: Attempting to allocate OMX node 'OMX.Exynos.AVC.Encoder'
I/OMXCodec: Successfully allocated OMX node 'OMX.Exynos.AVC.Encoder'
I/codec_stagefright: 1280 720 25 614400 1
I/OMXCodec: [OMX.Exynos.AVC.Encoder] OMXCodec::start mState=1
I/OMXCodec: [OMX.Exynos.AVC.Encoder] allocating 5 buffers of size 1382400 on input port
I/OMXCodec: [OMX.Exynos.AVC.Encoder] allocating 4 buffers of size 1382400 on output port
I/codec_stagefright: 1280 720 25 614400 1
I/OMXCodec: [OMX.Exynos.AVC.Encoder] Now Idle. Component sends idle done Event

A/libc: Fatal signal 8 (SIGFPE), code -6, fault addr 0x68a7 in tid 27158 (m.icare.mpudemo)

E/OMXCodec: [OMX.Exynos.AVC.Encoder] err = -2147483648
I/OMXCodec: [OMX.Exynos.AVC.Encoder] stop mState=4
I/OMXCodec: [OMX.Exynos.AVC.Encoder] stop() sendCommand(63, OMX_CommandStateSet, OMX_StateIdle)
I/OMXCodec: [OMX.Exynos.AVC.Encoder] Now Idle. Component sends idle done Event
I/OMXCodec: [OMX.Exynos.AVC.Encoder] stopOmxComponent_l() mstate = 1

I/codec_stagefright: VideoEncode::run exit!
A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0x4 in tid 27158 (m.icare.mpudemo)
author: besovideo    time: 2017-6-12 15:37
哪里的解码?MPU侧只是编码
author: eviicam    time: 2017-6-12 15:39
我们的app继承你们的就是推流这个功能,主要就是把视频分享出去,可以通过SmartEye客户端观看。
author: eviicam    time: 2017-6-12 15:44
视频流是通过ffmpeg从执法仪读取过来的,现在就是使用你们的sdk推到rtsp服务器

那你们的底层会编码InputVideoData出进去的数据吗?如果会的话,刚才那个error log可能是什么导致的?
author: 国士无双    time: 2017-6-12 15:49
log不全,麻烦把下面的调用栈打印信息贴出来
author: eviicam    time: 2017-6-12 15:53
06-12 15:54:47.471 8047-8278/com.icare.mpudemo I/SIP: sendKeepalive_count = 0,iResult = 0
06-12 15:54:48.991 8047-8345/com.icare.mpudemo I/RTP: recvPacketLossRate = 0,sendPacketLossRate = 0
06-12 15:54:50.471 8047-8278/com.icare.mpudemo I/SIP: sendKeepalive m_applierID = 20827
06-12 15:54:51.651 8047-8276/com.icare.mpudemo I/SIP: iResult =0
06-12 15:54:51.651 8047-8276/com.icare.mpudemo I/SIP: iStatusCode 200
06-12 15:54:51.981 8047-8276/com.icare.mpudemo I/SIP: sipU_28241959_0_-1@116.24.21.49
06-12 15:54:51.981 8047-8276/com.icare.mpudemo I/SIP: processInvite+++++++++++++++++++++++
06-12 15:54:51.981 8047-8276/com.icare.mpudemo I/SIP: get sps and pps
06-12 15:54:51.981 8047-8047/com.icare.mpudemo I/test_mpu: auth--->type = invite.av----val =null---avDir = 5
06-12 15:54:51.991 8047-9302/com.icare.mpudemo I/MPU_Codec: SAVThread::run.............
06-12 15:54:51.991 8047-8345/com.icare.mpudemo I/RTP: recvPacketLossRate = 0,sendPacketLossRate = 0
06-12 15:54:52.001 8047-9303/com.icare.mpudemo I/OMXClient: Using client-side OMX mux.
06-12 15:54:52.001 8047-9303/com.icare.mpudemo I/codec_stagefright: frameRate=25 bitRate=614400 iFramesInterval=1
06-12 15:54:52.001 8047-9303/com.icare.mpudemo I/codec_stagefright: 1280 720 25 614400 1
06-12 15:54:52.001 8047-9303/com.icare.mpudemo I/codec_stagefright: 1280 720 25 614400 1
06-12 15:54:52.011 8047-9303/com.icare.mpudemo I/OMXCodec: Attempting to allocate OMX node 'OMX.Exynos.AVC.Encoder'
06-12 15:54:52.021 8047-9304/com.icare.mpudemo W/System.err: AVFrameFlag = 1180063816---AVFrameLen = 147025---VFrameType = 1
06-12 15:54:52.051 8047-9303/com.icare.mpudemo I/OMXCodec: Successfully allocated OMX node 'OMX.Exynos.AVC.Encoder'
06-12 15:54:52.061 8047-9303/com.icare.mpudemo I/codec_stagefright: 1280 720 25 614400 1
06-12 15:54:52.061 8047-9303/com.icare.mpudemo I/OMXCodec: [OMX.Exynos.AVC.Encoder] OMXCodec::start mState=1
06-12 15:54:52.061 8047-9303/com.icare.mpudemo I/OMXCodec: [OMX.Exynos.AVC.Encoder] allocating 5 buffers of size 1382400 on input port
06-12 15:54:52.061 8047-9303/com.icare.mpudemo I/OMXCodec: [OMX.Exynos.AVC.Encoder] allocating 4 buffers of size 1382400 on output port
06-12 15:54:52.071 8047-9303/com.icare.mpudemo I/codec_stagefright: 1280 720 25 614400 1
06-12 15:54:52.091 8047-8060/com.icare.mpudemo I/OMXCodec: [OMX.Exynos.AVC.Encoder] Now Idle. Component sends idle done Event
06-12 15:54:52.091 8047-9303/com.icare.mpudemo A/libc: Fatal signal 11 (SIGSEGV), code 2, fault addr 0xee800000 in tid 9303 (m.icare.mpudemo)
06-12 15:54:52.441 8047-9304/com.icare.mpudemo W/System.err: AVFrameFlag = 1180063816---AVFrameLen = 9929---VFrameType = 2
author: eviicam    time: 2017-6-12 15:56
和这下面的代码有关吗?

encode.iBitrate = 614400; 这个值我不确定
encode.iYUVConvert = 5; 这个也不明白什么意思,还有这个encode.iColorFormat = 0;
因为现在写的DEMO读取的是一个本地H264文件.

    public BVPU_VideoControl_Encode getEncode() {
        BVPU_VideoControl_Encode encode = new BVPU_VideoControl_Encode();
        encode.iBitrate = 614400;
        encode.iFramerate = 25;
        encode.iColorFormat = 0;
        encode.iHeight = 720;
        encode.iWidth = 1280;
        encode.iYUVConvert = 5;
        return encode;
    }



author: eviicam    time: 2017-6-12 16:38
国士无双 post on2017-6-12 15:49
log不全,麻烦把下面的调用栈打印信息贴出来

已经贴出来了,麻烦看下
author: 国士无双    time: 2017-6-12 17:05
是yuv的一种格式,具体处理看下MPULoadConfig文件中loadDefMobileColorFormat()处理逻辑,不同机型的类型不一样,还有log文件下面还有fatal的具体信息打印吧
author: 国士无双    time: 2017-6-12 17:11
还有InputVideoData传入的是NV21的原始数据,不是264编码后的数据
author: eviicam    time: 2017-6-12 17:24
我传入的不是264编码后的数据,传的是YUV420P,。。。InputVideoData传入的必需是NV21格式 ,是吗?
author: eviicam    time: 2017-6-12 18:49
目前的SDK是否可以支持YUV420P的数据格式
author: xuwei    time: 2017-6-12 19:25
目前这个接口只是只支持NV21格式的
author: eviicam    time: 2017-6-14 11:55
app接收到client请求后调用inviteAV()方法就报下面的错误。

public void inviteAV(int cameraIndex,int dir,BVPU_VideoControl_Encode control){
        JNIMessage message = new JNIMessage();
        message.addStrParam(JNIMessage.Key.JNIMESSAGE_KEY_S_ID.getName(),
                "invite.av");
        message.addIntParam(JNIMessage.Key.JNIMESSAGE_KEY_I_MEDIADIR.getName(),
                dir);
        message.addIntParam(JNIMessage.Key.JNIMESSAGE_KEY_I_TOKEN.getName(),
                cameraIndex);
        message.setObj(control);
        BVPU.PostMessageToNative(message);
    }


06-14 11:54:26.501 17493-18389/com.icare.siteenforcementrecorder A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xcf800000 in tid 18389 (rcementrecorder)
06-14 11:54:27.221 4072-4072/? E/audit: type=1701 msg=audit(1497412467.221:1171): auid=4294967295 uid=10376 gid=10376 ses=4294967295 subj=u:r:untrusted_app:s0 pid=18389 comm="rcementrecorder" reason="memory violation" sig=11
06-14 11:54:27.261 3925-18413/? E/android.os.Debug: ro.product_ship = true
06-14 11:54:27.261 3925-18413/? E/android.os.Debug: ro.debug_level = 0x4f4c
06-14 11:54:27.391 3925-4034/? E/InputDispatcher: channel ~ Channel is unrecoverably broken and will be disposed!
06-14 11:54:27.391 3925-4034/? E/InputDispatcher: channel ~ Channel is unrecoverably broken and will be disposed!
06-14 11:54:27.441 25040-4277/? E/OMXNodeInstance: !!! Observer died. Quickly, do something, ... anything...
06-14 11:54:27.461 3925-4223/? E/ActivityManager: checkUser: useridlist=null, currentuser=0
06-14 11:54:27.461 3925-4223/? E/ActivityManager: checkUser: useridlist=null, currentuser=0
06-14 11:54:27.461 3925-4223/? E/ActivityManager: checkUser: useridlist=null, currentuser=0
06-14 11:54:27.461 3925-4223/? E/ActivityManager: checkUser: useridlist=null, currentuser=0
06-14 11:54:27.471 18425-18425/? E/Zygote: MountEmulatedStorage()
06-14 11:54:27.471 18425-18425/? E/Zygote: v2
06-14 11:54:27.471 18425-18425/? E/Zygote: accessInfo : 0
06-14 11:54:27.481 18425-18425/? E/SELinux: [DEBUG] get_category: variable seinfo: default sensitivity: NULL, cateogry: NULL



author: 国士无双    time: 2017-6-14 12:17
这个要你自己检查传入参数填的是否正确,仅上面贴的信息没法定位问题
author: eviicam    time: 2017-6-14 13:23
可以说清楚些吗?哪个参数传的有问题?
是inviteAV(int cameraIndex,int dir,BVPU_VideoControl_Encode control)这个函数的参数吗?
cameraIndex = 2
dir = 5
control = iWidth=432,iHeight=240,iBitrate=614400,iFramerate=25,iColorFormat=0,iYUVConvert=5

cameraIndex的值我是写死的2,control里的iBitrate ,iFramerate,iColorFormat,iYUVConvert也是写死的

我的应用场景是从执法仪读取到的数据,通过BVPU.InputVideoData推到服务器,所以iBitrate,iFramerate都不是固定。


author: eviicam    time: 2017-6-14 14:00
cameraIndex的取值是以下几种吗?
        public static final int CAMERA_TYPE_PHONE = 0;
        public static final int CAMERA_TYPE_USB = 1;
        public static final int CAMERA_TYPE_WIRELESS = 2;
        public static final int CAMERA_TYPE_COUNT = 3;

调inviteAV(int cameraIndex,int dir,BVPU_VideoControl_Encode control)的时候cameraIndex传3进去,APP就没有崩溃,但是SmartEye接收不到数据
author: 国士无双    time: 2017-6-14 15:05
cameraIndex底层对应是1-4,前置,后置,wifi,usb。dir=5是音视频发送,底层会打开相应音视频编码器,上层有调用InputAudioData塞数据给底层么?建议先只调试音频或者视频
author: eviicam    time: 2017-6-14 15:21
dir为1是只请求video,这个是有smartEye client来决定的 ,是吧?

我的这种使用场景cameraIndex应该取值为几呢?
用ffmpeg从执法仪获取视频流,使用InputVideoData推出到服务器。cameraIndex是对应的wifi类型(取值3)吗?

cameraIndex = 3
dir = 1
control = iWidth=432,iHeight=240,iBitrate=614400,iFramerate=25,iColorFormat=0,iYUVConvert=5

红色部分为参数传给inviteAV(int cameraIndex,int dir,BVPU_VideoControl_Encode control),app没有奔溃,
但是smartEye client收不到数据,是为什么呢?可以看下我的截图


author: 国士无双    time: 2017-6-14 15:42
视频发送dir应该填1。填了音频发送,但没有传音频数据肯定有问题的。还有cameraindex指的是摄像头类型,跟传输方式无关,打开的是手机的前置摄像头填的就是1,后置摄像头就是2。3是wifi摄像头,不同类型的摄像头对应的底层取流方式不同,InputVideoData应该填前置或者后置。
author: eviicam    time: 2017-6-16 09:57
你好,操作SmartEye Client,电子地图的时候, 为什么我app 端收到invite.gps对应的JNIMESSAGE_KEY_I_MEDIADIR的值一直是0呢?

login的时候 serverParam.bGPSEnable的值是1

if ("invite.gps".equals(type)) {
            int avDirGps =jniMessage.getIntParam(JNIMessage.Key.JNIMESSAGE_KEY_I_MEDIADIR.getName(), 0);
            Log.i("test_mpu","auth--->type = "+type+"----avDirGps ="+avDirGps);//avDirGps打印出来总是0

openDialog(avDirGps);
}else{
closeDialog();
}
author: besovideo    time: 2017-6-16 10:54
请先确认下,前面的问题是否都OK了?
author: eviicam    time: 2017-6-16 11:10
你说的是推流吗?可以观看了,现在在上报GPS info,一直上报不了,设备login是不是需要你们那边手动添加到设备列表里啊?为什么我登录成功了,在SmartEye里看不到我的设备呢?
author: eviicam    time: 2017-6-16 11:51
请问地图,如果在国外是否可以切换成Google地图
author: besovideo    time: 2017-6-16 14:31
你需要是管理员才能看到设备。自建服务器即可。
可以切换google地图,在smarteye client里面切换。
author: eviicam    time: 2017-6-16 15:02
有的安卓手机在认证时会显示认证失败,请问之个是什么原因。
author: besovideo    time: 2017-6-16 15:36
默认是2周的免费试用期,过期就认证失败无法使用了。
可在认证界面连续点击屏幕6次,会弹出认证界面,点击获取ID,把获取到的ID告诉我们即可。

author: eviicam    time: 2017-6-17 14:45
我的ID是3859,请帮助处理一下
author: besovideo    time: 2017-6-17 18:15
好了,认证好了。
author: eviicam    time: 2017-6-19 10:03
SAMRT EYE监控器经常出现地图初始化失败是什么原因,出现概率很高
author: besovideo    time: 2017-6-19 10:52
WINDOWS PC的IE内核要高于IE6,此外,电脑要确保联网,可直接访问百度地图。

author: eviicam    time: 2017-6-21 10:29
besovideo post on2017-6-19 10:52
WINDOWS PC的IE内核要高于IE6,此外,电脑要确保联网,可直接访问百度地图。

上面的条件都满足,还是会出现,还请帮助分析一下原因,是否有新版本的SMARTEYE更新
author: besovideo    time: 2017-6-21 11:03
smarteye 都是可以在线升级的。您试试。
author: eviicam    time: 2017-6-22 18:55
请问以下错误信息是什么问题:
[OMX.qcom.video.encoder.avc] color format 19 is not supported
author: eviicam    time: 2017-6-22 19:49
在帮助激活一个测试账号,3937,谢谢
author: eviicam    time: 2017-6-22 20:20
INPUTGPSDATA 要求多久传一次位置信息
author: besovideo    time: 2017-6-23 09:50
是可以用平台-管理器进行设定的。
author: eviicam    time: 2017-6-23 09:57
你好,导入的GPS位置存在偏差,请问在如何修正,MPU的SDK里面是否有相关接口可以调用。
author: besovideo    time: 2017-6-23 10:06
GPS标准的偏差8米左右,这个是硬件决定的,与我们软件无关。
我们用其他的硬件,GPS偏差没问题的。





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