Live Streaming SaaS · v1.0

복잡한 라이브 인프라 없이,
채널 한 번 발급으로 바로 송출.

관리자가 채널을 발급하면 RTMPS · SRT · WebRTC 송출 키와 HLS · DASH 시청 URL이 한 번에 나옵니다. 방송자는 OBS·iOS 앱으로 즉시 송출, 시청자는 표준 플레이어로 봅니다.

5분 온보딩 · 5종 프로토콜 · 250+ Cloudflare PoP · 0 Cloudflare 콘솔 노출
⌘ Copy
# 채널 발급 직후 어드민이 보여주는 값
channel_id "ch_8af9c0e2"
status     live
protocol   "RTMPS"

rtmps_url  "rtmps://live.rtmp.kr:443/live/"
stream_key "sk_live_5f3a…b21e"

playback   "https://watch.rtmp.kr/v/ch_8af9c0e2.m3u8"
# 저지연 / 패킷 손실 보정용 SRT 송출
channel_id     "ch_8af9c0e2"
status         idle
protocol       "SRT"

srt_url        "srt://live.rtmp.kr:9999"
srt_stream_id  "#!::r=ch_8af9c0e2,m=publish"
srt_passphrase "pp_a91c…7e02"
# 1초 미만 지연 — WHIP 송출
channel_id "ch_8af9c0e2"
status     live
protocol   "WebRTC / WHIP"

whip_url   "https://whip.rtmp.kr/ch_8af9c0e2"
whep_url   "https://whep.rtmp.kr/ch_8af9c0e2"
ice_servers [ stun:stun.rtmp.kr ]
Powered by Cloudflare Stream
● RTMPS SRT WebRTC · WHIP HLS DASH WHEP
How it works

관리자가 발급, 방송자가 송출,
시청자가 본다.

세 역할이 명확하게 분리됩니다. 누구도 Cloudflare 콘솔을 직접 만질 필요가 없습니다.

01 — ADMIN

채널을 발급한다

웹 어드민에서 유저별로 채널을 1클릭 발급. Cloudflare Live Input이 백그라운드에서 자동 프로비저닝됩니다.

LIVE seller_42 · 메인 채널 1080p
rtmps://live.rtmp.kr:443/live/ sk_live_5f3a…b21e
02 — BROADCASTER

키를 받아 송출한다

OBS / vMix / iOS 앱 / WHIP 클라이언트 — 무엇이든 좋습니다. ServerStream Key 두 줄로 끝.

OBS
Server rtmps://live.rtmp.kr…
Key sk_live_5f3a…
03 — VIEWER

HLS · DASH로 본다

표준 매니페스트 URL 하나면 끝. Cloudflare 글로벌 엣지에서 직접 서빙되므로 별도 CDN이 필요 없습니다.

● LIVE
watch.rtmp.kr/v/ch_8af9
Multi-protocol ingest

하나의 채널, 모든 프로토콜.

채널을 한 번 발급하면 RTMPS · SRT · WebRTC 송출 엔드포인트와 HLS · DASH · WHEP 시청 URL이 동시에 발급됩니다. 방송자는 상황에 맞는 프로토콜을 골라 쓰면 그만입니다.

RTMPS~3–5s

OBS, vMix, FFmpeg 등 표준 인코더를 위한 가장 보편적인 송출 경로.

rtmps_urlrtmps://live.rtmp.kr:443/live/
stream_keysk_live_5f3a…b21e
OBS Studio vMix FFmpeg
WebRTC · WHIP<1s

브라우저에서 1초 미만 지연으로 송출. 인터랙티브 라이브, 스트리머 인터뷰 등에 사용.

whip_urlhttps://whip.rtmp.kr/ch_8af9
whep_urlhttps://whep.rtmp.kr/ch_8af9
Browser WHIP client Sub-second
// 한 채널은 동시에 모든 프로토콜로 송출/시청 가능합니다. HLS · DASH · WHEP → playback URL 자동 발급
Admin console

Cloudflare는 보이지 않게,
운영은 또렷하게.

셀러·강사·방송자별 채널을 한 화면에서 관리합니다. 조회는 자체 DB로 — Cloudflare API rate limit (5분당 1,200 req)을 걱정할 필요가 없습니다.

유저-채널 1:N

유저 단위로 N개 채널을 발급. 채널마다 RTMPS/SRT/WebRTC 키와 HLS/DASH URL이 자동 부여됩니다.

5단계 상태 모니터링

created · live · idle · disabled · errored — Cloudflare 측 상태와 자체 DB가 양방향 동기화됩니다.

Soft delete + 보상 트랜잭션

삭제는 deleted_at 컬럼으로 흔적을 남깁니다. Cloudflare 생성 후 DB 저장 실패 시 자동 롤백.

admin.rtmp.kr/channels/ch_8af9c0e2
channels / ch_8af9c0e2

seller_42 · 메인 라이브

● LIVE seller_42 · 메인 라이브 created 2026-04-21 · 1080p · ABR
REC · LIVE ◉ 2,841 // preview · 1920×1080 · 30fps · h.264
Viewers
2,841
+12% / 1m
Bitrate
4,800kbps
Latency
2.1s
Uptime
00:41:08
RTMPS rtmps://live.rtmp.kr:443/live/ + sk_live_5f3a…b21e copy
SRT srt://live.rtmp.kr:9999?streamid=… copy
WHIP https://whip.rtmp.kr/ch_8af9c0e2 copy
HLS https://watch.rtmp.kr/v/ch_8af9c0e2.m3u8 copy
9:41 5G · 100%
LIVE ◉ 2,841 1080p · 30
Mode9:16
BitrateABR
FPS30
SS26 봄 자켓 · 카키
₩ 89,000
FRONT
minji_★색상 다른 거 있어요?
jay_kim지금 라이브 깨끗하네요
seoul.kr장바구니 담았어요!
댓글 남기기…
Native iOS app

OBS 없이도,
주머니에서 바로 송출.

HaishinKit 기반 RTMPS 송출 모듈을 내장한 전용 iOS 앱. 세로 9:16 라이브 커머스/숏폼에 최적화되어 있고, 전·후면 카메라를 동시에 쓰는 멀티캠 PIP가 기본 탑재됩니다.

세로 9:16 프리셋

480p / 720p / 1080p · 30fps. 라이브 커머스, 숏폼 라이브에 그대로 맞춰진 비율.

멀티캠 PIP

전·후면 동시 캡처. 드래그로 위치 조정, 탭으로 메인-PIP 스왑.

bps

ABR · CBR · VBR

비트레이트 모드 선택. 어드민에서 발급한 rtmps_url + stream_key 입력만으로 즉시 송출.

Security & reliability

키는 안에 두고,
운영은 밖에서.

Cloudflare 자격증명은 서버에만 머무릅니다. 운영자가 조작하는 모든 자원은 권한·롤·토큰 회전으로 보호됩니다.

JWT

이중 토큰 + 회전

메모리 보관 Access JWT + httpOnly 쿠키 Refresh Token. 재사용이 탐지되면 해당 subject의 모든 토큰이 일괄 폐기됩니다.

Access JWTRefresh rotationReplay detection
RBAC

3단계 권한 분리

superadmin · admin · user. 채널 발급, 사용자 정지, API 키 생성 등 민감 액션은 역할 단위로 차등 적용됩니다.

superadminadminuserbcrypt
DB

DB-우선 조회

채널 목록·상세는 자체 DB로 응답합니다. Cloudflare API는 변경 시점에만 호출 — rate limit을 신경 쓰지 않는 어드민.

5min / 1,200 reqread-from-DBfast dashboard

보상 트랜잭션 + Soft delete

Cloudflare 생성 성공 후 DB 저장 실패 시 Cloudflare 측을 자동 롤백. 모든 삭제는 deleted_at으로 이력 보존.

two-phaseauto-rollbackdeleted_at
Tech stack

단일 코드베이스, 두 가지 배포 옵션.

분리형 (FastAPI + Vite React) 또는 통합형 (Next.js 15 + Cloudflare Workers + Prisma) 중에 골라 배포할 수 있습니다.

Live infra
Cloudflare StreamLive InputsHLS / DASH egressR2 cache
Backend (A)
FastAPISQLAlchemy 2.0 asyncAlembicMariaDB
Backend (B)
Next.js 15 App RouterPrisma 5jose JWTOpenNext on Workers
Admin UI
React + Vite + TSMUI v6TanStack Query v5react-hook-form + zod
iOS app
Swift + SwiftUI@ObservableHaishinKitAVFoundation
Auth
Access JWThttpOnly refreshrotationbcrypt
Roadmap

지금, 그리고 다음.

단기 · 0–3개월

온보딩과 신뢰성

가입 → 채널 발급 → 첫 송출 5분 이내
Cloudflare 콘솔 의존도 0
iOS v1.0 정식 출시 (세로 9:16, PIP)
중기 · 3–9개월

스테로이드를 친다

스트림 키 at-rest 암호화
채널 상태 전환 Webhook
동시 시청자/누적 시간 분석
임베드 플레이어 (rtmp.kr/embed/<ch>)
장기 · 9개월+

플랫폼이 된다

다계정·팀 워크스페이스 (MCN)
녹화본 라이브러리 + VOD 변환
간이 결제 / 시청 권한 (Signed URL)
리전별 read replica 어드민
Get started

채널을 발급하세요.
나머지는 우리가 합니다.

가입 후 5분이면 첫 송출까지 도달합니다. 30분 임시 채널은 곧 가입 없이도 발급될 예정입니다.