1. Java 与 FFMPEG
FFMPEG 是一个广泛用于媒体处理的库,在Java的世界里,处理视频的能力相当弱,于是有很大需求需要Java 调用 FFMPEG。
Java 调用C 的方式有很多,可以用最原始的JNI方式,也可以JNA方式,还可以是命令行。采用命令行的方式比较简单,不过有很大局限性,尤其是涉及到 视频的处理和分析的时候,比如要取出某个packet,然后进行处理。
这里介绍的是用JavaCPP 调用 ffmpeg 库的方式,而不是命令行模式。
JavaCPP的源码在这里:https://github.com/bytedeco/javacpp
基于JavaCPP的项目
1)JavaCV,是做图形图像的,有人脸识别、增强现实AR 等开源算法,非常不错
项目主页是:https://github.com/bytedeco/javacv2)JavaAV 封装了FFMPEG的java 接口
项目主页:https://github.com/hoary/JavaAV
2. JavaCPP Presets
为了方便使用,JavaCPP下面有个presets项目,主页是 https://github.com/bytedeco/javacpp-presets,将一些常用的项目都编译好了以方便使用。
集成的项目包括:
• OpenCV 2.4.9 http://opencv.org/downloads.html
• FFmpeg 2.3.x http://ffmpeg.org/download.html
• FlyCapture 2.6.x http://ww2.ptgrey.com/sdk/flycap
• libdc1394 2.1.x or 2.2.x http://sourceforge.net/projects/libdc1394/files/
• libfreenect 0.5 https://github.com/OpenKinect/libfreenect
• videoInput 0.200 https://github.com/ofTheo/videoInput/tree/update2013
• ARToolKitPlus 2.3.0 https://launchpad.net/artoolkitplus
• flandmark 1.07 http://cmp.felk.cvut.cz/~uricamic/flandmark/#download
• FFTW 3.3.4 http://www.fftw.org/download.html
• GSL 1.16 http://www.gnu.org/software/gsl/#d