AM437x移植mjpeg-streamer
1. libjpeg库移植
1.1)解压jpegsrc.v6b.tar.gz并进入其目录
1.2)配置源码
./configure CC=arm-linux-gnueabihf-gcc –host=arm-linux-gnbueabi –prefix=/usr/local/jpeg –enable-shared –
enable-static(如果提示错误的话,先./configure后make clean之后再重新配置下)
1.3)make编译源码
1.4)make install
这里提示没有那个文目录,所以我们就自己手动去创建,再make install就可以了。
- 移植mjpegstreamer
2.1)解压streamer-code-182.zip并进入其mjpeg-streamer目录
2.2)修改源码
修改plugins/input_uvc/Makfile
修改
CFLAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC
为 CF
LAGS = -O2 -DLINUX -D_GNU_SOURCE -Wall -shared -fPIC -I/usr/local/jpeg/include
修改
(CC) (CFLAGS) -ljpeg -o @inputuvc.cv4l2uvc.lojpegutils.lodynctrl.lo为 (
CC) (CFLAGS)−ljpeg−L/usr/local/jpeg/lib−o @ input_uvc.c v4l2uvc.lo jpeg_utils.lo dynctrl.lo
注:/usr/local/jpeg就是上面移植jpeg库后安装的目录
2.3)编译make CC=arm-linux-gnueabihf-gcc
2.4)将编译好的mjpegstreamer及在源码下的*.so全部拷贝到开发板上
2.5)运行mjpeg_streamer -i “input_uvc.so -d /dev/video2 -r 640x480 -f 30” -o “output_http.so -p 8082 -w /home/www/camwww” 延迟1-2s
./mjpg_streamer –i “input_uvc.so –d /dev/video0 –y –f 10 –q 80” –o
“output_httpd.so –w www - 8080” 延迟低
部分参数含义:
[-i] 输入设置
[-o] 输出设置
[-d] 设置输入设备的路径
[-y] 设置视频流使用 yuv 格式
[-f] 设置视频流的帧数
[-q] 设置视频流的质量百分比
[-w] 设置服务方式是 http
[-p] 设置服务器端口号为 8080
编写驱动脚本(根据自己的实际情况);
!/bin/bash
./mjpg_streamer –i “input_uvc.so –d /dev/video0 –y –f 10 –q 80” –o
“output_httpd.so –w www - 8080”
可以用命令:ls /dev/vodeo* 查看设备号
(注意/dev/video2是摄像头接入开发板时的设备,不同的开发板不一定一样)
2.6)在装好vlc的电脑上运行VLC并输入http://ip/?action=stream,即可播放。