工作需要對(duì)某運(yùn)動(dòng)物體進(jìn)行實(shí)時(shí)監(jiān)控,有期采用mjpeg-streamer進(jìn)行測(cè)試通過(guò)。為了能更全面的對(duì)物體實(shí)施跟蹤查看考慮通過(guò)四機(jī)位切換方式進(jìn)行處理。為了方便操作及維護(hù)決定采用Docker進(jìn)行安裝部署。
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.啟動(dòng)
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
- 這里需要注意的是四攝像頭不能同時(shí)啟動(dòng)(假死,具體原因暫未查找)
- 多攝像頭使用時(shí)不能使用USBHub(網(wǎng)上查閱資料與系統(tǒng)內(nèi)核或hub地址有關(guān))
-
可以通過(guò)Docker start stop切換兩機(jī)位同時(shí)在線