📌 Intro
goprocam 라이브러리에 많은 함수들이 있는데 그 중 사용해봤던 함수들에 대해 정리하려고 한다.
📌 Method
함수들에 대해 설명하기 전에 아래 코드는 미리 삽입되어 있다는 가정하에 진행하도록 하겠다. 실행 환경은 아래 링크에서 만들어준 가상환경과 같다.
https://krrong.tistory.com/entry/파이썬으로-GoPro-사용하기?category=986877
from goprocam import GoProCamera, constants gopro = GoProCamera.GoPro()
노트북을 고프로의 와이파이에 연결한 뒤 객체를 생성하면 아래 그림과 같이 연결되었다는 메시지가 나온다.
OverView
gopro.overview()
overview()를 이용하여 현재 연결된 고프로의 간단한 개요를 아래 사진과 같이 확인할 수 있다.
현재 모드, 화질과 프레임, 사진이나 동영상을 얼마나 찍었는지 또 얼마나 찍을 수 있는지, 고프로에 대한 간략한 정보까지 확인할 수 있다.
모드 변경
gopro.mode(constants.Mode.PhotoMode) # 사진 촬영 모드
gopro.mode(constants.Mode.VideoMode) # 동영상 촬영 모드
gopro.mode(constants.Mode.MultiShotMode) # 연사 촬영 모드
고프로의 촬영 모드는 타임랩스, 사진촬영, 동영상 촬영으로 총 3가지다.
사진, 동영상 촬영으로 모드를 바꿀 수 있고, 타임랩스로 바꾸는 방법은 더 찾아봐야 한다.
- constants.mode.PhotoMode
사진 촬영 모드로 전환한다. - constants.mode.VideoMode
동영상 촬영 모드로 전환한다. - constants.mode.MultiShotMode
연사 촬영 모드로 전환한다.
비디오 세팅 변경
gopro.video_settings("1080p", "60")
gopro.video_settings("1080p", "30")
video_settings()을 이용하여 촬영 화질과 프레임 수를 바꿀 수 있다.
프레임 수는 24, 30, 60, 120, 240이 있고, 화질은 720, 1080, 2.7k, 4k가 있다.
정확한 이유는 모르겠지만 가끔 화질 변경이 잘 안될 때가 있다.
동영상 촬영
gopro.shoot_video(5)
shoot_video()을 이용하여 동영상 촬영을 할 수 있다. 인자로 주는 숫자만큼의 시간동안 촬영을 진행한다. 만약 인자를 주지 않는다면 멈추지 않고 계속 영상을 촬영한다.
다음은 위 코드를 실행한 결과다.
인자로 준 시간만큼 촬영이 완료되면 링크가 하나 나오는데 이 링크를 타고 들어가면 방금 촬영을 완료한 영상을 볼 수 있다.
미디어 정보 확인
gopro.listMedia(True)
listMedia(True)를 이용하여 현재 고프로 SD카드에 저장되어 있는 미디어들을 볼 수 있다. 다음은 실행 결과 중 일부다.
동영상 화각 변경
gopro.gpControlSet(constants.Video.FOV, constants.Video.Fov.Narrow)
gopro.gpControlSet(constants.Video.FOV, constants.Video.Fov.Linear)
gopro.gpControlSet(constants.Video.FOV, constants.Video.Fov.SuperView)
위 코드를 이용하여 동영상 화각을 변경할 수 있다.
셔터 조작
gopro.getStatus(constants.Status.Status, constants.Status.STATUS.IsRecording)
gopro.shutter(constants.start)
gopro.getStatus(constants.Status.Status, constants.Status.STATUS.IsRecording)
gopro.shutter(constants.stop)
gopro.getStatus()를 이용하여 현재 고프로의 자세한 상태 정보를 알 수 있고 gopro.getStatus(constants.Status.Status, constants.Status.STATUS.IsRecording)를 통해 현재 고프로가 촬영 중인지를 알 수 있다. 만약 촬영 중이라면 1을 촬영 중이 아니라면 0을 출력한다.
gopro.shutter()를 이용하여 고프로의 셔터를 조절할 수 있다. 동영상 모드에서 constants.start를 주면 시작을, constants.stop을 주면 종료를 의미한다. 만약 사진촬영 모드라면 constants.start를 주었을 때 사진이 찍히고 끝이난다.
추가로 getStatus()로 얻을 수 있는 정보들은 아래 사진과 같다.
사진 촬영
gopro.mode(constants.Mode.PhotoMode)
gopro.take_photo()
gopro.take_photo(5)
만약 위 과정을 따라했다면 현재 고프로의 모드는 동영상 촬영 모드일 것이기 때문에 먼저 사진 촬영모드로 변경해준다.
take_photo()를 이용하여 사진 한 장을 촬영할 수 있다. 인자로 아무것도 주지 않으면 1초 후에 사진 한장이 찍힌다. 인자로 5를 주면 타이머가 5초가 되는 것이다. 따라서 5초 후에 사진이 찍히게 된다. 실행 결과는 다음과 같다.
📌 정리
이전 글에 이어서 사용해보지 않았던 함수들에 대해 알아보았다. 이외에도 많은 함수가 있고 다양한 기능이 있는 것 같지만 알아보는데에는 시간이 더 필요할 것 같다.
만약 위 코드를 실행하는데 더 자세한 내용이 필요하다면 참고에 있는 링크를 따라 들어가면 좋을 것 같다.
📌 참고
[1] https://vimeo.com/209079783 (데모영상)