RPI+ Ubuntu usb 웹캠 연결하기 본문
--------------------------------------------------------
1. mjpg-streamer 다운 and 인스톨
2. 4LV2 camera 코덱 설치
3. ssh 접속, mjpg-streamer 실행
4. ip로 접속, static 말고 stream 실행
5. Python idle로 streaming 영상 불러오기
--------------------------------------------------------
1. mjpg-streamer 다운 and 인스톨
인터넷을 찾아보니 대부분 github에서 오픈소스인 mjpg-streamer를 다운받는다.
git clone https://github.com/jacksonliam/mjpg-streamer.git
sudo apt-get install cmake libjpeg8-dev
-> cmake 와 development version의 libjpeg가 필요하다고 해서 인스톨
sudo apt-get install gcc g++
cd mjpg-streamer-experimental
make distclean
make CMAKE_BUILD_TYPE=Debug
sudo make install
이후 쉘 파일이 있는 경로로 이동, 화질등의 옵션을 수정해서 실행해 줄 수 있다.
cd /mjpg-streamer/mjpg-streamer-experimental/
sudo nano start.sh
2. V4L2 camera 코덱 설치
.만약 카메라에 리눅스용 드라이버가 없다면.. 정상적으로 영상을 받아오지 못한다..
그럴경우 위의 셸 편집기에
sudo modprobe bcm2835-v4l2
를 추가해서 드라이버를 활성화 해주도록 하자
그리고
ls -ltrh /dev/video* 를 통해서 웹캠이 video0 ~ 으로 들어오고 있는지도 확인해준다
다른방법으로는
sudo apt-get install v4l-utils -y
v4l2-ctl --list-devices
가 있다.
3. ssh 접속, mjpg-streamer 실행
ssh device@ip
-> 접속
cd /mjpg-streamer/mjpg-streamer-experimental/
sh start.sh
-> mjpg streamer 실행
다른 방법으로는...
export LD_LIBRARY_PATH=.
./mjpg_streamer -o "output_http.so -w ./www" -i "input_raspicam.so"
4. ip로 접속, static 말고 stream 실행
ip주소로 인터넷 창에 들어가면 스트리밍 영상이 보인다.
처음에는 static > snapshot 으로 나와서, 스트리밍으로 바꿔준다.
( 그래도 영상이 송출되고 있는 중이다 )
5. Python idle로 streaming 영상 불러오기
import cv2
import numpy as np
from urllib.request import urlopen
url = "http://172.16.0.186:8080/?action=stream" #ESP CAM의 영상 스트리밍 주소
stream = urlopen(url)
buffer = b''
while True:
buffer += stream.read(4096)
head = buffer.find(b'\xff\xd8')
end = buffer.find(b'\xff\xd9')
if head > -1 and end > -1:
jpg = buffer[head:end+2]
buffer = buffer[end+2:]
img = cv2.imdecode(np.frombuffer(jpg, dtype=np.uint8), cv2.IMREAD_UNCHANGED)
cv2.imshow("stream", img)
key = cv2.waitKey(1)
if key == ord('q'):
break
cv2.destroyAllWindows()
6. 실행결과
'개인 프로젝트 and 논문 > 딥러닝 자율주행 장난감 만들기' 카테고리의 다른 글
ESP32cam 스트리밍 문제 해결 (0) | 2023.06.13 |
---|---|
라즈베리 파이에서 우분투 서버 ssh 접속 설정하기 (0) | 2022.10.12 |
토이프로젝트 자율주행용 지그 셋업하기 (0) | 2022.10.11 |