webrtc (5) 썸네일형 리스트형 클라우드 서버에 turn 서버 띄우기 (feat. Google Cloud Platform, CoTurn) 이전 게시글 (https://playdev.tistory.com/13) 을 통해 Mac 에서 간단하게 Turn 서버를 띄우는 기록을 남겼었다. 이후 잠깐의 테스트는 진행했으나 스타벅스와 같은 카페에서 로컬&외부 기기 테스트 (LTE Wifi) 시 원할하지 않아 더는 진행을 못하고 있었다. 이번 기회에 Google Cloud Platform (GCP) 에 신규 인스턴스를 생성하여 세팅했던 기록을 간략히 남겨두려 한다. 여기서는 인스턴스 생성, 도메인, 인증서 발급 등은 생략하고 오로지 Coturn 서버를 세팅하는 데에만 기록을 남긴다. 1. 인스턴스를 하나 생성한다. - 적절하게 스펙을 정하고, 여기서는 테스트용도로 f1-micro (vCPU 1, 614MB 메모리) 를 사용하였다. (월 약 6$) - 네.. 간단하게 turn 서버 띄우기 (mac os) 간단하게 Turn 서버를 띄워보기 위해 알아보던 중 아래 오픈소스를 찾게 되었다. https://github.com/pion/turn GitHub - pion/turn: Pion TURN, an API for building TURN clients and servers Pion TURN, an API for building TURN clients and servers - GitHub - pion/turn: Pion TURN, an API for building TURN clients and servers github.com Go lang 으로 되어있으며, 비교적 어렵지 않게 실행 & 테스트 해볼 수 있어서 기록으로 남기려 한다. 먼저, 해당 프로젝트를 받고 turn/examples/turn-server/.. [NCS] 상담 연결 flow diagram 약 2년 전 WebRTC 라는 기술을 알게 되었고, 해당 기술을 활용한 서비스를 만들어보고 싶어 "비 대면 상담 솔루션" 이라는 의미 (Non-face-to-face counseling solutions) 로 'NCS' 가칭을 두어 프로젝트를 진행해보게 되었다. (당시 afreeca TV, Youtube 등 개인 방송 시스템을 만들까 싶었으나 어쩌다보니 이쪽으로 방향을 잡게 되었다. 이것도 언젠가는...) 항상 느끼는 것이지만, 그때그때 떠오르는대로 코딩을 하다보니 완성도 하기 전에 금방 한계에 부딪히곤 한다. 프로젝트의 방향이 크게 바뀌기도, 생각지 못한 구조적인 이슈에 롤백을 하기도 그렇게 마무리도 못한 채 repository 에 남아있는 프로젝트들이 꽤 존재한다. 그래서 이번에는 흐름을 다시 한 번.. [Janus] janus-pp-rec 를 활용한 파일 변환 Janus 미디어서버는 서버사이드 레코딩을 지원한다. 내부 API 를 통해 레코딩을 시작하면 아래와 같이 파일이 생성되는데 영상 : 파일명-vido.mjr 오디오: 파일명-audio.mjr 데이터 : 파일명-data.mjr 해당 파일은 raw data 로, 몇가지 라이브러리를 설치하여 변환을 해야 일반적인 비디오/오디오 파일이 만들어진다. 정리가 필요하지만, 우선 기록용으로 가볍게 작성하려 한다. 0. update apt-get update 1. janus-pp-rec 설치 apt-get install janus-tools 2. ffmpeg 설치 apt-get install ffmpeg 3. 파일 변환 - 먼저, 아래와 같이 레코딩 된 raw data 를 준비한다. - bash script 를 아래와 같.. Iframe 에서 getUserMedia 가져오기 Janus 미디어 서버를 활용하여 화상 솔루션을 만드는 중에 난관에 부딪혔다. 진행중인 페이지를 레이어팝업 형태로 하여, 보다 유저 친화적(?)인 UI 로 하려다보니 Cross Origin 정책으로 인하여 getUserMedia 를 불러올 수 없었다. 오랜 검색, 또 검색을 통해 삽질을 몇 번 하다가.. 아래와 같은 해결책을 찾게 되어 기록으로 남기고자 한다. * 해결법 위와 같이 iframe 에 allow 옵션을 주어 카메라와 오디오에 접근을 허용하면 언제 그랬냐는 듯 getUserMedia 를 사용할 수 있게 된다. 보안적인 측면에서 과연 이렇게 제공이 되는게 맞을까 싶지만서도... 서비스 제공할 때는 사전에 해당 내용을 잘 명시해야 될 듯 하다. * 관련 설명 allow_list 는 아래 중 하나의.. 이전 1 다음