라즈베리파이 Time Lapse

라즈베리파이 카메라 Time Lapse

라즈베리파이 Time Lapse

enter image description here

1. 왜?

유튜브 영상 shorts를 보다가 Time lapse 촬영한 것을 보고
오랜시간 촬영가능한 RPi를 이용해서 하면 어떨까 하는 생각이 듬

2. RPi Camera application

라즈베리파이 카메라 모듈을 사용하는 4가지 applications 이 있음

Name Description
raspistill 사진촬영용 이미지 인코더 사용
raspivid 영상촬영용 영상 인코더 사용
raspiyuv 영상촬영용 인코더 사용안함
raspividyuv 영상촬영용 인코더 사용안함

이 중에서 raspistill 을 사용해서 오랜 시간 동안 촬영해서 영상으로 합치는 time lapse 촬영을 해볼려고 함

테스트는 RPi Zero를 사용하고 카메라는 RPi 전용 기본 카메라 V3 카메라 모듈을 사용
( 해상도가 높은 HQ Camera 4056 x 3040 가 있으나 가격이 비쌈)

우선 소프트웨어를 최신으로 업데이트 해주고 raspi-config를 실행해서
Interfacing Options - Camera Enable 설정

sudo apt update
sudo raspi-config

설정이 완료되었으면 테스트 촬영

raspistill -v -o test.jpg

라즈베리파이 공홈에서 문서를 통해 아래와 같은 옵션이 있다는 것을 확인할 수 있음
https://www.raspberrypi.org/documentation/raspbian/applications/camera.md

Option Description
–width, -w 이미지 width
–height, -h 이미지 height
–quality, -q JPEG Quality <0 to 100>
–raw, -r raw Bayer 데이터 저장
–output, -o 출력 파일 이름
–timeout, -t 촬영 종료 시간 설정 기본값 5000ms
–timelapse, -tl 타임랩스 모드 시간은 촬영 간격
–timeout, -t 촬영 종료 시간 설정 기본값 5000ms

실재 촬영시에는 카메라 최대 해상도로 자동설정 됨
일단 문서상 테스트 촬영

raspistill -t 30000 -tl 2000 -o image%04d.jpg

스틸촬영을 30000ms 이후 중단하도록 하고 2000ms 마다 한 장씩 촬영하여 image0000.jpg로 시작하는 파일을 순서대로 만들어냄

3. Crontab 활용 장시간 주기적인 촬영

오랜 시간 동안 많은 이미지를 취득하려면 위와 같은 방식으로는 어려우므로 리눅스에서 기본 제공하는 crontab을 사용

자동 실행하기 위한 파일을 쉘 스크립트로 만들어줌
rpi_time_lapse.sh

DATE=$(date +"%Y%m%d%H%M")
raspistill -o /home/pi/01_timelapse_test/$DATE.jpg

많은 양을 촬영하고 로그 개념으로도 남기기 위해 시간으로 기록

스크립트를 실행파일로 만들어주고

sudo chmod +x rpi_time_lapse.sh

주기적으로 실행 해주기 위해 crontab을 수정

crontab -e

crontab 에서 5분마다 촬영하도록 아래와 같이 추가

*/5 * * * * /home/pi/rpi_time_lapse.sh 2>&1

2>&1 은 에러메시지나 피드백 안받겠다는 거임

4. 여러 JPG를 영상으로 만들기

촬영이 다 끝난 후 jpg 이미지들을 영상으로 만들기 위해서 ffmpeg가 필요한데 rpi zero에서는 너무 오래 걸려서 안되고 라즈베리파이 3B+나 라즈베리파이4 이상을 추천

sudo apt install ffmpeg

RPi에서 영상만들기가 힘들면 ffmpeg가 있는 PC에서 처리할 수 있게 JPG 파일들을 SFTP 와 같은 네트웍으로 복사해오면 됨

ffmpeg가 설치되었다는 가정으로

ffmpeg -r 10 -f image2 -pattern_type glob -i '2021*.jpg' -s 1920x1080 -vcodec libx264 timelapse.mp4
  • -r 10 출력 비디오 파일 프레임(Hz)으로 초당 10프레임 설정
  • -f image2 패턴으로 지정된 이미지 파일 목록 설정
  • -pattern_type glob 와일드 카드(*) 패턴으로 파일 이름 해석
  • -i '2021*.jpg' 입력파일 사양
  • -s 1920x1080 1920x1080 해상도로 영상 저장
  • -vcodec libx264 소프트웨어 x264로 인코더 사용
  • timelapse.mp4 출력파일 이름

위와 같이하면 영상을 하나 만들 수 있음

5. 끝?

테스트 영상으로 허브 식물 발아 하는거 촬영한 것
할려고 하였으나 4일째 발아 안하는 중…
알아보니 초보가 하기에는 허브 식물은 어려운 식물 중 하나 ㅠ 쉣…
발아 잘되면 장기 프로젝트로 식물이나 키워볼까 생각 중


댓글 쓰기

0 댓글