OBS Studio와 MistServer 3.8을 이용한 라이브 방송 실습(RTMP,WHIP)
"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다."
📚 목차
1. 실습 준비하기
2. OBS Studio → MistServer RTMP 송출 설정
3. OBS Studio → MistServer WHIP 송출 설정
4. MistServer에서 송출 확인 및 HLS/RTSP 변환
✔ 마무리
1. 실습 준비하기
이번 실습은 Windows PC에 설치된 OBS Studio를 사용해, Windows에 이미 설치된 MistServer 3.8로 RTMP 스트림을 송출하고, 이를 HLS/DASH로 변환해 재생까지 해보는 과정입니다.
MistServer는 이미 설치 및 구동 상태이므로 설치 과정은 생략하고, 실습 환경 점검과 OBS 설치부터 시작하겠습니다.
🔷 실습 목표
🔸 목표 1: OBS에서 송출한 RTMP 스트림이 MistServer에 정상 수신되는지 확인
🔸 목표 2: MistServer가 HLS/DASH로 변환해 재생 가능한지 테스트
🔸 목표 3: 멀티 스트림 및 딜레이 측정 실습을 위한 환경 완비

실무에서 이 구성은 사내 IPTV, CCTV 모니터링, 라이브 이벤트 송출 등에서 그대로 활용 가능합니다.
OBS 대신 XSplit, vMix, Wirecast 등도 가능하지만, 본 실습에서는 무료이자 범용성이 높은 OBS를 사용합니다.
주의: 회사 네트워크 방화벽 환경에서는 포트 개방이 제한될 수 있으므로, 사전 승인 절차가 필요할 수 있습니다.
MistServer가 외부(또는 다른 PC)에서 접속 가능하려면 RTMP와 HTTP 출력 포트가 열려 있어야 합니다.
🔸 RTMP 입력 포트: 1935/TCP
🔸 HLS/DASH 출력 포트: 8080/TCP
🔷 OBS Studio 설치
1. OBS 공식 다운로드 페이지 접속
2. Windows Installer (64-bit) 다운로드 후 실행
3. 설치 마법사 안내에 따라 기본 옵션으로 설치
4. 설치 후 실행하면 초기 설정 마법사가 자동 실행되며, 방송 품질과 해상도를 선택 가능
▸ 라이브 방송 목적: "최대 성능 우선"
▸ 녹화 중심: "고품질, 고해상도"
OBS는 GPU 인코딩(NVENC, AMD VCE)을 지원하므로, 실시간 송출에서 CPU 부하를 줄이려면 가능하면 GPU 인코딩을 사용하는 것이 좋습니다.
🔷 방송 소스 준비 – 동영상 파일 활용
이번 실습에서는 동영상 파일을 방송 소스로 사용합니다.
실무 환경에서는 웹캠이나 라이브 카메라를 사용하기도 하지만, 동영상 파일은 반복 테스트와 환경 비교에 매우 유리합니다.

✔️ OBS에서 동영상 파일 불러오기
1. OBS 실행 → 소스 창에서 + 버튼 클릭
2. 미디어 소스 선택 후 새로 만들기
3. 파일 찾기에서 준비한 MP4 파일 선택
4. 다시 시작 시 재생과 반복(loop) 옵션 활성화
5. 확인 후 미리보기 창에서 재생 여부 확인
✔️ 실무 팁
▸ 반복 옵션을 켜면 방송 중에도 영상이 끊김 없이 이어집니다.
▸ 로컬 저장 경로는 SSD 또는 빠른 디스크에 두는 것이 좋습니다. 네트워크 드라이브에 있는 영상은 재생 지연이 생길 수 있습니다.
▸ 방송 테스트 시 영상 파일명과 버전을 기록해 두면, 나중에 성능 비교 시 어떤 파일을 사용했는지 추적하기 쉽습니다.
✔️ 실무자가 놓치기 쉬운 체크리스트
▸ MistServer 실행 상태: Streams 페이지 접속 가능 여부
▸ IP 주소 확인: 내부망/LAN IP 또는 공인 IP 명확히 확인
▸ 방화벽 규칙 등록: 포트 허용 완료 여부
▸ OBS 권한: Windows에서 관리자 권한으로 실행하면 포트 충돌 문제를 방지할 수 있음
▸ 테스트 콘텐츠 준비: 반복 송출 가능한 10~30초짜리 샘플 영상이 효율적
2. OBS Studio → MistServer RTMP 송출 설정
OBS Studio에서 송출을 시작하기 전에, MistServer에 RTMP 입력 스트림(Input)을 생성해 두어야 합니다.
MistServer는 자동 스트림 생성 기능이 있지만, 사전 등록 방식을 사용하면 출력 URL 관리와 권한 제어가 훨씬 수월합니다.
🔷 MistServer에서 스트림 생성하기
1. MistServer 웹 UI에 접속합니다.
2. 왼쪽 메뉴에서 [Streams]를 선택한 후, 상단의 [Create a new stream] 버튼을 클릭합니다.

3. 아래와 같이 설정합니다.
▸ Stream name: 필드에 teststream를 입력합니다.
▸ Source: 드롭다운 메뉴에서 "Push"를 선택합니다. Source 입력 필드에 자동으로 push:// 가 입력됩니다.
▸ Source를 설정하면 RTMP, SRT, RTSP 접속 URL이 자동으로 생성됩니다.

🔷 OBS 방송 설정
1. OBS → 설정(Settings) 클릭
2. 방송(Stream) 메뉴에서:
▸ 서비스(Service): 사용자 지정(Custom...)
▸ 서버(Server): rtmp://192.168.0.50:1935/live
▸ 스트림 키(Stream Key): teststream
3. 확인(OK) 클릭

🔷 연결 및 송출 테스트
1 .OBS에서 방송 시작(Start Streaming) 클릭

2. MistServer Streams 페이지에서 teststream 상태 확인:
▸Inactive → Active로 변경
▸입력(Input) 항목에 RTMP 표시
3. Output URL 확인 (예: HLS/DASH) 후 재생 테스트

3. OBS → MistServer WHIP 송출 실습
WebRTC-HTTP Ingestion Protocol(WHIP)은 WebRTC 방송 송출을 위한 표준 프로토콜입니다.
RTMP보다 지연이 짧고, 브라우저 호환성이 뛰어나 실시간성이 중요한 서비스(라이브 이벤트, CCTV, 사내 회의)에서 점점 활용이 늘고 있습니다.
OBS 29.x 이상 버전부터 WHIP 송출 기능이 기본 포함되었으나, 일부 환경에서는 플러그인 설치가 필요할 수 있습니다.
확인: 설정 → 방송 → 서비스 목록에 WHIP 또는 Custom WHIP 항목이 있는지 확인
🔷 OBS 방송 설정

1. 설정 → 방송(Stream) 메뉴
2. 서비스: WHIP
3. 서버 URL: http://127.0.0.1:8080/webrtc/whipstream
4. 인증 필요 시 사용자명·비밀번호 또는 Token 입력
5. 확인 후 방송 시작(Start Streaming) 클릭
🔷 연결 및 송출 테스트
- OBS Studio → MistServer RTMP 송출 설정 - 내용 참고하세요
4. MistServer에서 송출 확인 및 HLS/RTSP 변환
OBS에서 방송 시작 버튼을 클릭하면, MistServer의 Streams 페이지에서 해당 스트림을 실시간으로 확인할 수 있습니다.
이 단계에서는 송출이 정상적으로 진행되고 있는지 확인하고, MistServer가 자동 생성하는 HLS/DASH 재생 주소를 활용해 외부 재생 테스트까지 진행합니다.

🔷 MistServer Output URL 구조
① HLS (HTTP Live Streaming)
http://<MistServer_IP>:8080/hls/<StreamName>/index.m3u8
예시
http://192.168.0.50:8080/hls/teststream/index.m3u8
▸ HTTP 기반이라 방화벽·프록시 환경에서도 접근 용이
▸ 웹 브라우저·모바일 웹 호환성 높음
▸ 지연시간: 5~10초 (세그먼트 길이 조정 가능)
② RTSP (Real Time Streaming Protocol)
rtsp://<MistServer_IP>:8554/<StreamName>
예시
rtsp://192.168.0.50:8554/teststream
▸ 낮은 지연시간(1~3초 가능)
▸ CCTV, 모바일 앱, 내부망 재생에 주로 사용
▸ 방화벽·NAT 환경에서 접속 제한 가능

▸ HLS → HTTP 기반, 방화벽·프록시 환경에서 접근 용이, 웹 브라우저 호환성 최고
▸ RTSP → 낮은 지연시간, 보안·방화벽 설정 필요, 주로 내부망·모바일 앱에서 사용
▸ 방송/서비스 운영 시 두 가지를 함께 제공하면 범용성과 실시간성을 모두 확보할 수 있음
🔷 VLC 플레이어에서 재생 실습

▸ HLS 재생은 약간의 지연(5~10초)이 있을 수 있습니다.
🔷 송출 상태 모니터링
실시간 방송에서는 송출 상태를 지속적으로 모니터링하는 것이 중요합니다.
▸ Bitrate 변화 확인: Streams 상세 페이지에서 현재 송출 중인 비트레이트 확인
▸ 시청자 수 확인: Active Viewers 값 확인 (HLS/DASH 접속자 포함)
▸ 네트워크 안정성: Packet Loss나 Buffering 경고 발생 시 로그 분석 필요
✔️ 실무 팁:
장시간 방송 시에는 MistServer Logs 메뉴에서 경고 메시지를 수시로 확인하고, 필요시 OBS의 상태 패널에서 업로드 속도를 모니터링해야 합니다.
✔ 마무리
이번 실습으로 OBS → MistServer RTMP 송출 → HLS/RTSP 재생 테스트 흐름을 검증했습니다.
실무에서는 다음만 기억하면 됩니다.
▸ Streams 페이지 Active 상태와 비트레이트 정상 유지 확인
▸ HLS: 웹·모바일 범용, RTSP: 저지연·내부망 최적
▸ 포트(1935, 8080, 8554) 방화벽 허용 필수
VLC로 HLS·RTSP 재생 확인, DASH는 웹 플레이어로 테스트
👉 관련 글 링크
1. [MistServer] 설치 실습 - Ubuntu에 직접 설치 vs Docker 컨테이너 실행
2. [MistServer] 설치 후 필수 기본 설정 가이드 (v3.8 기준)
3. [MistServer] Input 실습: 다양한 입력 방식 설정과 스트림 결과 확인
4. [MistServer] Push 기능을 이용한 스트림 녹화 설정
5. [MistServer] DVR(Time-Shift) 설정과 재생 실습
6. [MistServer] OBS Studio와 MistServer 3.8을 이용한 라이브 방송 실습(RTMP,WHIP)
7. [MistServer] API 인증 방식과 HTTP·WebSocket API 비교
8. [MistServer] 스트림 관리 API 실습 (Python)
※ 게시된 글 및 이미지 중 일부는 AI 도구의 도움을 받아 생성되거나 다듬어졌습니다.
'1.시스템&인프라 > 스트리밍' 카테고리의 다른 글
| [MistServer] 스트림 관리 API 실습 (Python) (0) | 2025.11.06 |
|---|---|
| [MistServer] API 인증 방식과 HTTP·WebSocket API 비교 (0) | 2025.11.06 |
| [MistServer] DVR(Time-Shift) 설정과 재생 실습 (0) | 2025.11.06 |
| [MistServer] Push 기능을 이용한 스트림 녹화 설정 (0) | 2025.11.06 |
| [MistServer] Input 실습: 다양한 입력 방식 설정과 스트림 결과 확인 (0) | 2025.11.06 |