Dragonboard410c Android USB Camera 使用:mjpg-streamer 移植到Android平台(三)

原创 2017年07月06日 11:30:58

mjpg-streamer移植的android平台也很简单,只要写好Android.mk文件进行编译就行。由于mjpg-streamer是基于jpeg库来处理摄像头数据的,因此在移植mjpg-streamer到android时需确保源代码中包含有jpeg库,否则在编译mjpg-streamer时会报告错误。

下载mjpg-streamer:
https://github.com/chenguangxiang/mjpg-streamer/tree/master/mjpg-streamer-for-android

下载jpeg库:
https://github.com/chenguangxiang/mjpg-streamer/tree/master/jpeg

把mjpg-streamer和jpeg库代码下载下来后放入external目录下即可。如编译报错,请自行查看编译错误信息修改Android.mk文件或插件代码。

下面是我自己编写的Android.mk文件,仅供参考。

LOCAL_PATH:= $(call my-dir)

# build input_control.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/input_control/dynctrl.c \
    plugins/input_control/input_uvc.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/input_control/uvcvideo.h \
    plugins/input_control/uvc_compat.h \
    plugins/input_control/v4l2uvc.h \
    plugins/input_control/dynctrl.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := input_control

include $(BUILD_SHARED_LIBRARY)

# build input_file.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/input_file/input_file.c


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := input_file

include $(BUILD_SHARED_LIBRARY)

# build input_http.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/input_http/misc.c \
    plugins/input_http/mjpg-proxy.c \
    plugins/input_http/input_http.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/input_http/misc.h \
    plugins/input_http/mjpg-proxy.h \
    plugins/input_http/version.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := input_http

include $(BUILD_SHARED_LIBRARY)

# build input_uvc.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    utils.c \
    plugins/input_uvc/v4l2uvc.c \
    plugins/input_uvc/jpeg_utils.c \
    plugins/input_uvc/dynctrl.c \
    plugins/input_uvc/input_uvc.c \


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/input_uvc/huffman.h \
    plugins/input_uvc/uvc_compat.h \
    plugins/input_uvc/v4l2uvc.h \
    plugins/input_uvc/jpeg_utils.h \
    plugins/input_uvc/dynctrl.h \
    ../jpeg/jpeglib.h

#LOCAL_CFLAGS := -O1 -DLINUX -DUSE_LIBV4L2 -D_GNU_SOURCE -Wall -shared -fPIC
LOCAL_CFLAGS := -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_SHARED_LIBRARIES := libjpeg

LOCAL_MODULE := input_uvc

include $(BUILD_SHARED_LIBRARY)

# build output_autofocus.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_autofocus/processJPEG_onlyCenter.c \
    plugins/output_autofocus/output_autofocus.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_autofocus/processJPEG_onlyCenter.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_autofocus

include $(BUILD_SHARED_LIBRARY)

# build output_file.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_file/output_file.c 

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_file/output_file.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_file

include $(BUILD_SHARED_LIBRARY)

# build output_http.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_http/httpd.c \
    plugins/output_http/output_http.c


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_http/httpd.h

LOCAL_CFLAGS := -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_http

include $(BUILD_SHARED_LIBRARY)

# build output_rtsp.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := \
    plugins/output_rtsp/output_rtsp.c


LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \
    plugins/output_rtsp/httpd.h

LOCAL_CFLAGS := -O1 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_rtsp

include $(BUILD_SHARED_LIBRARY)

# build output_udp.so
include $(CLEAR_VARS)

LOCAL_SRC_FILES := plugins/output_udp/output_udp.c

LOCAL_C_INCLUDES := \
    mjpg_streamer.h \
    utils.h \
    plugins/output.h \
    plugins/input.h \

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC

LOCAL_MODULE := output_udp

include $(BUILD_SHARED_LIBRARY)

# build mjpg_streamer
include $(CLEAR_VARS)

LOCAL_MODULE := mjpg_streamer

LOCAL_SRC_FILES := utils.c mjpg_streamer.c

LOCAL_C_INCLUDES := utils.h mjpg_streamer.h

LOCAL_CFLAGS := -O2 -DLINUX -D_GNU_SOURCE -Wall

LOCAL_SHARED_LIBRARIES := libjpeg

include $(BUILD_EXECUTABLE)
版权声明:本文为博主原创文章,欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/cgx090902(未经允许严禁用于商业用途!)

相关文章推荐

使用wm命令修改Dragonboard410c Android的显示分辨率

wm是高通平台(MTK平台类似的命令为am)下对手机分辨率、像素密度、显示区域进行设置的命令。具体如下图:可以看到,wm命令的参数还是比较少的,我们逐条来看下相关命令不同参数的使用:1.wm size...

基于DragonBoard 410c android系统实现红外遥控功能

阅读本文之前,相信大家对Dragonboard410c有了一个大致的了解了,包括对Dragonboard410c的介绍与系统烧写步骤以及系统定制(Android系统定制和linux系统定制)。随着智能...
  • ad3600
  • ad3600
  • 2016年08月05日 17:24
  • 1948

怎么为DragonBoard 410c定制Android系统

上一篇博文《初识DragonBoard 410c》已经为大家简单介绍了DragonBoard 410c这款平台,并且也介绍了Ubuntu系统和Android系统烧写方法。今天,将介绍一下Android...

【DragonBoard 410c 试用体验】android手机远程监控

为了在手机上实现对家庭的监控,首先需要将本地数据传到云端服务器,然后再在手机设备上获取信息。上一节已经完成了前半部分的内容,今天主要完成android上的开发。...

快速下载和编译Dragonboard410c官网最新Android版本

最近刚入手一块Dragonboard410c开发板,准备用这块开发板自己搞搞几个智能家居类的原型玩玩,需要修改源代码的底层驱动,我比较熟悉Android系统,所以按着官方的开发编译文档一步步去弄,中间...

玩转Dragonboard 410c USB摄像头——图像采集及web发布

看完前面几个blog 相信大家已经基本上会用Python脚本在Dragoboard 410c上进行各种关于USB摄像头图像采集的开发了,这里为了进一步让大家能够发挥UBS摄像头的作用,和方便大家在开发...
  • ANDYMFC
  • ANDYMFC
  • 2016年11月01日 17:59
  • 1320

Android平台上从Camera的jpegquality菜单研究JNI接口(三)

Jpeg quality菜单与picture size菜单等有些区别,在该菜单中,调用了JNI接口。第一次接触JNI接口,所以写个小文档,做个记录。...
  • wxzking
  • wxzking
  • 2011年05月17日 08:47
  • 4263

玩转Dragonboard 410c USB摄像头-人脸识别

人脸识别是一个非常酷的技术,在移动支付、安防、娱乐等众多领域有着非常广泛的应用,今天就带大家一起来体验一下如何利用dragonboard 410c来实现人脸识别功能,这里我们使用的是USB摄像头,连接...
  • ANDYMFC
  • ANDYMFC
  • 2016年11月01日 16:41
  • 1420

Android平台Camera实时滤镜实现方法探讨(三)--通过Shader实现YUV转换RBG

通过shader将YUV转换成RGB
  • oShunz
  • oShunz
  • 2015年11月26日 13:58
  • 6713

玩转Dragonboard 410c USB摄像头——实时视频采集

视频采集和显示是很多应用的基础,特别是在DIY自己的创意的过程中,如果增加实时的视频采集和显示,可以让自己的DIY变得更加高大上,之前用C语言和PC机器做视频采集的时候,采用C语言或者java语言,需...
  • ANDYMFC
  • ANDYMFC
  • 2016年10月26日 16:37
  • 835
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Dragonboard410c Android USB Camera 使用:mjpg-streamer 移植到Android平台(三)
举报原因:
原因补充:

(最多只允许输入30个字)