Trikang
스마트폰에서 기록한 영상 실시간 스트리밍으로 파이썬에서 읽어오기 - 1. 전략 선택 본문
우리가 제작하는 드론에서 영상을 실시간으로 전송받을 필요가 있었고, 라즈베리파이에 카메라를 달고 LTE 모뎀을 통해 전송받는 시스템을 구축하기 전에 빠르게 영상처리를 해볼 필요가 있었다. 따라서 스마트폰을 이용해서 영상을 받아온 후, 영상처리를 시도해봤다.
유튜브 Live
처음에는 유튜브 모바일 스트리밍을 통해 파이썬에서 읽어오려고 했음(너무 날먹이긴 하지만 ㅎㅎ). 그러나 모바일 스트리밍을 하려면 구독자 1000명 이상이 확보되어야 한다고 정책이 바뀌어서 실패
트위치
공개 방송밖에 안됨..
Larix Broadcaster - Dolby.io
Larix 앱을 통해 영상을 송출할 수 있었다. 얘가 rtmp나 webrtc 프로토콜 등을 이용해 서버에 영상을 전송하면, 서버에서 해당 프로토콜에 맞게 영상을 수신하고 최종 사용자에게 전달하기 위한 형태로 영상을 가공한다. 스트리밍 서비스로 처음에는 Dolby.io로 선택했고, 서버에 영상을 수신하고 웹 플레이어로 재생하는 것 까지는 성공했다.
그러나 파이썬에서 영상을 따오기 위해서 필요한 m3u8 주소나 여타 링크를 받는 데에는 실패했다. 클라이언트용 SDK도 공개되어 있었기에 시간적 여유가 충분히 있었으면 코드를 분석해서 받아올 방법을 연구해볼 수 있었으나, 당장 결과물을 내야했기에 그렇게 하지 못했다.
Larix Broadcaster - AWS Interactive Video Service
그래서 찾은 해법이 IVS를 이용하는 것.
https://aws.amazon.com/ko/ivs/
Larix에서 rtmp 프로토콜을 통해 촬영된 영상을 얘네한테 넘겨주면, 애네가 비디오 인코딩을 거쳐 만들어진 playback 주소를 통해 영상을 쏴줌. 프리티어 조건을 지키기 위해서는 몇 가지 제약사항이 있긴하다. SD 화질까지만 output이 가능하고, 영상을 저장하기 위해 사용할 수 있는 s3의 프리티어 용량도 5gb까지이기에, 사실상 촬영 영상을 한 두번 녹화하면 벌써 프리티어 제약 범위를 넘어설 것으로 예상한다.
따라서 해당 솔루션을 제대로 사용하기 위해서는 어느 정도 비용 지출을 예상해야 할듯(너무 당연한 소리지만).
여튼 되기는 된다. 이제 opencv로 해당 영상을 처리해보면 될듯.
추가 코멘트
- MS Azure에서도 Azure Media Services라는 비슷한 서비스를 제공하는 듯. 학생 크레딧을 이용할 수 있다는 장점이 있기에, 얘를 이용해서 다시 구축해보는 것도 나쁘지 않은듯.
'개발 Tip' 카테고리의 다른 글
DJI Thermal jpeg file에서 보정되지 않은 섭씨 온도 얻기 (0) | 2024.10.16 |
---|---|
Docker에 nvidia 컨테이너 설치 후 개발환경 구축하기(ssh 연결 설정 등) (3) | 2024.09.04 |
Apple Silicon Mac에 COLMAP gui 설치하기 (0) | 2024.03.05 |
파이썬 아나콘다 기본 명령어 (0) | 2020.10.23 |
[C#] HashSet과 Dictionary 퍼포먼스 비교 (0) | 2020.07.10 |