mobile CCTV,mobile surveillance,police body worn cameras

标题: 执法仪安卓底层如何支持OSD的API [打印本页]

author: janeyre    time: 2018-11-14 16:09
标题: 执法仪安卓底层如何支持OSD的API
贵司录像OSD机制会导致待机电流比原生的录像应用大几百mA,现在需要从安卓底层提供OSD的API接口,类似
typedef struct{
int iID;//osd_id_type
    int iPosX, iPosY;/*叠加的坐标*/
    int iEnable;/*是否使能显示,0不显示,1显示*/
    int iFont;/*字体大小*/
    ......
}osd_config_item;

typedef enum{
   osd_id_time,
   osd_id_text1,
   osd_id_text2,
    ......
}osd_id_type;

当iID==osd_id_time,szContent内容无效,OSD自动更新叠加时间,样式如下

int OSDSetting(osd_config_item* item);
返回值为负数,表示错误,0表示成功;

请问,这个函数是放在哪里的?怎么被APK调用?请提供更多支持,谢谢。

author: xuwei    time: 2018-11-14 16:16
方法可以以jar包方式提供,用来配置camera的叠加,主要配置项如osd_config_item中,需要可配置坐标,是否使能以及字体大小和叠加内容,另外需要支持多个osd_config_item的配置
author: janeyre    time: 2019-1-9 11:24
近期我在调试OSD叠加时,有个问题:我在camera底层video recording接口的地方直接添加OSD的叠加内容(比如打上当前时间)。但是验证时,在MPU应用上无效,并没有调用到。而原生的camera应用,录像时能我能看到叠加的OSD内容。所以,MPU在抓取视频调用camera的什么接口?

我是在qualcomm的QCamera2HardwareInterface::video_stream_cb_routine 接口中处理frame数据的。
author: xuwei    time: 2019-1-9 11:31
janeyre post on2019-1-9 11:24
近期我在调试OSD叠加时,有个问题:我在camera底层video recording接口的地方直接添加OSD的叠加内容(比如 ...

camera.startpreview接口中获取NV21的数据
author: janeyre    time: 2019-2-27 14:40
继续讨论吧:
我现在在底层可以 添加 时间水印了,也就是说,我把MPU的所有叠层都off掉,MPU预览/录像都可以看到我添加的水印。但是我还没有按照上面要求封装接口给MPU调用。
我的意思是:能否发一个版本,MPU上层不负责叠层处理的,只负责把参数传给底层(虽然这个封装接口我还无法提供,你可以空操作处理),也就是说假定MPU已经把叠层信息给了底层,由底层来负责。

我要验证我在底层添加水印的方法是否有效,电流是否能改善。
我现在的做法就是在NV21的数据里叠加了我的水印数据的。


author: xuwei    time: 2019-2-27 14:44
janeyre post on2019-2-27 14:40
继续讨论吧:
我现在在底层可以 添加 时间水印了,也就是说,我把MPU的所有叠层都off掉,MPU预览/录像都可 ...

在界面层禁用所有的OSD配置即可
author: besovideo    time: 2019-2-27 15:24
客户说禁用了后电流没明显变化,请问从哪里排查?

author: janeyre    time: 2019-3-1 10:54
没有下文了吗?请问
author: xuwei    time: 2019-3-1 12:22
janeyre post on2019-3-1 10:54
没有下文了吗?请问

排查功耗么,功耗主要是整个流程导致的,
1.调用Camera.startpreview接口获取NV21数据
2.叠加OSD
3.编码
4.网传和写录像
有客户测试过,主要功耗在流程的第一步,后面即使什么也不做,功耗也没有减少多少
author: janeyre    time: 2019-3-1 15:18
这样说的话,并不会因为是否添加OSD而引起功耗的开销? 即使一点OSD都不添加也没有明显降耗?是这样吗?

我上次去合肥,跟黄总谈论MPU功耗太大的问题时,黄总建议我们底层来处理OSD的叠加,说是能降低功耗。我自己实测下来,即使我把MPU所有的OSD叠加都off掉,功耗并没有明显降低,是不是就推翻了黄总的说法?

功耗对我们来说很重要,如果您列举的第二步并没有明显的优化空间,那在第一步还有什么优化办法吗?

author: xuwei    time: 2019-3-1 15:41
janeyre post on2019-3-1 15:18
这样说的话,并不会因为是否添加OSD而引起功耗的开销? 即使一点OSD都不添加也没有明显降耗?是这样吗?

...

如果可以底层解决OSD,那么可以通过系统mediarecord来录像,那么功耗就会很低,但是有个限制就是不能录像同时网传。黄总是从系统mediarecord方面来说的。
author: xuwei    time: 2019-3-1 15:43
janeyre post on2019-3-1 15:18
这样说的话,并不会因为是否添加OSD而引起功耗的开销? 即使一点OSD都不添加也没有明显降耗?是这样吗?

...

使用预览接口,没有什么优化空间。使用mediarecord接口,功耗可以降低很多,但是不能网传,这个需要你们权衡一下
author: janeyre    time: 2019-3-1 15:50
有没有这样的MPU版本,我们对比一下?

如果录像同时不能网传,会带来什么体验问题?能详细一些吗?

我们可以根据实际体验的差异权衡是否用mediarecord接口。mediarecord接口来处理OSD对我来说也是可以实现的。
author: xuwei    time: 2019-3-1 16:17
janeyre post on2019-3-1 15:50
有没有这样的MPU版本,我们对比一下?

如果录像同时不能网传,会带来什么体验问题?能详细一些吗?

就是不能通过客户端来观看设备的实时音视频
author: xuwei    time: 2019-3-1 16:19
xuwei post on2019-3-1 16:17
就是不能通过客户端来观看设备的实时音视频

还有一个问题是mediarecord在录像分段的时候会丢一些数据,这个是执法仪国标不允许的
author: xuwei    time: 2019-3-1 16:20
xuwei post on2019-3-1 16:19
还有一个问题是mediarecord在录像分段的时候会丢一些数据,这个是执法仪国标不允许的

综合多种弊端,我们使用了预览接口方式实现
author: janeyre    time: 2019-3-1 16:26
太狠了吧?!
1. “不能通过客户端来观看设备的实时音视频”,会有多大延时?
2. 丢数据更不能接受了,执法仪讲究的就是数据完整性,甚至要支持预录和延录。还有哪些功能受影响?比如预录延录,ptt,微信?

3. 其他家是怎么实现降电流的?只有这个唯一办法吗?
author: xuwei    time: 2019-3-1 18:16
janeyre post on2019-3-1 16:26
太狠了吧?!
1. “不能通过客户端来观看设备的实时音视频”,会有多大延时?
2. 丢数据更不能接受了,执 ...

不是多大延时,是传输不了,使用系统录像接口时,上层应用程序就获取不到视频流,所以自然无法网传
author: xuwei    time: 2019-3-1 18:17
janeyre post on2019-3-1 16:26
太狠了吧?!
1. “不能通过客户端来观看设备的实时音视频”,会有多大延时?
2. 丢数据更不能接受了,执 ...

其它家一般有系统研发能力的就是是改系统底层,调用非标准接口实现,但这样就只能在定制的系统上运行,不能通用的跑在各种其它安卓设备上了。

author: xuwei    time: 2019-3-1 18:19
janeyre post on2019-3-1 16:26
太狠了吧?!
1. “不能通过客户端来观看设备的实时音视频”,会有多大延时?
2. 丢数据更不能接受了,执 ...

另外一种就是使用更高性能的CPU,因为CPU功耗低,所以总功耗就低,比如高通625,16nm制程的八核处理器
author: xuwei    time: 2019-3-1 18:20
janeyre post on2019-3-1 16:26
太狠了吧?!
1. “不能通过客户端来观看设备的实时音视频”,会有多大延时?
2. 丢数据更不能接受了,执 ...

预录延录使用系统接口也是实现不了的
author: janeyre    time: 2019-3-4 10:15
"其它家一般有系统研发能力的就是是改系统底层,调用非标准接口实现,但这样就只能在定制的系统上运行,不能通用的跑在各种其它安卓设备上了。"

——1)调用非标准接口实现是什么思路?从哪方面改接口?麻烦提供一些细节,我们立刻着手研究。
      2)不通用不是问题,针对不同设备改系统,是可控的,只是要弄清楚改什么接口,从哪里下手?
      3)走预览接口还是录像接口?
      4)不可能用更高处理芯片来做执法仪应用,现在电流问题成为死结了,如果解决不了,案子就很难上市了。


author: xuwei    time: 2019-3-4 10:38
janeyre post on2019-3-4 10:15
"其它家一般有系统研发能力的就是是改系统底层,调用非标准接口实现,但这样就只能在定制的系统上运行,不 ...

我们做应用开发的,对系统底层怎么改不了解,客户的方案商美格做过,他们的研发说可以提供出接口,支持双码流的同时低功耗,但是由于接口不通用,我们就没有继续深入研究过
author: xuwei    time: 2019-3-4 10:39
janeyre post on2019-3-4 10:15
"其它家一般有系统研发能力的就是是改系统底层,调用非标准接口实现,但这样就只能在定制的系统上运行,不 ...

你们目前使用什么CPU?

author: janeyre    time: 2019-3-4 10:49
Qualcomm SDM450平台 —— 1.8 GHz 8核CPU,600 MHz GPU。能力很强了。
author: xuwei    time: 2019-3-4 17:05
janeyre post on2019-3-4 10:49
Qualcomm SDM450平台 —— 1.8 GHz 8核CPU,600 MHz GPU。能力很强了。

可以和625的cpu占用率做个对比测试
author: janeyre    time: 2019-3-6 09:28
现在的结论——除非底层支持双码流和OSD,否则无法降低功耗,是吗?   这个难度就太大了,手机开发平台都没有这块功能,除非是专门的视频监控的开发平台。

没有别的招了吗?
author: admin    time: 2019-3-6 18:17
美格是完全重写了安卓底层代码,工作量巨大。

author: janeyre    time: 2019-3-7 17:48
最后问一下:
如果一定要用双码流来解决功耗问题,又能满足贵司APP的要求,请问贵司有没有对应的接口定义文档?我们也找找资源,看能否完成这些接口设计。

我现在只看到一个帖子讲“同时获取Camera预览和录像视频流”。
https://blog.csdn.net/laisse/article/details/49813633#comments
介绍了如何添加录像视频流,也没有源码。

所以,麻烦提供 贵司需要的接口定义和调用逻辑,我也好找找人帮忙一起攻关。





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