[Kurento] WebRTC 미디어 서버 설치 및 예제

김안나·2022년 4월 5일
0

쿠렌토 미디어 서버 설치는 공식 홈페이지에 잘 기재되어 있으니 순서대로 잘 따라하기만 하면 된다.

서버 환경

Ubuntu 18.04 bionic -> 필자의 서버 환경
Ubuntu 16.04 xenial 
Ubuntu 14.04 trusty -> kurento 에서 지원중단

1. 쿠렌토 저장소 추가

sudo apt-key adv --keyserver keyserver.ubuntu.com:80 --recv-keys 5AFA7A83

터미널에 그대로 입력

sudo tee "/etc/apt/sources.list.d/kurento.list" >/dev/null <<EOF
# Kurento Media Server - Release packages
deb [arch=amd64] http://ubuntu.openvidu.io/6.9.0 bionic kms6
EOF

한줄한줄 그대로 따라 작성
첫번째 줄은 "/etc ~" 에 파일생성 및 아래 입력하는 내용을 입력하겠다는 명령어 이고
두번째줄과 세번째 줄 입력 후 네번째 줄 (EOF) 입력할 시 입력이 완료됩니다.

2. 쿠렌토 설치하기

sudo apt-get update
sudo apt-get install kurento-media-server

패키지 업데이트 후, kurento-media-server을 설치한다.
아래는 공식홈페이지에서 안내하는 명령어

sudo apt-get update && sudo apt-get install --no-install-recommends --yes \
    kurento-media-server

3. 쿠렌토 미디어 서버 시작 & 종료

sudo service kurento-media-server start
sudo service kurento-media-server stop

4. 쿠렌토 설치 확인

$ ps -fC kurento-media-server
UID        PID  PPID  C STIME TTY          TIME CMD
kurento   7688     1  0 13:36 ?        00:00:00 /usr/bin/kurento-media-server

$ sudo netstat -tupln | grep -e kurento -e 8888
tcp6  0  0  :::8888  :::*  LISTEN  7688/kurento-media-

5. 도메인 주소 변경 시

curl \
  --include \
  --header "Connection: Upgrade" \
  --header "Upgrade: websocket" \
  --header "Host: 127.0.0.1:8888" \
  --header "Origin: 127.0.0.1" \
  http://127.0.0.1:8888/kurento

/etc/kurento/kurento.conf.json 파일에서 변경이 가능합니다.

6. 쿠렌토 예제

# 예제를 복제합니다
git clone https://github.com/chapin666/kurento-group-call-node.git

# 복제한 폴더로 이동합니다.
cd kurento-group-call-node

# sfu 방식으로 브랜치 전환
git checkout sfu

# bower 을 다운받는다.
npm install bower -g

# node-module 을 install 함 (get 명령어에 npm install 명령어 기재되어 있음)
npm run get

# ./server/index.js 경로의 주소를 내 서버 주소로 변경해준다.
 
const argv = minimst(process.argv.slice(2), {
    default: {
        as_uri: 'https://localhost:3000',
        ws_uri: 'ws://127.0.0.1:8888/kurento'   // your KMS uri
    }
})

# node 실행 명령어
node index.js

내 경우 aws 인스턴스 내에 설치했기 때문에 kurento 서버에서 사용하고있는 포트넘버를 보안그룹에서 포트포워딩도 함께 진행했다.
그리고 클라이언트 코드를 http 에서 실행하게 될 경우 Navigator.getUserMedia() 에서 에러가 나는데 이는 http 상에서 유저의 미디어를 호출 할 수 없기때문에 https 설정을 해줘야 한다.

profile
끈기와 열정사이

0개의 댓글