본문 바로가기
정보

휴대폰에서 촬영한 비디오에서 GPS (위치) 정보를 받아 구글맵에 뿌려보기

by 워킹나무 2024. 11. 1.
반응형
반응형

때에 따라 휴대폰에서 촬영된 비디오에서 현재의 위치정보가 어디인지 정보를 받아야하는 경우가 있다. 이번 포스팅에서는 휴대폰에서 촬영된 비디오에서 GPS정보를 얻는 법을 알아보고자 한다. 아이폰에서 테스트를 하였으나 갤럭시에서 촬영된 휴대폰에도 적용할 있다.

 

1.      비디오 촬영전 GPS접근 허용해 놓기.

다음의 순서대로 실행하여 카메라가 사용될때 위치정보가 같이 사용되도록 아이폰에서 설정해주어야 한다:

image0

 

설정-> 개인정보 및 보안-> 위치서비스->카메라 앱->앱을 사용하는 동안 위치서비스 허용으로 설정 바꾸어놓기

 

갤럭시에서도 카메라 앱을 사용할때 위치접근을 허용해 놓을 수 있다.

 

2.      비디오 촬영하기.

비디오 촬영을 한다. 여기서 중요한 것은 GPS정보가 끊임없이 기록되는 것이 아니라, 첫번째 프레임에서 기록된 GPS정보가 메타데이터 (Metadata) 에 담겨지게 된다. 매프레임마다 GPS기록을 원한다면 GPS기록기와 비디오 촬영을 동시에 해야하고 복잡한 후처리과정으로 GPS시간과 비디오 프레인시간을 맞춰주어야 한다. GPS기록을 할수 있는 앱은 'GPS Tracker' 라는 앱이 있다. 이번 포스팅에서는 비디오에서 촬영된 GPS정보만을 가져오기로 한다.

 

여기서 잠깐, Metadat?: 촬영된 비디오 정보의 집합이라고 생각하면된다. 몇시에 촬영됬는지, 화질은 얼마나되었는지, 몇분짜리인지 등등의 정보이고, GPS정보도 여기에 기록이 된다.

3.      비디오를 컴퓨터로 옮기기

비디오 촬영을 하고 나서, 자신이 원하는 방법으로 컴퓨터로 옮겨본다. 나무는 google drive dropbox 비디오를 업로드 하여 옮긴다. 카카오나 라인을 통해 비디오를 옮기면 압축하는 과정에서 비디오의 화질과 유형이 달라지는 경우가 있기 때문이다.

4.      비디오의 metadata 에서 GPS정보 받기

Python 코드를 사용해서 촬영이 시작된 비디오 GPS정보를 가져올수 있다아래의 코드를 사용하면 된다.

from moviepy.editor import VideoFileClip


if __name__ == "__main__":

    from pymediainfo import MediaInfo
    import pandas as pd
    video_path = './interpol.MOV'
    media_info = MediaInfo.parse(video_path)    

    for count,track in enumerate(media_info.tracks):
        # print(track.to_data())
        if track.track_type == 'General':
            print(track.to_data().get('comapplequicktimelocationiso6709'))

위의 코드에서 실행하는건 다음과 같다:
1) 비디오를 불러온다 (MediaInfo.parse함수)

2) metadata에 접근하고, 그중 'General', 즉 가장 전반적인 정보가 담겨있다면 정보를 가져온다.

이 General항목에, GPS정보가 담겨있다.

3) 그중 나무의 아이폰에는 'comapplequicktimelocationiso6709'라는 제목에 GPS정보가 담겨져있는데, 각자 네이밍 (이름) 이 다를수있으므로, 주석처리된 #print (track.to_data())를 사용해서, 자신의 GPS정보가 어떤이름으로 담겨져있는지 확인한다.

4) print를 하면다음과 같은 정보를 출력한다:
+xxx-yyy+zzz

여기서 xxx는 위도값, yyy는 경도값, zzz는 고도값을 순서대로 나타낸다.

5.      받은 GPS정보를 구글에 뿌려보기.

+xxx-yyy+zzz는 저장된 형식이고, 실제로 구글지도에 뿌려보기위해서는 다음과 같이 변환해야주어야한다:

+xxx,-yyy (구글맵에서는 고도를 넣지 않아도 되어서 zzz는생략한다).

 

예를들면, +37.725832-120.130691+22.33이면

37.725832, -120.130691을 구글 맵에 넣어주면 된다.

 

image2

 

 

지금까지 핸드폰에서 촬영된 비디오에서 gps정보를 추츨하여 구글지도에 뿌려보는 방법을 알아보았다. 누군가에게는 도움이 되길 :) 

 

나무의 일상

나무의 일상의 노트 모음. 언젠가 죽기전에 한번 들춰보면 추억이 되려나 :)나무의 일상[2025년도 일상][2024년도 일상] 24년도 한국 방문할 때 먹은, 그리고 또 먹고 싶은 20가지 음식들 (feat. 미국

walkingtree.tistory.com

 

 

공대생의 과거와 현재와 미래

대학원에서 살아남기 대학원에서 살아남기 (3)--첫 번째 연구주제 선정 방법대학원생이라면 누구나 한번쯤은 생각을 한다, 아니 생각을 해야한다. ‘내 인생의 첫 번째 연구 주제는 무엇으로

walkingtree.tistory.com

반응형