티스토리 뷰
핸드폰앱을 활용하여 AHD 카메라의 영상을 실시간으로 받는 과정이 필요하여
라즈베리파이와 스트리밍 서비스를 활용하여 구현하였다.
여기서 중요한 것이 영상화소는 HD급 이상에, 지연시간이 최소화 된 서비스의 구현 이였다.
카메라 영상지연 에는 크게 2가지 경우가 있다.
Time Delay : 처음에 생각해 볼 수 있는 경우로 실제 움직이는 동작과 화면에 나오는 동작과의 시간 차이가 발생하는 경우이다.
Time Lag : 영상 끊김 현상으로 실시간으로 영상이 나오고 있는 경우라도 오래 동작하거나 영상 데이터가 많이 들어오는 경우가 발생하면 끊김 현상이 발생하는 경우가 종종 있었다.
실제 스트리밍 서버를 구현 한 것과
구글링을 통해 얻은 방법들을 비교하여 더 나은 방법으로 택하고자 한다.
1. Motion 활용
1) 설치 명령어
sudo wget https://github.com/Motion-Project/motion/releases/download/release-4.3.1/pi_buster_motion_4.3.1-1_armhf.deb sudo dpkg -i pi_buster_motion_4.3.1-1_armhf.deb
를 통해 설치한다.
2) Motion 의 성능을 좌우하는것은 파라미터의 튜닝이다.
sudo nano /etc/motion/motion.conf 에 들어가서 파라미터 튜닝을 할 수있다.
항상 이 4가지는 고정으로 하였고
- daemon on
- stream_localhost off
- picture_output off
- movie_output off
- framerate 숫자는 20~30 사이로 하여 진행하였다.
- -> 영화관의 framerate가 24 정도이고 20 이상이면 일반적으로 "영상"으로 느끼기에 숫자를 그 사이로 하였다.
3) Daemon 설정
sudo nano /etc/default/motion 으로 들어가서
start_motion_daemon=yes 로 변경한다.
4) 실행 명렁어
sudo service motion start 를 입력한 후
라즈베리파이 주소: 설정한 포트 ( motion.conf 에서 확인가능)
으로 들어가면 카메라의 영상을 http를 통해 확인할 수 있다.
5) 느낀점
파라미터가 워낙 많고,
또 다른 프로그램들 보다 상대적으로 무거운 프로그램이라서
테스트 해 본 여러 프로그램들 중 가장 딜레이가 심하였다.
얼마 사용하지 않고 2번으로 넘어갔다.
2. VLC
VLC 영상 스트리밍을 원래 사용하였으나 딜레이가 심해
다른 방법을 찾아보고자 알아보게 되었다.
3. UV4L
4. mjpg-Streamer
5. Flask 와 Opencv를 활용한 자체 서버
- 플라스크와 OpenCV를 활용한 자체 서버가 딜레이가 가장 적을 것이라 생각했지만
- 실제 육안검사한 결과는 mjpg-Streamer가 가장 딜레이가 적었다
- 다른 방법들도 다 비슷한 딜레이를 가질 것 이라고 생각했지만
- 실제 육안검사한 결과는 각 방법마다 딜레이 차이가 눈으로 볼 수 있을만큼 컸으며,
- 영상의 상황에 따라 딜레이가 나타나는 정도의 차이가 있다는 점도 알 수 있었다.
'공부공부' 카테고리의 다른 글
프로그램 자동 재실행, 초단위 스케줄링 (0) | 2021.04.06 |
---|---|
VLC 영상 스트리밍 (0) | 2020.06.08 |
선형 칼만필터 (0) | 2020.05.09 |
Visual Studio) netsdk1 에러 발생시 (0) | 2020.05.06 |
Mission Planner Tuning (0) | 2020.03.23 |