1.libjpeg交叉编译
在http://www.ijg.org/上下载jpegsrc.v9d.tar.gz,解压后配置,编译,安装。
./configure CC=/disksdh/shiyu/git_c305x/toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc --prefix=$PWD/_install --host=aarch64-linux-gnu
make
make install
2.编译mjpeg-streamer
下载源码:https://sourceforge.net/p/mjpg-streamer/code/HEAD/tree/
然后进到mjpg-streamer目录,修改makefile中的CC为自已的编译器,同时修改plugins目录下使用到的模块的makefile的CC:
CC = /disksdh/shiyu/git_c305x/toolchain/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc
根据需要编译下列的插件,这里的输入使用uvc,输出使用http:
# define the names and targets of the plugins
PLUGINS = input_uvc.so
PLUGINS += output_file.so
PLUGINS += output_udp.so
PLUGINS += output_http.so
PLUGINS += input_testpicture.so
#PLUGINS += output_autofocus.so
#PLUGINS += input_gspcav1.so
PLUGINS += input_file.so
PLUGINS += output_rtsp.so
# PLUGINS += output_ptp2.so # commented out because it depends on libgphoto
# PLUGINS += input_control.so # commented out because the output_http does it's job
# PLUGINS += input_http.so
# PLUGINS += output_viewer.so # commented out because it depends on SDL
ucv模块依赖之前编译的jpeg库,所以在plugins/input_uvc/Makefile中指定之前编译的库和头文件:
CFLAGS += -I/disksdh/shiyu/github/jpeg-9d/_install/include
CFLAGS += -L/disksdh/shiyu/github/jpeg-9d/_install/lib
3.运行
修改start.sh,指定v4l2设备和分辨率:
./mjpg_streamer -i "./input_uvc.so -d /dev/video0 -r 1920x1080 -y" -o "./output_http.so -w ./www"
然后运行start.sh,运行会报一堆错误不用管:
在浏览器中输入服务的ip和端口即可看到图像: