CN103716691B - 一种视频采集方法和装置 - Google Patents
一种视频采集方法和装置 Download PDFInfo
- Publication number
- CN103716691B CN103716691B CN201210370674.1A CN201210370674A CN103716691B CN 103716691 B CN103716691 B CN 103716691B CN 201210370674 A CN201210370674 A CN 201210370674A CN 103716691 B CN103716691 B CN 103716691B
- Authority
- CN
- China
- Prior art keywords
- video acquisition
- video
- camera
- video data
- bottom storehouse
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/64—Computer-aided capture of images, e.g. transfer from script file into camera, check of taken image quality, advice or proposal for image composition or decision on when to take image
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/0007—Image acquisition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/10—Architectures or entities
- H04L65/1046—Call controllers; Call servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/85—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using pre-processing or post-processing specially adapted for video compression
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/27—Server based end-user applications
- H04N21/274—Storing end-user multimedia data in response to end-user request, e.g. network recorder
- H04N21/2743—Video hosting of uploaded data from client
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/414—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance
- H04N21/41407—Specialised client platforms, e.g. receiver in car or embedded in a mobile appliance embedded in a portable device, e.g. video client on a mobile phone, PDA, laptop
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/4223—Cameras
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/443—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB
- H04N21/4431—OS processes, e.g. booting an STB, implementing a Java virtual machine in an STB or power management in an STB characterized by the use of Application Program Interface [API] libraries
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Studio Devices (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Closed-Circuit Television Systems (AREA)
Abstract
本发明实施方式提出了一种视频采集方法和装置。方法包括:在编程语言框架层中设置摄像头采集类,摄像头采集类继承视频采集底层库,并针对视频采集底层库注册回调函数;摄像头采集类向视频采集底层库发送视频采集命令,视频采集底层库根据视频采集命令采集视频数据;应用回调函数从视频采集底层库获取视频数据,并将视频数据发送到编码器进行视频数据编码。应用本发明实施方式之后,对于视频数据的采集、编码以及发送,都不再需要经过瓜哇(JAVA)层,而是可以直接在编程语言框架层本地实现,降低了视频数据的复制、拷贝和传送时间,从而提高了视频数据的采集效率。
Description
技术领域
本发明实施方式涉及信息处理技术领域,更具体地,涉及一种视频采集方法和装置。
背景技术
视频采集装置如手机、屏蔽电脑和数字电视等一般都具有视频互通的需求。视频互通大都通过视频流的方式实现,其不但能保持视频的连续性,还能确保一定的实时性。然而,视频采集装置,如采用安卓(Android)操作系统的视频采集装置,并没有给出标准接口来实现这种视频流服务。使得使用上述视频采集装置进行视频采集时,视频数据传递过程复杂,视频数据采集效率不高。
发明内容
本发明实施方式提出一种视频采集方法,从而简化视频数据传递过程,提高视频数据采集效率。
本发明实施方式还提出一种视频采集装置,从而简化数据数据传递过程,提高视频数据采集效率。
本发明实施方式的具体方案如下:
一种视频采集方法,该方法包括:
在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;
所述摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;
应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。
一种视频采集装置,该装置包括设置单元、视频数据采集单元和视频数据编码单元,其中:
设置单元,用于在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;
视频数据采集单元,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;
视频数据编码单元,用于应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。
从上述技术方案可以看出,在本发明实施方式中,在编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;所述摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。由此可见,应用本发明实施方式之后,对于视频数据的采集、编码以及发送,都不再需要经过JAVA层,而是可以直接在编程语言框架层本地实现,因此降低了视频数据的复制、拷贝和传送时间,从而提高了视频数据的采集效率。
附图说明
图1为现有技术的安卓系统软件结构图;
图2为基于现有技术的安卓系统软件结构的摄像头系统结构图;
图3为现有技术的安卓系统软件结构中,摄像头系统的各个库之间的结构图;
图4为根据本发明实施方式的安卓系统软件结构的摄像头系统各个库之间的结构图;
图5为根据本发明实施方式的视频数据采集示意图;
图6根据本发明实施方式的视频数据采集方法流程图;
图7根据本发明实施方式的视频数据采集装置结构图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,以下实施方式将以采用安卓系统的视频数据采集装置为例并结合附图对本发明作进一步的详细描述。
图1为现有技术的安卓系统软件结构图。
由图1可见,目前安卓系统软件一般分为四层,分别为Linux内核层、本地框架和Java运行环境层(包括硬件抽象层)、应用程序框架层和应用程序层。
其中第一层为Linux内核层,Linux内核层一般包括Linux操作系统和驱动(Linuxkernel),通常由C语言实现。通常情况下,Android核心系统服务依赖于Linux 2.6内核,包括:安全性、内存管理、进程管理、网络协议、驱动模型,等等。Linux内核也作为硬件和软件栈之间的抽象层。除了标准的Linux内核外,Android还增加了内核的驱动程序:Binder(IPC)驱动、显示驱动、输入设备驱动、音频系统驱动、摄像头驱动、WiFi驱动、蓝牙驱动、电源管理,等等。
第二层为本地框架和Java运行环境(LIBRARIES和ANDROID RUNTIME)层,该层一般是由C/C++实现。包含C/C++库,被Android系统中不同组件使用,它们通过Android应用程序框架为开发者进行服务。其中:系统C库(libc)是从BSD继承过来的标准的C系统函数库,专门是为基于嵌入式Linux的设备定制的库;多媒体库是基于PackerVideo的OpenCore,该库支持多种常用的音频、视频格式回放和录制,支持多种媒体格式的编和解码格式;SufaceManager为显示子系统管理器,并且为多个应用程序提供2D和3D图层的无缝融合;LibWebCore是一个最新的Web浏览器引擎,支持Android浏览器,以及一个可嵌入式的Web视图;SGL是Skia图形库,底层的2D图形引擎;3D libraries是基于OpenGL ES1.0 API的实现;该库可以使用硬件3D加速(如果可用),或者使用高度优化的3D软加速;FreeType是位图(bitmap)和矢量(vector)字体显示;Android运行环境(ANDROID RUNTIME)提供了Java编程语言核心库的大多数功能,由Dalvik Java虚拟机和基础的Java类库组成;Dalvik是Android中使用的Java虚拟机,每个Android应用程序都在自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例;Dalvik被设计成一个可以同时高效运行多个虚拟机实例的虚拟系统。执行后缀名为.dex的Dalvik可执行文件,该格式的文件针对小内存使用做出了优化。同时虚拟机是基于寄存器的,所有的类都是有Java编译器编译,然后通过SDK中的“dx”工具转化为.dex格式由虚拟机执行;Dalvik虚拟机依赖于Linux内核的一些功能,比如线程机制和底层内存管理机制。
第三层是应用程序框架(ANDROID FRAMEWORK)层。利用该层,在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层到本地编码之间的数据拷贝,因此这个过程相当耗费CPU,占据了大量的数据拷贝时间,降低了视频数据采集效率。
图3为现有技术中安卓系统软件结构的摄像头系统各个库之间的结构图。
由图3可见,对于摄像头系统各个库:
对于Java框架层,在其中Camera.java是主要实现的文件,提供最上层Camera的应用文件,继承了android上层应用的所有相关内容,更多的是界面的代码实现。
对于Camera的JAVA本地调用层,主要是针对C框架中的函数接口的调用,也包含一些本地函数的实现。
对于C框架层,主要包括Camera底层库,这部分的内容被编译成库libui.so。
对于内核空间层,这部分内容主要包括Camera硬件相关服务部分。这部分内容被编译成库libcameraservice.so。其中:为了实现一个具体功能的Camera,最底层还需要一个硬件相关的Camera库,这个硬件相关的Camera库将被Camera的服务库libcameraservice.so调用。
由此可见,在现有技术的Android系统软件结构的摄像头(Camera)系统结构中,由于数据拷贝需要在Java层和本地框架层之间多次传递,因此具有视频数据采集效率低的缺点。
在本发明实施方式中,为了克服上述缺陷,对类似Android系统软件结构的Camera结构进行了调整。不再把视频编解码的控制和视频采集到数据的控制交给JAVA层,而是在本地实现数据的采集到编码。
具体地,在本发明实施方式中,在采集视频数据之后,直接通过本地代码的API调用得到视频的数据流,然后把视频数据流直接送到编码器做编码。
优选地,还可以对数据编码进行重新的封装,使得编码的API接口更适用于本地层的调用,从而视频数据的采集到编码到发送,都不经过JAVA层,可以提高系统的性能。
图4为根据本发明实施方式的Android系统软件结构的摄像头系统各个库之间的结构图。
如图4所示,在本发明实施方式中,去掉了现有技术中Android原始架构的JAVA本地调用部分,通过继承实现Camera底层库,直接实现针对视频数据的采集以及编码。
基于上述分析,图5为根据本发明实施方式的视频数据采集示意图。
由图5可见,通过在Android平台的编程语言框架层(优选为C框架层)中新建Camera采集类以继承Camera底层库(比如:libui.so)中的Camera类,并注册回调函数到Camera底层库,可以调用接口开始数据采集;然后回调函数得到Camera数据,从而可以直接调用编码器实现编码过程。
由此可见,在本发明实施方式中,省去了现有技术中视频数据从Java本地框架层到Java应用程序层、然后调用编码器的复杂过程,从而简化了视频数据的拷贝和传递,提高了视频采集的效率。
基于上述详细分析,本发明实施方式提出了一种视频数据采集方法。
图6根据本发明实施方式的视频数据采集方法流程图。
如图6所示,该方法包括:
步骤601:在Android平台的编程语言框架层(优选为C框架层)中设置摄像头采集类,摄像头采集类继承视频采集底层库,并针对视频采集底层库注册回调函数。
首先,在摄像头采集的各个库中,视频采集底层库(Libui.so)位于核心位置,它对JNI层提供的接口主要是摄像头(Camera)类。Camera.h是Camera类中对外的接口头文件,Camera类中实现了摄像头的基本操作,例如播放、停止、暂停等。Camera类中的Connect()是一个静态函数,它用于得到一个Camera的实例。在Camera类中,具有设置回调函数的相应函数。为了提供上层使用,可以由上层设置回调函数,而且回调函数可以在这些相应的回调函数中调用。
因此,在这里,可以在安卓平台的C框架层中设置摄像头采集类,所述摄像头采集类通过调用所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h),实现继承视频采集底层库。
而且,可以基于Libui.so的Camera类中的对外接口头文件(Camera.h)的回调函数接口设置本地函数;再设置本地函数为针对所述视频采集底层库的摄像头类的回调函数。
步骤602:所述摄像头采集类向视频采集底层库发送视频采集命令,视频采集底层库根据视频采集命令采集视频数据。
在这里,视频采集底层库根据所述视频采集命令,应用摄像头硬件服务库libcameraservice.so采集视频数据。
步骤603:应用回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。
在这里,可以应用回调函数从所述视频采集底层库获取视频数据;然后将视频数据发送到预先设置在安卓平台的C框架层中的编码器进行视频数据编码。
在一个实施方式中,该方法进一步包括:
瓜哇(Java)框架层应用文件向摄像头应用程序编程接口(API)层发送视频采集命令;摄像头API层将所述视频采集命令发送到C框架层中的所述摄像头采集类。
可以将本发明实施方式应用到各个版本的Android平台之中。示范性地,可以将本发明实施方式应用到:阿童木(Android Beta)、发条机器人(Android 1.0)、纸杯蛋糕(Android 1.5)、甜甜圈(Android 1.6)、松饼(Android 2.0/2.1),冻酸奶(Android 2.2)、姜饼(Android 2.3)、蜂巢(Android 3.0)、冰激凌三明治(Android 4.0)、、果冻豆(JellyBean,Android 4.1)等版本之中。
以上详细罗列了Android平台的具体版本,本领域技术人员可以意识到,本发明实施方式并不局限于上述罗列版本,而还可以适用于其他基于Android软件架构的任意版本之中,也可以适用于其他类似Android系统的其他操作系统的版本之中。
基于上述详细分析,本发明实施方式还提出了一种安卓平台的视频采集装置。
图7根据本发明实施方式的视频数据采集装置结构图。
如图7所示,该装置包括设置单元701、视频数据采集单元702和视频数据编码单元703。其中:
设置单元701,用于在所述安卓平台的编程语言框架层(优选为C框架层)中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;
视频数据采集单元702,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;
视频数据编码单元703,用于应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。
在一个实施方式中,设置单元,用于在所述安卓平台的编程语言框架层(优选为C框架层)中设置摄像头采集类,所述摄像头采集类通过调用所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h),实现继承视频采集底层库。
在一个实施方式中,设置单元,用于基于所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h)的回调函数接口设置本地函数;设置所述本地函数为针对所述视频采集底层库的摄像头类的回调函数。
优选地,视频数据采集单元703,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令;视频采集底层库的摄像头类中的对外接口头文件(Camera.h)调用视频采集开始函数以采集视频数据。
优选地,视频数据编码单元702,用于应用所述回调函数从所述视频采集底层库获取视频数据;将所述视频数据发送到预先设置在安卓平台的C框架层中的编码器进行视频数据编码。
在一个实施方式中,视频数据采集单元703,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令,应用摄像头硬件服务库libcameraservice.so采集视频数据。
进一步,该装置进一步包括视频采集命令接收单元704,其中:
视频采集命令接收单元704,用于使能瓜哇(Java)框架层应用文件向摄像头应用程序编程接口(API)层发送视频采集命令;摄像头API层将所述视频采集命令发送到C框架层中的所述摄像头采集类。
可以将本发明实施方式应用到多种终端上。比如,终端可以包括但是不局限于:功能手机、智能手机、掌上电脑、个人电脑(PC)、平板电脑或个人数字助理(PDA),等等。
以上以Android系统为实例对本发明实施方式进行了详细描述。本领域技术人员可以意识到,还可以将本发明实施方式应用到其它任意智能终端操作系统中。本发明实施方式能够适用的智能终端操作系统包括但是不局限于:Android、iOS、赛班(Symbian)、Windows Phone、黑莓(BlackBerry)OS、Mac OSX,等等。
在将本发明实施方式应用到除Android之外的其它智能终端操作系统时,基于所应用到的智能终端操作系统的具体应用环境和需求,可能会对本发明实施方式有适应性变化,比如:框架名字或方法步骤执行顺序等可能会出现相应的调整。本领域技术人员可以意识到,这些适应性的变化都没有脱离本发明实施方式的保护范围。
实际上,可以通过多种形式来具体实施本发明实施方式所提出的视频采集方法和/或装置。比如,可以遵循一定规范的应用程序接口,将事务提醒装置编写为安装到移动终端中的插件程序,也可以将其封装为应用程序以供用户自行下载使用。当编写为插件程序时,可以将其实施为ocx、dll、cab等多种插件形式。也可以通过Flash插件、RealPlayer插件、MMS插件、MIDI五线谱插件、ActiveX插件等具体技术来实施本发明实施方式所提出的下载任务分配装置。
可以通过指令或指令集存储的储存方式将本发明实施方式所提出的视频采集方法和/或装置存储在各种存储介质上。这些存储介质包括但是不局限于:软盘、光盘、DVD、硬盘、闪存、U盘、CF卡、SD卡、MMC卡、SM卡、记忆棒(Memory Stick)、xD卡等。另外,还可以将本发明实施方式所提出的视频采集方法和/或装置应用到基于闪存(Nand flash)的存储介质中,比如U盘、CF卡、SD卡、SDHC卡、MMC卡、SM卡、记忆棒、xD卡等。
综上所述,在本发明实施方式中,在编程语言框架层中设置摄像头采集类,摄像头采集类继承视频采集底层库,并针对视频采集底层库注册回调函数;摄像头采集类向视频采集底层库发送视频采集命令,视频采集底层库根据视频采集命令采集视频数据;应用回调函数从视频采集底层库获取视频数据,并将视频数据发送到编码器进行视频数据编码。由此可见,应用本发明实施方式之后,对于视频数据的采集、编码以及发送,都不再需要经过JAVA层,而是可以直接在编程语言框架层本地实现,因此降低了视频数据的复制、拷贝和传送时间,从而提高了视频数据的采集效率。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
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层将所述视频采集命令发送到设置在所述编程语言框架层中的所述摄像头采集类。
9.一种视频采集装置,其特征在于,该装置包括设置单元、视频数据采集单元和视频数据编码单元,其中:
设置单元,用于在安卓平台的编程语言框架层中设置摄像头采集类,所述摄像头采集类继承视频采集底层库,并针对所述视频采集底层库注册回调函数;
视频数据采集单元,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令采集视频数据;
视频数据编码单元,用于应用所述回调函数从所述视频采集底层库获取视频数据,并将所述视频数据发送到编码器进行视频数据编码。
10.根据权利要求9所述的视频采集装置,其特征在于,
设置单元,用于在所述编程语言框架层中设置摄像头采集类,所述摄像头采集类通过调用所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h),实现继承视频采集底层库。
11.根据权利要求9所述的视频采集装置,其特征在于,
设置单元,用于基于所述视频采集底层库的摄像头类中的对外接口头文件(Camera.h)的回调函数接口设置本地函数;设置所述本地函数为针对所述视频采集底层库的摄像头类的回调函数。
12.根据权利要求9所述的视频采集装置,其特征在于,
视频数据采集单元,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令;视频采集底层库的摄像头类中的对外接口头文件(Camera.h)调用视频采集开始函数以采集视频数据。
13.根据权利要求9所述的视频采集装置,其特征在于,
视频数据编码单元,用于应用所述回调函数从所述视频采集底层库获取视频数据;将所述视频数据发送到预先设置在编程语言框架层中的编码器进行视频数据编码。
14.根据权利要求9-13中任一项所述的视频采集装置,其特征在于,
视频数据采集单元,用于使能摄像头采集类向所述视频采集底层库发送视频采集命令,视频采集底层库根据所述视频采集命令,应用摄像头硬件服务库libcameraservice.so采集视频数据。
15.根据权利要求9-13中任一项所述的视频采集装置,其特征在于,视频采集底层库被编译为libui.so库。
16.根据权利要求9-13中任一项所述的视频采集装置,其特征在于,该装置进一步包括视频采集命令接收单元,其中:
视频采集命令接收单元,用于使能瓜哇(Java)框架层应用文件向摄像头应用程序编程接口(API)层发送视频采集命令;摄像头API层将所述视频采集命令发送到设置在所述编程语言框架层中的所述摄像头采集类。
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370674.1A CN103716691B (zh) | 2012-09-29 | 2012-09-29 | 一种视频采集方法和装置 |
PCT/CN2013/084154 WO2014048314A1 (zh) | 2012-09-29 | 2013-09-25 | 一种视频采集方法和装置 |
EP13841730.8A EP2903262B1 (en) | 2012-09-29 | 2013-09-25 | Video acquisition method and device |
CA2885114A CA2885114C (en) | 2012-09-29 | 2013-09-25 | Video acquisition method and device |
US14/671,060 US9819858B2 (en) | 2012-09-29 | 2015-03-27 | Video acquisition method and device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210370674.1A CN103716691B (zh) | 2012-09-29 | 2012-09-29 | 一种视频采集方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103716691A CN103716691A (zh) | 2014-04-09 |
CN103716691B true CN103716691B (zh) | 2017-10-27 |
Family
ID=50386998
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210370674.1A Active CN103716691B (zh) | 2012-09-29 | 2012-09-29 | 一种视频采集方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9819858B2 (zh) |
EP (1) | EP2903262B1 (zh) |
CN (1) | CN103716691B (zh) |
CA (1) | CA2885114C (zh) |
WO (1) | WO2014048314A1 (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104967770B (zh) * | 2014-05-14 | 2018-07-10 | 腾讯科技(北京)有限公司 | 视频拍摄方法及装置 |
CN104038731A (zh) * | 2014-05-15 | 2014-09-10 | 塔里木大学 | 一种移动互联网实时视频监控系统 |
CN105376494B (zh) * | 2015-11-30 | 2018-11-23 | 诚迈科技(南京)股份有限公司 | 一种基于安卓系统支持多路usb摄像头的方法 |
CN107295243A (zh) * | 2016-04-05 | 2017-10-24 | 希姆通信息技术(上海)有限公司 | 移动终端采集图像的方法和移动终端 |
CN106250113A (zh) * | 2016-07-18 | 2016-12-21 | 百富计算机技术(深圳)有限公司 | 一种应用开发平台 |
CN106210724B (zh) * | 2016-07-21 | 2020-06-02 | 腾讯科技(深圳)有限公司 | 图片解码方法及装置 |
CN107995524A (zh) * | 2017-12-07 | 2018-05-04 | 郑州云海信息技术有限公司 | 一种连接网络视频服务器的客户端系统及其设计、数据处理方法 |
CN109976836A (zh) * | 2019-01-31 | 2019-07-05 | 中山大学 | 一种获取安卓终端摄像头数据的方法及系统 |
CN112019484B (zh) * | 2019-05-31 | 2024-06-07 | 阿里巴巴集团控股有限公司 | 获取音源数据的方法及相关设备 |
CN112492193B (zh) | 2019-09-12 | 2022-02-18 | 华为技术有限公司 | 一种回调流的处理方法及设备 |
US20210120259A1 (en) * | 2020-12-23 | 2021-04-22 | Intel Corporation | Technologies for memory-efficient video encoding and decoding |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5940610A (en) * | 1995-10-05 | 1999-08-17 | Brooktree Corporation | Using prioritized interrupt callback routines to process different types of multimedia information |
US5940160A (en) * | 1998-03-01 | 1999-08-17 | Shih; Hung-Yu | Spectacles |
US6489973B1 (en) * | 1999-10-04 | 2002-12-03 | Canon Kabushiki Kaisha | Image acquisition architecture |
US7382970B2 (en) * | 2001-03-01 | 2008-06-03 | Sony Corporation | Process control manager for audio/video file system |
JP2003296138A (ja) * | 2002-03-29 | 2003-10-17 | Fuji Electric Co Ltd | 組込み機器用アプリケーションのシミュレートデバッグ方法 |
CN1170232C (zh) * | 2002-10-16 | 2004-10-06 | 西安交通大学 | 基于pci和视觉总线的可重构机器视觉系统 |
CN100375070C (zh) * | 2004-12-31 | 2008-03-12 | 联想(北京)有限公司 | 采用照相手机作为计算机摄像头获取视频数据的方法 |
JP2007317101A (ja) * | 2006-05-29 | 2007-12-06 | Ricoh Co Ltd | 情報処理装置、画像処理装置、画像形成装置及び情報処理プログラム |
US7979264B2 (en) * | 2008-02-26 | 2011-07-12 | Streaming Networks (Pvt) Ltd | System and method for interfacing a media processing apparatus with a computer |
TWI495330B (zh) * | 2010-08-02 | 2015-08-01 | Ncomputing Inc | 有效地串流數位視訊的系統及方法 |
CN102377985A (zh) * | 2010-08-07 | 2012-03-14 | 浙江工业大学 | 移动视频监控系统的媒体模块 |
US20120254759A1 (en) * | 2011-03-31 | 2012-10-04 | Greenberg David S | Browser-based recording of content |
CN102319285B (zh) * | 2011-08-08 | 2013-03-13 | 李熙东 | 一种治疗牛皮癣的外用药及其制备方法 |
KR20130034832A (ko) * | 2011-09-29 | 2013-04-08 | 삼성전자주식회사 | 기능 확장 지원 방법 및 이를 지원하는 단말기 |
CN102547239B (zh) * | 2011-12-29 | 2014-01-29 | 浙江工业大学 | 基于Android移动终端的视频监控系统 |
-
2012
- 2012-09-29 CN CN201210370674.1A patent/CN103716691B/zh active Active
-
2013
- 2013-09-25 CA CA2885114A patent/CA2885114C/en active Active
- 2013-09-25 WO PCT/CN2013/084154 patent/WO2014048314A1/zh active Application Filing
- 2013-09-25 EP EP13841730.8A patent/EP2903262B1/en active Active
-
2015
- 2015-03-27 US US14/671,060 patent/US9819858B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
WO2014048314A1 (zh) | 2014-04-03 |
EP2903262B1 (en) | 2021-11-10 |
EP2903262A1 (en) | 2015-08-05 |
US20150201125A1 (en) | 2015-07-16 |
CA2885114C (en) | 2019-07-16 |
CA2885114A1 (en) | 2014-04-03 |
US9819858B2 (en) | 2017-11-14 |
CN103716691A (zh) | 2014-04-09 |
EP2903262A4 (en) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103716691B (zh) | 一种视频采集方法和装置 | |
CN105519172B (zh) | 用于日志录写数据记录的方法和装置 | |
CN108010112B (zh) | 动画处理方法、装置及存储介质 | |
CN104572411B (zh) | 一种日志数据的处理方法及装置 | |
CN105474125B (zh) | 用于跟踪唤醒锁定使用的技术 | |
CN108536461A (zh) | 资源更新方法、装置、终端及存储介质 | |
CN108605100A (zh) | 用于处理图像的方法和用于支持该方法的电子装置 | |
CN104205109B (zh) | 持续性和弹性的工作者进程 | |
KR102390809B1 (ko) | 영상을 제공하기 위한 방법, 전자 장치 및 저장 매체 | |
CN107436840A (zh) | 应用程序运行性能分析方法、装置及系统 | |
WO2021135838A1 (zh) | 一种页面绘制方法及相关装置 | |
CN108702480A (zh) | 电子设备和用于驱动其显示器的方法 | |
CN109240833A (zh) | 资源配置方法、装置、终端及存储介质 | |
CN106339405A (zh) | 用于显示网络内容的方法和支持其的电子装置 | |
CN110300328A (zh) | 一种视频播放控制方法、装置及可读存储介质 | |
WO2020078136A1 (zh) | 应用下载和发送的方法、装置及系统 | |
CN109542614A (zh) | 资源配置方法、装置、终端及存储介质 | |
CN104007974B (zh) | 一种机器人应用在线仿真和远程验证的系统与方法 | |
CN104346224B (zh) | 使用组页面错误描述符来处理上下文切换和进程终止 | |
CN104021070B (zh) | 一种智能终端软件包测试方法、装置和系统 | |
WO2021104117A1 (zh) | 一种构建应用程序资源包的方法、构建装置及终端设备 | |
KR20170086977A (ko) | 영상 데이터 처리 방법 및 장치 | |
CN108510428A (zh) | 图片绘制方法及相关产品 | |
CN109379548A (zh) | 多媒体录制方法、装置、终端及存储介质 | |
CN108984339A (zh) | 数据恢复方法及相关产品 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |