투케이2K

162. (Aws/Amazon) [KVS] WebRTC 미디어 Direction 속성 sendrecv , sendonly , recvonly , inactive 정리 본문

Aws (Amazon)

162. (Aws/Amazon) [KVS] WebRTC 미디어 Direction 속성 sendrecv , sendonly , recvonly , inactive 정리

투케이2K 2026. 1. 1. 12:07
728x90

[개발 환경 설정]

개발 환경 : Aws / Amazon Web Services

 

[설명 정리]

// --------------------------------------------------------------------------------------
[개발 및 환경]
// --------------------------------------------------------------------------------------

- 인프라 : Aws / Amazon Web Services


- 기술 구분 : Aws / Aws Kinesis Video Streams / KVS / WebRTC


- 사전) WebRTC 설명 : 

  >> WebRTC 란 웹, 애플리케이션, 디바이스 간 중간자 없이 오디오나 영상 미디어를 포착하고 실시간 스트림할 뿐 아니라, 임의의 데이터도 교환할 수 있도록 하는 기술입니다

  >> WebRTC 는 간단한 API 를 통해 웹 브라우저, 모바일 애플리케이션 및 커넥티드 디바이스 간에 실시간 통신을 활성화할 수 있습니다

  >> WebRTC 주요 용어 : 

    - SDP (Session Description Protocol) : 오디오/비디오 코덱, 해상도, 포트 등 스트리밍 정보를 담은 텍스트 포맷
    - Offer / Answer : 통신 연결을 협상하기 위한 SDP 메시지 (초기 연결 설정)
    - ICE (Interactive Connectivity Establishment) : NAT/P2P 환경에서도 연결 가능한 경로(IP, 포트 등)를 찾기 위한 기술
    - Candidate : 가능한 연결 경로 (IP + Port 조합)

  >> WebRTC SDP 오퍼 생성 (뷰어) 및 응답 (마스터) 스트리밍 플로우 : 

    [Viewer → Signaling Server] -- SDP Offer --> [Master] : 뷰어는 마스터로 스트리밍 오퍼 신호 보낸다
    [Master] -- SDP Answer --> [Viewer] : 마스터는 특정 뷰어의 오퍼 신호 확인 후 응답을 보낸다

    [Viewer] -- ICE Candidate --> [Master] : 스트리밍을 할 수 있는 경로 확인
    [Master] -- ICE Candidate --> [Viewer] : 스트리밍을 할 수 있는 경로 확인

    P2P 연결 성립 → 스트리밍 시작

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[설 명]
// --------------------------------------------------------------------------------------

1. WebRTC 에서 sendrecv , sendonly , recvonly , inactive 는 SDP의 미디어 방향(Direction Attribute) 으로 “이 Peer가 해당 미디어를 보내는가 / 받는가” 를 명확히 규정하는 핵심 옵션입니다


2. 미디어 Direction 속성의 기본 개념 : SDP의 각 m-line (media section) 에는 방향 속성이 존재합니다 ✅ (기본값은 sendrecv 입니다)

  >> sendrecv : 보내고 + 받는다 (양방향)

  >> sendonly : 보내기만 한다

  >> recvonly : 받기만 한다

  >> inactive : 송수신 모두 안 함


3. SDP에서 실제 표현 방식 : SDP에서는 다음과 같이 a= 라인으로 표현됩니다 (각 m-line(오디오/비디오)마다 독립적으로 적용됩니다)

  >> 예: sendrecv

    m=video 9 UDP/TLS/RTP/SAVPF 96
    a=sendrecv

  >> 예: recvonly

    m=video 9 UDP/TLS/RTP/SAVPF 96
    a=recvonly


4. Offer / Answer 규칙 (중요 ⭐) : WebRTC는 RFC 3264 / RFC 8829 규칙을 따릅니다

    -------------------------------------------------------
       Offer |  Answer  | 실제 결과
    -------------------------------------------------------
    sendrecv | sendrecv | 양방향
    -------------------------------------------------------
    sendrecv | recvonly | Offer → Answer 방향 단방향
    -------------------------------------------------------
    recvonly | sendrecv | Answer → Offer 방향 단방향
    -------------------------------------------------------
    sendonly | recvonly | 단방향
    -------------------------------------------------------
    recvonly | recvonly | ❌ 의미 없음 (미디어 흐름 없음)
    -------------------------------------------------------


5. 예시) sendrecv vs recvonly 실제 동작 차이 정리 : 📌 Viewer / Monitor / 관제 앱에 recvonly 필수

  >> sendrecv

    - RTP 송신 + 수신
    - SSRC 생성됨
    - Encoder 활성화
    - Bandwidth ↑

  >> recvonly

    - RTP 수신만
    - 송신 SSRC 없음
    - Encoder 비활성
    - 카메라/마이크 필요 없음
    - CPU / 배터리 사용 ↓

// --------------------------------------------------------------------------------------






// --------------------------------------------------------------------------------------
[참고 사이트]
// --------------------------------------------------------------------------------------

[Aws Kinesis Video Streams] WebRTC SDP 협상 과정 프로세스 정리 정리

https://blog.naver.com/kkh0977/224030054470


[자바스크립트 AWS WebRTC 실시간 동영상 재생 수행]

https://blog.naver.com/kkh0977/223170500993?trackingCode=blog_bloghome_searchlist


[Aws Kvs WebRTC 실시간 영상 재생 관련 구성 요소 및 용어 정리]

https://blog.naver.com/kkh0977/223858189791


[업무 이슈] AWS WebRTC 실시간 비디오 재생 시 Client 클라이언트 연결 접속 및 해제 상태 확인 이슈

https://blog.naver.com/kkh0977/223966952222


[업무 이슈] 안드로이드 웹뷰에서 AWS WebRTC 웹 뷰어 영상 재생 중 앱 화면 종료 시 마스터에서 뷰어 close 상태가 늦게 감지 되는 이슈

https://blog.naver.com/kkh0977/224020488268


[Aws] WebRTC Viewer 뷰어 기기에서 실시간 디바이스 기기 해상도 확인 로직

https://blog.naver.com/kkh0977/224024795533

// --------------------------------------------------------------------------------------
 

 

728x90
반응형
Comments