映美金工业摄像头(Imaging Source)Linux对接 —— Java版

任务

描述:通过Java代码,能够在Linux-Ubuntu16、JDK8环境下正常运行 映美金工业摄像头,完成简易的UI界面,能够观看摄像头拍摄捕捉的图像,并且完成照相功能。

原因:由于 映美金工业(Imaging Source)里提供有Linux下较多的lib/demo,但是唯独没有java版本,故写一个java版本。

源码

gitee:https://gitee.com/walty/XEnode

所需Lib

除JDK8外,还需要:

1)The Imaging Source Libs (github)

https://github.com/TheImagingSource/tiscamera

该lib主要为了配置 tcambin 运行环境,tcambin可以对接到Imaging摄像头(可以视之为 驱动),其次会下载/安装 gstreamer环境(该lib会提供安装过程、在make该lib过程中会有安装gstreamer环境)。

2)Gstreamer-java (packaged)

https://github.com/gstreamer-java

该lib主要为了能够让java调用到gstreamer,并且将完成java与gstreamer之间的数据交互

关键命令与解析

关键命令

gst-launch-1.0 tcambin name=src Exposure_Auto=false ! capsfilter caps=video/x-raw,width=640,height=480 ! tee name=t t. ! queue ! valve name=valve ! videoconvert ! jpegenc ! multifilesink name=filesink post-messages=true location=/home/walty/Pictures/image-%d.jpg t. ! queue ! videoconvert ! appsink name=appsink

由于java中已经封装好gstreamer,所以不需要再次写 gst-launch-1.0

所以关键命令为(该命令保存在 源码的 config/config.properties)

tcambin name=src Exposure_Auto=false ! capsfilter caps=video/x-raw,width=640,height=480 ! tee name=t t. ! queue ! valve name=valve ! videoconvert ! jpegenc ! multifilesink name=filesink post-messages=true location=/home/walty/Pictures/image-%d.jpg t. ! queue ! videoconvert ! appsink name=appsink

1、tcambin: 用于对接imaging source 旗下的摄像头产品。

    将其命名为src,将自动曝光功能关闭

2、capsfilter : 是摄像头拍摄图像的规格,不同摄像头有不同的规格,with height如果设置的不是按照摄像头规格设置的,会出现黑屏的现象。

3、tee : 将捕捉到的图像多线程输出 (此处为双线程输出),即多管道输出

    将其命名为t

4、queue : 管道1

    将tcambin捕捉到的视频对应输出给queue,该管道中包含有 valve、videoconvert、jpegenc、mutifilesink

5、valve :缓存

    将其命名为 valve

6、videoconver : 视频转换对应规格

7、jpegenc : 编码方式为 jpeg编码方式(即 .jpg文件)

8、multifilesink : 保存文件

    将其命名为 filesink,并设置location 保存路径。

9、quque : 管道2

    将tcambin捕捉到的视频对应输出给queue,该管道中包含有 videoconvert 、 appsink

10、videoconvert : 视频转换

11、appsink : 该sink是 gstreamer-java 提供的sink,通过该sink,可以将视频绘制在java的swing-panel上

感谢

想了解更多关于gstreamer,可以关注该大神:
GStreamer基础教程07——多线程和Pad的有效性

The Imaging Source Libs (github)

https://github.com/TheImagingSource/tiscamera

Gstreamer-java (packaged)

https://github.com/gstreamer-java

猜你喜欢

转载自blog.csdn.net/qq_27307641/article/details/80781843