工作需要对某运动物体进行实时监控,有期采用mjpeg-streamer进行测试通过。为了能更全面的对物体实施跟踪查看考虑通过四机位切换方式进行处理。为了方便操作及维护决定采用Docker进行安装部署。
1.DockerFile
FROM resin/rpi-raspbian:jessie
MAINTAINER sunsl <sunsl@live.com>
RUN apt-get update && apt-get install -y --no-install-recommends \
git \
imagemagick \
v4l-utils \
build-essential \
libv4l-dev \
libjpeg8-dev \
make
RUN apt-get clean \
&& rm -rf /tmp/* /var/tmp/* \
&& rm -rf /var/lib/apt/lists/*
RUN echo "Asia/Shanghai" > /etc/timezone && \
dpkg-reconfigure -f noninteractive tzdata
git clone https://github.com/SaintGimp/mjpg-streamer
#ADD mjpg-streamer.tar /root
WORKDIR /mjpg-streamer/mjpg-streamer
RUN make USE_LIBV4L2=true clean all
RUN make DESTDIR=/usr install
EXPOSE 8080
CMD mjpg_streamer -i "/usr/lib/input_uvc.so -n -d /dev/video0 -r 1024x768 -f 30" -o "/usr/lib/output_http.so -w /usr/www"
2.生成
$Docker build -t sunsl/mjpeg-server .
3.启动
docker run -d -p 8081:8080 --device=/dev/video0:/dev/video0 --name=demo1 sunsl/mjpg-server
docker run -d -p 8082:8080 --device=/dev/video1:/dev/video0 --name=demo2 sunsl/mjpg-server
#docker run -d -p 8083:8080 --device=/dev/video2:/dev/video0 --name=demo3 sunsl/mjpg-server
#docker run -d -p 8084:8080 --device=/dev/video3:/dev/video0 --name=demo4 sunsl/mjpg-server
- 这里需要注意的是四摄像头不能同时启动(假死,具体原因暂未查找)
- 多摄像头使用时不能使用USBHub(网上查阅资料与系统内核或hub地址有关)
-
可以通过Docker start stop切换两机位同时在线