본문 바로가기
회고록

웹개발 실시간 방송. (Websocket,WEBRTC, RTMP, SRT)

by sehunbang 2025. 3. 7.

실시간 방송을 구현 하면서 배우게 된것들 과 시행 착오들

WebSocket

📌 개념
WebSocket은 클라이언트와 서버 간의 양방향 통신을 가능하게 하는 프로토콜. HTTP 요청처럼 요청-응답 방식이 아니라, 한 번 연결되면 계속 유지되며 실시간 데이터 전송이 가능.

 

TCP 기반으로 동작

https://happyzodiac.tistory.com/73

 

[Spring Boot] WebSocket 실시간 채팅 간단하게 구현하기!

1. 개요 채팅 기능을 구현하기 위해 WebSocket 에 대한 공부를 시작했다. 웹소켓을 왜 사용하는 지, 동작부터 구현까지 정리해보도록 하겠다.(1) HTTP vs WebSocket가장 일반적으로 서버와의 통신은 HTTP

happyzodiac.tistory.com

 

Spring boot 관련 블로그 로는 실시간 채팅만 있고,  실시간 영상통화 같은 자료는 부족함...

 

WEBRTC

📌 개념
WebRTC는 브라우저 간(Peer-to-Peer, P2P) 직접 미디어 및 데이터 스트리밍을 지원하는 기술.

영상 및 음성 데이터를 실시간으로 주고받을 수 있도록 설계.

 

UDP 기반으로 동작 (팩킷 손실 보다 속도를 우선시)

 

서버를 거치지 않고 클라이언트 끼리 실시간 정보를 주고 받는다.

Stun 과 Turn 서버를 사용하여 네트워크 방화벽을 우회하여 ip 를 주고 받고 handshake 한다음 통신이 시작

https://gh402.tistory.com/45

 

[WebRTC] NAT, ICE, STUN, TURN 이란? ( WebRTC를 이해하기 위해 필요한 지식들)

WebRTC를 사용하기 전, 기본적으로 익혀야 할 지식들!! 🌎 NAT(Network Address Translation) '나'는 누구인지 '이름'으로 구별할 수 있듯, 각 기기에도 자신만의 이름이 있다. 그것이 바로 IP이고 이 IP는 고

gh402.tistory.com

 

Stun 은 구글에서 지원 해주는 무료가 있고.

Turn 은 직접 만들던가 (무료 AWS EC2 나 lightsail), 다른 클라우드 결제를 해야한다.

 

처음에는 이 기술을 채택 하였으나, 게임 스트리밍 에 적합하지 않다고 판단.

1. 많은 유저가 유입되면 지연이 급격하게 늘어난다는 단점.

2. 특정 게임은 전체 화면 공유를 하면 화면이 검정색으로 나온다는 단점.

 

RTMP

인터넷 방송 웹에서 가장 많이 쓰는 방법.

저지연(낮은 딜레이) 라이브 스트리밍을 위해 Adobe에서 개발한 프로토콜로, 주로 비디오 스트리밍 전송에 사용.

스트리머는 OBS 같은 툴을 사용.

 

TCP 기반으로 동작

 

현제 아도비 플레시 지원 중단 문제로 보안 문제가 있지만 이미 많은 사이트에서 사용되고 있었기 때문에 커뮤니티가 활발한.....

( YouTube, Facebook, Twitch 등의 라이브 스트리밍 에서 이미 사용중)

 

만드는 방법은 

1. 직접 구현 (AWS)

https://www.youtube.com/watch?v=8mEMS4JIhW0

 

2. AWS MediaLive 사용

https://ap-northeast-2.console.aws.amazon.com/medialive/home?region=ap-northeast-2#/

 

https://ap-northeast-2.console.aws.amazon.com/medialive/home?region=ap-northeast-2#/

 

ap-northeast-2.console.aws.amazon.com

 

 

SRT

RTMP 의 상위호환?

SRT는 인터넷을 통한 저지연(Low Latency) 비디오 전송을 위한 프로토콜. 기존 RTMP보다 보안성과 신뢰성을 강화한 대안으로 주목받고 있다.

 

UDP 기반 (낮은 지연 시간, 빠른 속도)

 

정적이고 고품질 저지연 방송 을 원한다면 채택 할만하다.

 

문제는 자료가 너무 적다는 것이 문제.

 

 

 

'회고록' 카테고리의 다른 글

AWS RTMP 설치 방법 (EC2 or Light Sail) 우번투  (0) 2025.03.08
개인 after 프로젝트 트러블 슈팅 모집.  (0) 2024.06.06
logging (Log4j2)  (1) 2024.04.18
레디스 (Redisson)를 이용한 분산락  (1) 2024.04.12
CQRS  (1) 2024.04.12