一种视频采集方法和装置制造方法及图纸

技术编号:9901041 阅读:157 留言:0更新日期:2014-04-10 12:26
本发明专利技术实施方式提出了一种视频采集方法和装置。方法包括:在编程语言框架层中设置摄像头采集类,摄像头采集类继承视频采集底层库,并针对视频采集底层库注册回调函数;摄像头采集类向视频采集底层库发送视频采集命令,视频采集底层库根据视频采集命令采集视频数据;应用回调函数从视频采集底层库获取视频数据,并将视频数据发送到编码器进行视频数据编码。应用本发明专利技术实施方式之后,对于视频数据的采集、编码以及发送,都不再需要经过瓜哇(JAVA)层,而是可以直接在编程语言框架层本地实现,降低了视频数据的复制、拷贝和传送时间,从而提高了视频数据的采集效率。

【技术实现步骤摘要】
一种视频采集方法和装置
本专利技术实施方式涉及信息处理
,更具体地,涉及一种视频采集方法和装置。
技术介绍
视频采集装置如手机、屏蔽电脑和数字电视等一般都具有视频互通的需求。视频互通大都通过视频流的方式实现,其不但能保持视频的连续性,还能确保一定的实时性。然而,视频采集装置,如采用安卓(Android)操作系统的视频采集装置,并没有给出标准接口来实现这种视频流服务。使得使用上述视频采集装置进行视频采集时,视频数据传递过程复杂,视频数据采集效率不高。
技术实现思路
本专利技术实施方式提出一种视频采集方法,从而简化视频数据传递过程,提高视频数据采集效率。本专利技术实施方式还提出一种视频采集装置,从而简化数据数据传递过程,提高视频数据采集效率。本专利技术实施方式的具体方案如下:一种视频采集方法,该方法包括:在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;所述摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。一种视频采集装置,该装置包括设置单元、视频数据采集单元和视频数据编码单元,其中:设置单元,用于在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;视频数据采集单元,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;视频数据编码单元,用于应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。从上述技术方案可以看出,在本专利技术实施方式中,在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;所述摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。由此可见,应用本专利技术实施方式之后,对于视频数据的采集、编码以及发送,都不再需要经过JAVA层,而是可以直接在编程语言框架层本地实现,因此降低了视频数据的复制、拷贝和传送时间,从而提高了视频数据的采集效率。附图说明图1为现有技术的安卓系统软件结构图;图2为基于现有技术的安卓系统软件结构的摄像头系统结构图;图3为现有技术的安卓系统软件结构中,摄像头系统的各个库之间的结构图;图4为根据本专利技术实施方式的安卓系统软件结构的摄像头系统各个库之间的结构图;图5为根据本专利技术实施方式的视频数据采集示意图;图6根据本专利技术实施方式的视频数据采集方法流程图;图7根据本专利技术实施方式的视频数据采集装置结构图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,以下实施方式将以采用安卓系统的视频数据采集装置为例并结合附图对本专利技术作进一步的详细描述。图1为现有技术的安卓系统软件结构图。由图1可见,目前安卓系统软件一般分为四层,分别为Linux内核层、本地框架和Java运行环境层(包括硬件抽象层)、应用程序框架层和应用程序层。其中第一层为Linux内核层,Linux内核层一般包括Linux操作系统和驱动(Linuxkernel),通常由C语言实现。通常情况下,Android核心系统服务依赖于Linux2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型,等等。Linux内核也作为硬件和软件栈之间的抽象层。除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理,等等。第二层为本地框架和Java运行环境(LIBRARIES和ANDROIDRUNTIME)层,该层一般是由C/C++实现。包含C/C++库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。其中:系统C库(libc)是从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库;多媒体库是基于PackerVideo的OpenCore,该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式;SufaceManager为显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合;LibWebCore是一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图;SGL是Skia图形库,底层的2D图形引擎;3Dlibraries是基于OpenGLES1.0API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速;FreeType是位图(bitmap)和矢量(vector)字体显示;Android运行环境(ANDROIDRUNTIME)提供了Java编程语言核心库的大多数功能,由DalvikJava虚拟机和基础的Java类库组成;Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例;Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀名为.dex的Dalvik可执行文件,该格式的文件针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有Java编译器编译,然后通过SDK中的“dx”工具转化为.dex格式由虚拟机执行;Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。第三层是应用程序框架(ANDROIDFRAMEWORK)层。利用该层,在Android系统中,开发人员也可以完全访问核心应用程序所使用的API框架。第四层是应用程序(APPLICATIONS)层,对于该层,其中Android应用程序都是由Java语言编写的。用户开发的Android应用程序和Android的核心应用程序是同一层次的,它们都是基于Android的系统API构建。在Android系统软件结构中,摄像头(Camera)系统设计的主要功能是视频的输入部分,在照相机、摄像头、视频电话等应用中都有所使用。Camera系统包含本地代码和JAVA代码,本地代码的应用编程接口(API)可以提供给两方面调用。一方面,本地代码提供的API通过封装Camera系统的JNI接口到Java类,实现Android照相机等应用;另一方面,本地代码提供的API可以提供给本地代码的其他程序调用,作为视频输入环节来使用。图2为现有技术中Android系统软件结构的摄像头(Camera)系统结构图。如图2所示,应用程序通过封装JNI接口可以启动摄像头,在JAVA层得到所采集的视频数据。然后Java层再调用编码器进行编码。可见,Camera数据(即视频数据)会从内核层转移到本地C框架,然后再到JAVA层的JNI部分,然后又从JNI部分转移到本地C框架进行编码。Camera数据的每次移植都会有数据的一次拷贝。比如:从本地接口到JNI的数据拷贝、从JNI层到本地编本文档来自技高网...
一种视频采集方法和装置

【技术保护点】
一种视频采集方法,其特征在于,该方法包括:在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;所述摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。

【技术特征摘要】
1.一种视频采集方法,其特征在于,该方法包括:在安卓平台的编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;所述摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。2.根据权利要求1所述的视频采集方法,其特征在于,所述在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库包括:在所述编程语言框架层中设置摄像头采集类,所述摄像头采集类通过调用所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h),实现继承视频采集底层库。3.根据权利要求1所述的视频采集方法,其特征在于,所述针对视频采集底层库注册回调函数包括:基于所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h)的回调函数接口设置本地函数;设置所述本地函数为针对所述视频采集底层库的摄像头类的回调函数。4.根据权利要求1所述的视频采集方法,其特征在于,所述摄像头采集类向视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据包括:所述摄像头采集类向所述视频采集底层库发送视频采集命令;视频采集底层库使能摄像头类中的对外接口头文件(Camera.h)调用视频采集开始函数以采集视频数据。5.根据权利要求1所述的视频采集方法,其特征在于,所述应用回调函数从视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码包括:应用所述回调函数从所述视频采集底层库获取视频数据;将所述视频数据发送到预先设置在编程语言框架层的编码器进行视频数据编码。6.根据权利要求1-5中任一项所述的视频采集方法,其特征在于,所述视频采集底层库根据视频采集命令采集视频数据包括:所述视频采集底层库根据所述视频采集命令,应用摄像头硬件服务库libcameraservice.so采集视频数据。7.根据权利要求1-5中任一项所述的视频采集方法,所述视频采集底层库被编译为libui.so库。8.根据权利要求1-5中任一项所述的视频采集方法,其特征在于,该方法进一步包括:瓜哇(Java)框架层应用文件向摄像头应用程序编程接口(API)层发送视频采集命令;摄像头API层将所述视频采集命令发送到设置在所述编程语言框架层中的...

【专利技术属性】
技术研发人员:姬晓翠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1