프로젝트 개요 설명

박근수·2024년 2월 20일
0
post-thumbnail

개요

SSAFY의 프로젝트로 WebRTC를 사용하는 서비스를 개발했습니다.
WebRTC로 확장성있는 프로젝트를 위해서 Peer가 N개의 연결을 만드는 것이 아니라 Media Server를 사용하여 Midea Service를 제공했습니다.
Media Server는 Kurento를 사용했습니다.(KMS)
Signaling Server는 Spring boot로 개발했습니다.

기획

  • 버스킹은 오프라인에서 일어난다.

  • 음악 스트리밍은 온라인에서 일어난다.

  • 버스킹과 음악 스트리밍의 간극을 줄일수는 없을까?

  • 버스킹은 길에서 행인들에게 자신의 노래를 들려주려는 목적이 있다.

  • 음악 스트리밍은 온라인으로 음악을 들려주고 시청자들과 소통하는데 목적이 있다.

  • 본질은 관객들에게 음악을 들려주고 소통하기 위함이다.

  • 온라인과 오프라인에서 오는 차이를 줄이고 온라인에서 오프라인으로 접근할 수 있도록 하자

  • 버스킹은 특정 장소에서 짧지 않은 시간동안 음악을 한다는 특징이 있다. 장소를 옮기지 않는다.

  • 그렇다면 버스킹 장소를 온라인에 공개하고 온라인에서 버스킹을 보다가 맘에 내키면 그 곳으로 이동할 수 있도록 하자.

  • 즉 버스킹의 위치정보를 공개하여 온라인과 오프라인의 간격을 줄이고 버스킹과 스트리밍의 장점을 합쳐보자.

기능

SSAFY 발표회에서 시연보여줬던 내용들입니다!

  1. 메인페이지
  1. 방송하기
  • 해당 기능이 발표회에서 제대로 작동하지 않아서 개인 화면에서 캡쳐했습니다.
    - 방송정보 입력(제목, 해쉬태그, 설명)
    • 위치 정보 공개 동의 (필수)

      방송화면
  1. 시청하기

    • 영상, 음성 지원
  2. 채팅하기

    • 로그인했다면 ID, 로그인하지 않았다면 익명의 사용자
  3. 위치 정보 기반으로 방송중인 스트리밍은 위치 지도에 표시하기

  4. 스트리밍을 했었다면 Short 영상 등록하기

  5. Short 영상에 댓글달기

  6. 사용자 프로필 공개 (방송중이라면 프로필에서 길찾기 버튼으로 방송 찾아)

    • 현재 위치에서 방송중인 위치로 길찾기

아키텍처


EC2 안에 Coturn서버도 있습니다.

개발 구성

  1. Java Spring boot(gradle) - Signaling and Application Server
  2. React - Broswer(Peer)
  3. Kurento - Media Server (Peer)
  4. Coturn - (Stun/Turn Server)
  5. AWS EC2
  6. Docker
profile
개성이 확실한편

0개의 댓글