WHIP/WHEP Streaming

최신 업데이트:2025-08-19 18:42:42

WHIP 및 WHEP에 대하여

**WHIP(WebRTC-HTTP Ingestion Protocol)**는 WebRTC 스트림의 퍼블리싱 과정을 단순화하기 위해 IETF에서 표준화한 프로토콜입니다. 기존 WebRTC에서 필요했던 복잡하고 커스텀된 시그널링 과정을 단순한 HTTP POST 요청으로 대체합니다. 이를 통해 WHIP을 지원하는 모든 인코더(예: OBS Studio)는 미디어 서버에 손쉽게 연결할 수 있어, 지연이 줄고 대규모 확장성 및 보안성이 향상됩니다.

**WHEP(WebRTC HTTP Egress Protocol)**는 재생을 위한 표준 프로토콜입니다. 서버에서 WebRTC 스트림을 수신하는 과정을 단순화합니다. HTTP 기반 방식을 사용하므로 플레이어는 스트림에 쉽게 연결하고 재생할 수 있어, 연결 과정이 간소화되고 다양한 환경에서 호환성을 보장합니다.

CDNetworks는 인제스트를 위한 WHIP과 재생을 위한 WHEP 모두를 지원합니다. 아래 단계에 따라 전체 스트리밍 워크플로우를 구성하세요.

사전 준비 사항

시작하기 전에 아래 준비 단계를 완료했는지 확인해 주세요:

  1. Streaming Domain을 설정하세요: Low Latency Live Streaming 콘솔에서 서비스가 활성화되어 있는지 확인하고, 반드시 Push Domain(전송용)과 Pull Domain(재생용)을 모두 구성해야 합니다.
  2. WHIP/WHEP 활성화: 본 기능은 기본적으로 비활성화되어 있습니다. 계정에 해당 기능을 활성화하려면 기술 지원팀에 문의해 주시기 바랍니다.
  3. 인코더를 설정하세요:
    본 가이드는 OBS Studio(30.0 이상 버전)을 사용해 WHIP 스트리밍 워크플로우를 시연합니다. OBS Studio 공식 사이트에서 다운로드하실 수 있습니다. 추가로 사용 가능한 인코더 목록은 타사 호환성 가이드를 참고해 주세요.

1단계: OBS의 WHIP 송출 설정

A. 인코딩 설정 구성

최적의 WebRTC 호환성을 위해서는 올바른 인코딩 파라미터를 먼저 구성하는 것이 중요합니다.

  1. 출력 설정으로 이동: 설정 > 출력 메뉴로 이동하여 "출력 모드"를 고급으로 설정하세요.
  2. 권장 인코더 설정 적용:
    스트리밍 탭에서 최고의 성능과 호환성을 위해 다음 설정을 권장합니다:
설정 권장값 이유
비디오 인코더 H.264 브라우저 및 기기에서 가장 넓은 호환성을 제공합니다.
오디오 인코더 Opus 이것은 WHIP에 대해 OBS가 자동으로 선택하며, 브라우저 재생을 위해 필수입니다.
x264 옵션 bframes=0 웹 플레이어에서 발생할 수 있는 끊김 현상을 방지하기 위해 B-프레임을 비활성화합니다.


B. 스트림 대상 설정

  1. OBS 설정 열기: OBS Studio를 실행한 후 설정 > 스트림으로 이동하세요.

  2. WHIP 서비스 선택: “Service” 드롭다운 메뉴에서 WHIP을 선택하세요.

  3. 서버 URL 입력: “Server” 필드에 아래 형식을 사용하여 WHIP URL을 입력합니다:
    https://your-push-domain.com/appname/streamname.sdp

    • your-push-domain.com을 설정한 Push Domain으로 교체하세요.
    • appnamestreamname을 원하는 Application 및 Stream 식별자로 교체하세요.

    중요: .sdp 접미사는 필수입니다. 당사 플랫폼이 인입되는 Stream을 WHIP Ingest로 올바르게 식별하려면 .sdp가 반드시 필요합니다.


2단계: 스트리밍 시작

  1. 설정 적용: OBS 설정 창에서 변경사항을 저장합니다.
  2. 스트리밍 시작: OBS 메인 창에서 스트리밍 시작을 클릭합니다.
  3. 연결 확인: OBS 창 하단의 상태 표시기를 확인하여 연결 상태를 확인하세요.
  • 녹색: 연결이 안정적이며 스트림이 정상적으로 진행 중입니다.
  • 노란색/빨간색: 연결에 문제가 있습니다. Server URL이 올바른지, 네트워크 연결이 안정적인지 다시 한 번 확인해 주세요.

3단계: 재생 테스트

저희 서비스는 WebRTC 재생을 위해 두 가지 시그널링 프로토콜을 지원합니다. 업계 표준인 WHEP와 저희가 자체 개발한 JSON 기반 시그널링이 그것입니다. 어떤 방식을 사용할지는 플레이어의 요청에 따라 결정됩니다. 두 방법 모두 동일하게 낮은 지연 시간과 고품질 스트림을 제공합니다.

옵션 1: WHEP Player로 테스트하기

저희는 WHEP 데모 플레이어를 제공하지 않지만, 이미 존재하는 WHEP 호환 플레이어를 이용해 스트림을 테스트하실 수 있습니다. 이미 애플리케이션에 WHEP 플레이어를 통합하셨다면 이 방법을 추천드립니다.

  • 재생 URL 형식: 스트림을 재생하려면 WHEP 플레이어에서 다음 URL 구조를 사용하십시오.
    https://your-pull-domain.com/appname/streamname.sdp
    • appnamestreamname 값이 OBS에서 설정한 내용과 일치하는지 확인하십시오.

옵션 2: 데모 플레이어(JSON 시그널링)로 테스트

저희는 사용자의 스트림이 라이브 상태인지 신속하게 검증할 수 있는 데모 플레이어도 제공합니다. 이 플레이어는 WHEP 프로토콜을 사용하지 않는다는 점을 참고해 주십시오. 대신, 저희가 개발한 JSON 기반 시그널링 프로토콜을 사용합니다. 어떤 시그널링 방식을 사용하더라도 스트림의 품질과 지연 시간은 동일합니다.

  • 재생 URL 형식: 저희 데모 플레이어를 사용하려면, 재생 URL 끝에 .sdp 접미사를 추가해야 합니다:
    https://your-pull-domain.com/appname/streamname.sdp

데모 플레이어로 테스트하는 방법:

  1. 데모 플레이어 방문: CDNetworks WebRTC Player
  2. 재생 URL 입력: URL 입력란에 .sdp 접미사를 포함하여 재생 URL을 입력하세요.
  3. 재생 클릭: 라이브 스트림이 나타나면 스트림이 정상적으로 작동하고 있는 것입니다.

자주 묻는 질문(FAQ)

  1. Q: 내 인코더가 Opus 오디오를 지원하지 않으면 어떻게 하나요?
    A:** 저희 트랜스코딩 서비스를 이용하면 오디오가 자동으로 필요한 Opus 포맷으로 변환됩니다. 이 기능 활성화를 원하시면 지원팀에 문의해 주세요.
  2. Q: H.265로 인코딩된 스트림을 재생할 수 없는 이유는 무엇입니까?
    A:
    WHIP/WHEP 표준은 현재 H.265를 지원하지 않습니다. H.264를 사용하거나 비디오 트랜스코딩 활성화를 위해 지원팀에 문의해 주시기 바랍니다.
  3. Q: B-프레임을 반드시 제거해야 하나요?
    A:
    엄격히 의무 사항은 아니지만 강력히 권장됩니다. B-프레임을 제거하지 않을 경우, 웹 브라우저에서 가장 흔하게 발생하는 끊김 및 재생 문제의 원인이 됩니다. 가장 안정적이고 부드러운 시청 환경을 위해 B-프레임을 비활성화하는 것이 좋습니다.
이 문서의 내용이 도움이 되었습니까?
아니오
정상적으로 제출되었습니다.피드백을 주셔서 감사합니다.앞으로도 개선을 위해 노력하겠습니다.