Android下海康实时视频解码

折腾了一个多月,终于调出来了。。。。。首先吐槽一下海康SDK,同时也感谢之。。。

手头有个项目,需要实时抓取海康摄像头,我是在Android下实现的,海康官网上没有Android
SDK,这里友情提醒一下,大家在官网上给海康一个电话就搞定了的。。。我手头有,但既然海康不放网页上,要让自己索取,那我也就不乱上传了,尊重海康
吧。。。反正一个400 ,约2个小时就由到邮件了的。。。

收到SDK后,里面有个Demo,我直接运行Demo是没有问题的,可以在Android下实时预览摄像头,但我需要把实时画面抓取下来传给
OpenCV库,进行后期的图像分析,提供的SDK里面有抓取Bmp、JPEG函数,但是确实如网友说的有延迟,得用方法二(下面附了相关网址,大家详细
可以自己看,我也是参考了它的):http://blog.csdn.net/wanghuiqi2008/article/details/31404571
思路是在RealPlayCallBack中设置DecodeCB解码回调函数,然后在DecodeCB解码回调函数中进行抓图处理,比如把图像数据保存
到二进制文件中,然后就可以播放了。。。这里Decode得到的图像是YV12数据,我的需求是把它转换成RGB,反正都好办了。。。。DecodeCB
函数的说明大家可以看看:

根据上面的说明,很简单了。。。。。但是、但是、但是……坑爹的事来了,我折腾了一个月,总以为自己的程序出错,反复检查DecodeCB回调的第
二个参数“byte[] data“这个图像数组有几十万个元素,但每个元素都是0……也就是说回调里面实际上是没有数据的。。。。

而同时,海康的SDK说明又太”简扼明要“,百度、Google也找不到相关说法,最后我只有给海康SDK发邮件咨询了(就是直接回复给发SDK给
我那个邮箱)。报着尝试的心理(因为有加了几个海康开发群,都说电话不接、邮件不回),居然很快就回复了,经过多次沟通,他给我发了两次SDK更新文件
(要替换so文件)。历经千辛万苦,终于有数据了,然后我无论是Save成YUV文件、转码成RGB都OK了。。。

所以一开始我说,吐槽海康,M的提供个SDK居然不测试么?但是SDK_Support这邮箱还是回复很神速的,所以我也很感谢之。。。

最后可能会有朋友想跟我要SDK开发包,我还是不传了,我也不知海康为何不直接在网站上提供Android的SDK,大家就麻烦一下,去个电话吧,只是会让你报一个单位名称,很简单的。

时间: 2024-10-15 21:01:47

Android下海康实时视频解码的相关文章

Android中的实时(real-time)调度

Linux的线程调度策略中有FIFO和RT的实时调度方法,但是在Android中做了限制,普通用户不能修改线程的调度算法为FIFO和RT,必须ROOT用户才能更改.但问题是程序是以普通用户启动和运行的,因此没有办法在程序里面设置FIFO调度.只能使用chrt命令手动修改. 要实现在程序中自动设置FIFO,必须弄清楚Android里面做了什么限制?在内核kernel/kernel/sched.c中我们发现了sched_setscheduler的系统调用,其调用了static 函数__sched_s

通过Android软件ZAX实时查看Zabbix监控

通过Android软件ZAX实时查看Zabbix监控 前言: 本文转自我的个人博客http://anyisalin.com  这几天在学习Zabbix, 昨天在Google Play上无意间看到一个软件, 可以通过连接Zabbix-Web来实时获取监控的信息 这款软件叫做ZAX 使用前提: 保证你的手机能够连接Zabbix-web 获取软件 下载地址 如果手机有GAPPS, 可以直接通过Google Play安装, 否则按下面给出的方法下载 1. 获取ZAX的下载地址 2.进入某网友自建的站点(

android studio学习---实时布局(Live Layout)

Android Studio中的实时布局功能允许大家在无需将应用程序运行在设备或者模拟器中的前提下,直接预览应用的用户界面.实时布局是一款极为强大的工具,能够帮助开发者节约大量时间.在实时布局的帮助下,查看应用程序用户界面的任务变得轻松而且快捷. 要使用实时布局,我们需要双击对应XML布局文件并选择工作区下方的“Text”标签.接下来选择工作区右侧的“Preview”标签来预览当前布局.我们对XML布局作出的任何变更都会直接反映在右侧的预览窗口当中.大家可以查看下面这幅截图来深入理解这项功能.

Android之AudioTrack实时播放

前言: 其实在Android中录音可以用MediaRecord录音,操作比较简单.但是不能对音频进行处理.考虑到项目中做的是实时语音只能选择AudioRecord进行录音.然后实时播放也只能采用AudioTrack进行播放. 下文为具体实现: public class AudioTrackManager { public static final String TAG = "AudioTrackManager"; private AudioTrack audioTrack; priva

Mac下android 移动网络实时抓包

2G.3G环境,那就必须root进去tcpdump 方式抓. 准备: 一.root CF-auto-root: http://autoroot.chainfire.eu/ 需要清理全部数据,注意备份 不用怕root 后的不安全,root权限由superU管理授权. root 后推荐: 绿色保护.fqrouter.xposed.XPrivacy. 二.软件 - adb 包含在android sdk中,通过USB debug 和android交互工具 - tcpdump 安装一个tcpdump 相关

在 Android Studio 上实时调试数据库( SQLite )

安装 SQLScout 是一个 Android Studio 的插件,通过点击: Setting -> Plugings -> Browse Repositories 1 搜索 SQLScout 安装即可. 要是下载不动,可以到 这里 下载,然后点击 Install plugin from disk 导入. 加载 成功安装后重启 Android Studio,会发现右边的侧边栏出现了 SQLite Exporer,展开后点击「+」会出现三个选项:  Local SQLite Database

Android平台Camera实时滤镜实现方法探讨(十一)--实时美颜滤镜

上一章完毕了对图片的磨皮处理.经过简单算法流程优化,能够达到非常快的速度.可是不能用于实时美颜.经实验,若採用仅仅处理Y信号的方案.半径极限大约是5-10,超过10则明显感受到卡顿.但对于1920X1080的预览分辨率来说.取10为半径非常难得到理想效果.即使将分辨率减少到1280X720也差强人意.所以非常难简单的直接应用在移动端实时处理上. 还有一方面,人物的正常肤,色应该是偏红.所以则会导致人物图像的红色通道偏亮,使红色通道保留的细节成分较少,相比之下.绿色通道保留很多其它细节,所以.普通

android视频双向实时通讯的横竖屏切换

大概的样子是酱婶儿的 点击全屏按钮时执行setRequestedOrientation方法,此时希望得到的结果是surfaceview界面全屏且横屏显示,并且在横屏时Activity没有被重新创建,这样可以保证视频正在通讯时切换屏幕,视频连接仍然正常. 那么在执行setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);之前,将这个Activity的configChanges属性设置为android:configChan

android 入门-Service实时向Activity通过BroadcastReceiver传递数据

引文: http://www.cnblogs.com/linjiqin/p/3147764.html <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layou