python-picamera 3 동영상 촬영
기본
picam_video_ex01.py
import picamera
camera = picamera.PiCamera()
camera.resolution = (640, 480)
camera.start_recording('my_video.h264')
camera.wait_recording(60)
camera.stop_recording()
포맷 조정
picam_video_ex02.py
from io import BytesIO
from picamera import PiCamera
stream = BytesIO()
camera = PiCamera()
camera.resolution = (640, 480)
camera.start_recording(stream, format='h264', quality=23)
camera.wait_recording(15)
camera.stop_recording()
- bitrate
- default: 17000000 (17Mbps)
- maximum: 25000000 (25Mbps)
- quality
- between 1 (highest quality) and 40 (lowest quality)
- 20~25 적당
여러 파일로 녹화하기
- split_recording('파일명')
- 녹화 중 여러 파일에 저장하기
- record_sequence(파일명 리스트)
- for 문의 시퀀스로 사용
여러 파일에 저장하기
picam_video_ex03.py
from picamera import PiCamera
camera = PiCamera(resolution=(640, 480))
camera.start_recording('1.h264')
camera.wait_recording(5)
for i in range(2, 11):
camera.split_recording('%d.h264' % i)
camera.wait_recording(5)
camera.stop_recording()
여러 파일에 저장하기2
picam_video_ex04.py
from picamera import PiCamera
camera = PiCamera(resolution=(640, 480))
for filename in camera.record_sequence('%d.h264' % i for i in range(1, 11)):
camera.wait_recording(5)
환형 스트림에 녹화하기
- PiCameraCircularIO 클래스
- 동작을 감지하고 동작이 감지 된 비디오 만 디스크에 기록하려는 보안 응용
환형 스트림에 녹화하기
picam_video_ex05.py
import io
import random
from picamera import PiCamera, PiCameraCircularIO
def motion_detected():
# Randomly return True (like a fake motion detection routine)
return random.randint(0, 10) == 0
camera = PiCamera()
stream = PiCameraCircularIO(camera, seconds=20)
camera.start_recording(stream, format='h264')
try:
while True:
camera.wait_recording(1)
if motion_detected():
# 동작이 감지됬다면 10초간 녹화하여 디스크에 스트림을 기록
camera.wait_recording(10)
stream.copy_to('motion.h264') # 스트림을 파일로 저장하기
finally:
camera.stop_recording()
환형 스트림에 녹화하기 - 초음파 센서
picam_video_ex05_2
from gpiozero import DistanceSensor
import io
import random
from picamera import PiCamera, PiCameraCircularIO
sensor = DistanceSensor(23, 24)
def motion_detected():
return sensor.distance <= 0.2
camera = PiCamera()
stream = PiCameraCircularIO(camera, seconds=20)
camera.start_recording(stream, format='h264')
try:
while True:
camera.wait_recording(1)
if motion_detected():
print('motion detected')
camera.start_preview()
# 동작이 감지됬다면 10초간 녹화하여 디스크에 스트림을 기록
camera.wait_recording(10)
camera.stop_preview()
stream.copy_to('motion.h264') # 스트림을 파일로 저장하기
finally:
camera.stop_recording()
'IoT 디바이스 활용 > Raspberry Pi' 카테고리의 다른 글
Raspberry Pi - 카카오 음성합성, 음성인식 (0) | 2020.10.19 |
---|---|
Raspberry Pi - python-picamera - 이미지 프로세싱 (picam.py) (0) | 2020.10.19 |
Raspberry Pi - python-picamera - 이미지 캡처 (0) | 2020.10.19 |
Raspberry Pi - python-picamera (0) | 2020.10.19 |
Raspberry Pi - Pi Camera (0) | 2020.10.19 |
댓글