MistServer Input 실습: 다양한 입력 방식 설정과 스트림 결과 확인
"본 글은 과거 티스토리에서 발행했던 콘텐츠를 기반으로, 최신 정보를 반영해 새롭게 정리한 업데이트 버전입니다."
📚 목차
1. MistServer 스트림 입력 구조 이해하기
2. Push Input 실습 - 외부 송출 장비 연동(FFmpeg 기반)
3. File input 실습 - 로컬 저장 파일로 스트리밍 구성
4. Pull Input 실습 - 외부 RTSP 소스 자동 수신 구성
5. 다양한 Output URL로 스트림 결과 확인하기
✔ 마무리 - 실무 환경에 맞는 Input 구성 전략
1. MistServer 스트림 입력 구조 이해하기
MistServer의 스트리밍 파이프라인은 다음과 같은 세 단계로 구성됩니다.
[Inputs] → [Stream] → [Outputs]
🔸 Inputs (입력):
▸ 외부에서 MistServer로 미디어 데이터를 수신하는 단계입니다.
▸ 송출 장비(OBS 등), 카메라(RTSP), 파일 시스템 등 다양한 소스에서 데이터를 받아올 수 있습니다.
🔸Stream (스트림):
▸ 입력된 데이터가 MistServer 내에서 스트림 단위로 관리되는 단계입니다.
▸ 코덱 변경, 트랜스먹싱, 시간 이동(DVR) 등 다양한 처리가 가능합니다.
🔸Outputs (출력):
▸ 스트림을 다양한 프로토콜(RTMP, HLS, WebRTC 등)로 외부에 제공하는 단계입니다.
MistServer에서 사용할 수 있는 주요 Input 방식은 다음과 같습니다:
🔸 Push Input:
▸ 외부 송출 장비(예: FFmpeg, OBS)에서 MistServer로 직접 미디어 데이터를 푸시하는 방식입니다.
▸ 실시간 방송 및 라이브 인코딩 환경에서 주로 사용됩니다.
🔸File Input:
▸ MistServer가 로컬 파일 시스템(또는 Docker 마운트 경로)에 저장된 미디어 파일을 읽어 스트리밍 합니다.
▸ 교육, 이벤트 VOD, 내부 테스트 등에 적합합니다.
🔸 Pull Input:
▸ MistServer가 능동적으로 외부 장비나 서버에서 RTSP/HLS 등의 스트림을 가져오는 방식입니다.
▸ CCTV, NVR, IP 카메라 등과 연동 시 사용됩니다.

이 세 가지 방식 모두 MistServer 웹 UI를 통해 쉽게 구성할 수 있으며, 스트림 이름(Stream name)과 소스(Source) 설정만으로 입력을 등록할 수 있습니다.

2. Push Input 실습 – 외부 송출 장비 연동 (FFmpeg 기반)
Push Input 방식은 외부 인코더나 송출 장비(예: FFmpeg, OBS 등)에서 MistServer로 직접 미디어 데이터를 전송하는 방식입니다.
실시간 방송, 라이브 인코딩 환경에서 가장 널리 사용되는 입력 방식입니다.
이 실습에서는 Push Input 스트림을 MistServer에서 생성한 후, FFmpeg를 통해 외부에서 RTSP 형식으로 스트림을 전송하고, VLC를 사용해 실제 재생이 가능한지 테스트합니다.
🔷 Push Input 스트림 생성 및 설정
1. MistServer 웹 UI에 접속합니다.
2. 왼쪽 메뉴에서 [Streams]를 선택한 후, 상단의 [Create a new stream] 버튼을 클릭합니다.

3 .아래와 같이 설정합니다.
▸ Stream name: 필드에 test를 입력합니다.
▸ Source: 드롭다운 메뉴에서 "Push" 를 선택합니다. Source 입력 필드에 자동으로 push:// 가 입력됩니다.
▸ push://*와 같이 와일드카드를 사용하면 오류 발생 → push://만 사용해야 정상 동작 합니다.
▸ Source를 설정하면 RTMP, SRT, RTSP 접속 URL이 자동으로 생성됩니다.

4. 하단의 "Save" 를 선택하여 저장 후 스트림 목록을 확인합니다.

📌 실습 시 주의:
▸ MistServer가 5554 포트에서 RTSP 입력을 수신할 수 있어야 합니다.
▸ 네트워크 방화벽 설정이나 Docker 포트 포워딩이 정확히 되어 있는지 확인하세요.
🔷 FFmpeg로 영상 푸시 테스트
Push Input 스트림이 정상 등록되었다면, 다음 명령어를 통해 외부에서 MistServer로 실시간 영상을 송출할 수 있습니다.
ffmpeg -i rtsp://xx.xx.xx.xx:554/onvif/profile2/media.smp \
-c copy -f rtsp rtsp://[MistServer IP 주소]:5554/test
▸ -i: 외부 RTSP 카메라 또는 NVR의 영상 소스 URL
▸ -c copy: 재인코딩 없이 원본 스트림을 그대로 전송
▸ -f rtsp: MistServer에서 수신 가능한 출력 포맷
▸ rtsp://[MistServer IP]:5554/test: 앞서 생성한 스트림 이름을 기반으로 자동 생성된 Push URL

MistServer 관리 인터페이스의 해당 스트림 상태 화면 또는 미리보기 화면을 통해 영상이 정상적으로 수신되는지 확인할 수 있습니다.


🔷 VLC 재생 테스트
Push 스트림이 정상적으로 유입되고 있는지 확인하려면 VLC를 통해 다음과 같이 접속합니다.
▸ VLC 실행 → 미디어 > 네트워크 스트림 열기
▸ 아래 주소를 입력하고 재생:
rtsp://[MistServer IP]:5554/test

📌 재생 불가 시 점검 항목
▸ 포트 개방 여부: RTSP(5554), RTMP(1935), SRT 지정 포트가 방화벽·Docker에서 열려 있는지 확인
▸ IP 허용 설정: Source가 push://로 설정되었는지, 특정 IP 허용 시 설정값이 맞는지 확인
▸ 네트워크 연결: 송출 장비와 MistServer 간 통신 가능 여부(ping, traceroute) 점검
▸ URL 일치 여부: FFmpeg 송출 URL과 VLC 재생 URL이 MistServer 설정과 동일한지 검증
▸ 송출 상태 확인: MistServer UI의 Status/Preview에서 스트림 수신 여부 확인
📌 Tip: Push Input은 라이브 방송, CCTV 실시간 모니터링 등 외부 송출 장비의 실시간 데이터를 수신할 때 유용합니다.
OBS, FFmpeg 등 다양한 송출 툴과 연동 가능하며, 한 번 설정하면 RTSP, RTMP, SRT 등 여러 프로토콜로 동시 송출이 가능합니다.
3. File Input 실습 – 로컬 저장 파일로 스트리밍 구성
File Input은 VOD(주문형 스트리밍) 또는 테스트 환경에서 유용하게 사용되는 입력 방식입니다.
MistServer는 서버 로컬 디렉터리 또는 Docker 컨테이너에 마운트된 경로에 존재하는 미디어 파일을 그대로 스트림 형태로 제공할 수 있습니다.
🔷 File Input 스트림 생성 및 설정
1. MistServer 웹 UI에 접속합니다.
2. 왼쪽 메뉴에서 [Streams] 선택 → 상단의 [Create a new stream] 클릭
3. 다음 값을 입력합니다
▸ Stream name: 필드에 rose 를 입력합니다.
▸ Source: 드롭다운 메뉴에서 "File" 을 선택합니다. Source 입력 필드에 /mnt/d/nvtest/rose.mp4 를 입력합니다.

4. 하단의 "Save" 버튼을 클릭하여 스트림 설정을 저장합니다.
📌 Docker 환경 주의사항
▸ /mnt/d/nvtest/rose.mp4 경로가 호스트에서 컨테이너 내부로 올바르게 볼륨 마운트되어 있어야 합니다.
▸ MistServer 프로세스가 해당 파일을 읽을 수 있도록 파일 권한이 설정되어 있어야 합니다.
🔷 Stream 'rose' 테스트
MistServer 관리 인터페이스의 해당 스트림 상태 화면 또는 미리보기 화면을 통해 영상이 정상적으로 수신되는지 확인할 수 있습니다.
🔷 VLC 재생 테스트
Push 스트림이 정상적으로 유입되고 있는지 확인하려면 VLC를 통해 다음과 같이 접속합니다.
▸ VLC 실행 → 미디어 > 네트워크 스트림 열기
▸ 아래 주소를 입력하고 재생
rtsp://[MistServer IP]:5554/rose

📌 재생 불가 시 점검 항목
▸ 파일 경로 오류: MistServer UI에서 입력한 경로가 실제 서버에서 접근 가능한지 확인
▸ 파일 권한 문제: chmod 또는 chown을 통해 읽기 권한 부여
▸ 인코딩 호환성: VLC 또는 브라우저에서 재생 가능한 코덱인지 확인
📌 Tip: File Input은 사내 교육 영상, 이벤트 영상, 테스트 클립 등과 같이 반복 재생이 필요한 콘텐츠를 배포할 때 특히 유용합니다.
또한, 동일한 파일에 대해 HTTP, RTSP, HLS, DASH 등 다양한 프로토콜로 자동 출력되므로, 하나의 소스로 다중 환경 테스트를 할 때도 적합합니다.
4. Pull Input 실습 – 외부 RTSP 소스 자동 수신 구성
Pull Input은 MistServer가 능동적으로 외부 장비나 서버에 접속하여 미디어 데이터를 가져오는 방식입니다.
CCTV, IP 카메라, NVR, 다른 스트리밍 서버 등과 연동할 때 자주 사용되며, 특히 RTSP와 HLS가 대표적인 프로토콜입니다.
🔷 Pull Input 스트림 생성
1. MistServer 웹 UI에 접속합니다.
2. 왼쪽 메뉴에서 [Streams] 선택 → 상단의 [Create a new stream] 클릭
3. 다음 값을 입력합니다
▸ Stream name: 필드에 camera 를 입력합니다.
▸ Source: 드롭다운 메뉴에서 "Pull" 을 선택합니다.
▸ Source 입력 필드에 RTSP URL (rtsp://[카메라 IP 주소]:554/live) 을 입력합니다.
▸ 실제 카메라의 RTSP URL로 변경해야 합니다.

4. 하단의 "Save" 버튼을 클릭하여 스트림 설정을 저장합니다.
🔷 Stream "camera" 테스트
MistServer 관리 인터페이스의 해당 스트림 상태 화면 또는 미리보기 화면을 통해 영상이 정상적으로 수신되는지 확인할 수 있습니다.
🔷 VLC 재생 테스트
MistServer가 외부로부터 영상을 정상적으로 수신 중인지 확인하려면 VLC Player를 사용합니다.
▸ VLC 실행 → 미디어 > 네트워크 스트림 열기
▸ 다음 주소 입력
rtsp://[MistServer IP]:5554/camera

📌 재생 불가 시 점검 항목
▸ 네트워크 연결: MistServer와 카메라가 동일 네트워크 또는 접근 가능한 경로에 있어야 함
▸ 방화벽/포트 포워딩: RTSP(기본 554), HTTP(HLS 기본 80/8080) 포트 확인
▸ 인증 정보: 사용자명, 비밀번호가 올바른지 확인
▸ RTSP URL 형식: 제조사별 경로 차이 확인 (예: /live, /Streaming/Channels/101, /h264 등)
📌 Tip: Pull Input은 여러 대의 카메라를 한 번에 등록할 수 있으며, MistServer의 DVR 기능과 결합하면 과거 영상을 쉽게 재생할 수 있습니다.
또한, 외부 스트림의 안정성을 보장하기 위해 네트워크 상태 모니터링과 자동 재연결 옵션을 함께 구성하는 것이 좋습니다.
5. 다양한 Output URL 로 스트림 결과 확인하기
MistServer는 하나의 Input 스트림에 대해 자동으로 다양한 Output 포맷을 제공합니다.
별도 설정 없이도 다양한 클라이언트에서 스트림을 동시에 재생할 수 있습니다.
🔷 대표 출력 URL 예시 (스트림 이름: camera)
| 프로토콜 | 예시 URL |
| RTSP | rtsp://172.18.89.20:5554/camera |
| RTMP | rtmp://172.18.89.20/play/camera |
| HLS | http://172.18.89.20:8080/hls/camera/index.m3u8 |
| DASH | http://172.18.89.20:8080/cmaf/camera/index.mpd |
| WebRTC (WHEP) | http://172.18.89.20:8080/webrtc/camera |
| MP4(HTTP) | http://172.18.89.20:8080/camera.mp4 |
| SRT | srt://172.18.89.20/streamid=camera |
MistServer의 각 스트림의 "Embed" 탭을 선택하면 JavaScript 플레이어 사용법 및 더 자세한 프로토콜별 스트림 URL 정보를 확인할 수 있습니다.



✔ 마무리 – 실무 환경에 맞는 Input 구성 전략
MistServer는 실시간 송출 환경부터 파일 기반 재생, 외부 카메라 연동까지 다양한 Input 방식을 제공합니다.
Push는 OBS, FFmpeg 등 외부 장비 송출에 유리하며, Pull은 보안 카메라 및 기존 인프라 연동에 적합합니다. File은 사내 교육 자료, 홍보 영상 등 정적인 콘텐츠 제공에 유용합니다.
Input 구성만으로도 스트림이 자동으로 Output으로 전환되므로, 초기 설정만 잘 해두면 복잡한 구성 없이도 다양한 클라이언트에서 재생이 가능합니다.
운영 중 Input 설정을 변경하거나 자동화하려면 이후 소개할 API 연동 또는 CLI 스크립트 자동화와 연계하는 것이 좋습니다.
👉 관련 글 링크
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] DVR(Time-Shift) 설정과 재생 실습 (0) | 2025.11.06 |
|---|---|
| [MistServer] Push 기능을 이용한 스트림 녹화 설정 (0) | 2025.11.06 |
| [MistServer] 설치 후 필수 기본 설정 가이드 (v3.8 기준) (0) | 2025.11.06 |
| [MistServer] 설치 실습 - Ubuntu에 직접 설치 vs Docker 컨테이너 실행 (0) | 2025.11.06 |
| [FFmpeg] 인코딩 실습: CPU(libx264)와 CUDA(h264_nvenc) 비교 (0) | 2025.11.05 |