OVERVIEW

CDN 기본 설정 / IP대역 / Speed Limit

CDN 서비스의 기본 캐시 설정, 엣지 서버 IP 대역, Rate Limit 및 Speed Limit 설정에 대한 가이드입니다.

기본 설정 요청 사항

항목설정값
CORS*
Charsetutf-8 설정 제거
HTTP POST method허용
GZIP compression특정 고객사 요청 시 허용 (세부 하기 참고)
whole site 경우static contents 캐시 필요
확장자 없는 파일 또는 / 의 URL 요청 시 캐시 bypass

스피디 스토리지 사용 시 유의 사항

스피디 HLS Wowza + 스토리지 이용 시 파일 덮어 쓰기 사용 금지 권고

FTP 계정 설정

항목규칙
FTP ID허용 문자 : 영문, 숫자, -, _
최소~최대 : 5자 ~ 30자
FTP PW영문 + 숫자 + 특수문자 조합 (특수문자 포함 필수)
허용 특수문자 : ! @ $ ? _
최소~최대 : 4자 ~ 15자

전체 컨텐츠와 일부 컨텐츠의 보관 기간

구분보관 기간
전체 컨텐츠 삭제 요청 시보관 기간 없음. 도메인 삭제 요청 시 진행되며, 1~2일 이후 삭제 처리
일부 컨텐츠를 고객이 삭제 시보관 기간 없음

스피디 포탈 서브 계정 생성

최대 150개 가능하며, 150개 이상 생성 시 스피디에 문의

Static Contents

bmp ejs jpeg pdf ps ttf class eot jpg pict svg webp css eps js pls svgz woff csv gif mid png swf woff2 doc ico midi ppt tif xls docx jar otf pptx tiff

whole site의 경우 위 확장자들에 대해 캐시 필요

지원 불가 항목

웹 소켓 (WebSocket)

CDN 기본 설정

CDN 서비스의 기본 설정값과 비고 사항입니다.

No대분류항목기본 설정값비고
1 포트 / 프로토콜 / 메서드 Listen Port Port 구분
default : 80
option : 443 (HTTP/2 옵션)

SSL 지원 버전
TLSv1, v1.1, v1.2, v1.3 (기본 1.2) ※ TLS 1.0/1.1은 보안 취약으로 비권장

기본 응답받는 HTTP method
GET / HEAD
v1.3의 경우 노후브라우저(IE6 등) 미지원
→ 노후브라우저 지원용 낮은 버전의 장비는 TLS v1.3 호환 자체가 불가
IE6 지원하나 별도 요청하여 전용 서버 구축 필요

Post method 사용 시 별도 요청 필요
2 헤더 오리진 요청 시 추가되는 헤더 Host header
X-Forwarded-For
Range
if-Range
Cache-Control : 공백
Expires : 공백
3 클라이언트 추가되는 헤더 Server : NCE
X-NCE-CacheResult : 캐시 상태 (hit/miss 등)
4 오리진 서버가 도메인일 경우 도메인질의 DNS : 8.8.8.8
질의 주기 : 5분
질의 시 timeout : 300ms
오리진 요청 시 Host header에 서비스도메인으로 요청하도록 별도 요청 필요
5 Response Header 용량 증설 Response-header : 4KB CON>Tools로 테스트 결과 Response Header 정보가 평균보다 클 경우 특정 클라이언트 사용자의 요청에서 응답이 502가 발생 가능

스피디 요청하여 해당도메인의 엣지서버 Response Header 용량 증설 요청 메일 송부
6 캐시 캐시 서버 설정 캐시서버 TTL : 24시간 (86400초)
클라이언트 캐시서버 : 2초
connection timeout : 30초
오리진 connection 이후 timeout : 3회 / 2초
오리진 retry 횟수 : 3회
재시도 이후에도 오리진이 응답없을 경우 오리진 제외 시간 : 2초
4XX, 5XX 응답에 대한 TTL : 없음
keepalive default timeout : 없음 (캐시 안함)
오리진에서 0bytes 200 응답 시 : —
오리진이 캐시서버에서 요청 시 응답만 하고 요청 데이터를 안줄 경우 3회 반복 되면 최대 90초간 응답 대기 상태 발생 가능

3회 재시도 후 응답이 없을 시 해당 오리진은 2초간 제외되며, 504 코드로 응답

0byte 응답 시 no cache 설정 가능

셋업 시, 특정 확장자 Bypass 기입이 없는 경우
- (default) 전체 확장자 대상으로 캐시설정
- (option) Bypass 설정 요청 시 확장자 구분하여 캐시 설정
7 stale 처리 code 전체 5XX가 아닌 500, 502, 503, 504
8 캐시 KEY 서비스도메인 + URI + Argument
9 Gzip compression 기본 없음 CDNetworks에서 넘어왔으며, do/js/css 등 텍스트 파일들의 요청이 많을 경우 스피디에 gzip compression 요청
10 Charset utf-8 설정 되어 있음 고객사 글씨깨짐이 감지되면 UTF-8 설정 제거 요청 필요
50개 이상 디렉터리 설정이 되면 기본 캐시 동작에 영향이 있으므로 사전에 고객에게 안내 필요
11 Non-cacheable contents .jsp .php .js .css .html .asp .py .cgi .pl .aspx .jspx .do .json 이 확장자들은 기본 bypass되므로 cache가 필요한 경우 별도 요청 필요

특정 디렉터리 하위 또는 파일 or 확장자만 캐시 설정 가능
12 slice (chunk) 없음 수십 MB 이상의 큰 파일이 있을 경우 효율적인 캐시를 위해 1MB 단위로 slice하여 오리진에 요청 및 캐시

장점 : 속도향상/분산효과, 오리진 대역폭을 보호하며, 대용량 전송을 위한 연산과 캐시 리소스 절감
단점 : 작은 단위로 오리진에 요청하므로, 큰 파일은 여러번 오리진의 응답이 필요
13 쿼리 스트링 무시 여부 무시 안함 (기본 정책) 쿼리 스트링을 별도 캐시 키로 사용. 무시 설정 시 별도 요청 필요
14 릴레이 구성 기본 릴레이 구성 안되어 있음 필요 시 요청 (오리진 부하 등의 상황 시 요청하여 구성을 통해 부하 감소)
15 Purge 기본 soft purge
cache TTL만 0으로 설정 후 오리진에 변경 여부를 etag, modified값으로 확인하며, etag를 오리진에서 주지않을 경우 modified값이 더 최신인 데이터를 캐시에서 캐시함
(만약 캐시가 오리진보다 modified값이 더 최신이면 오리진 값 받아오지 않음)
hard purge 설정 가능

hard purge의 경우 캐시된 컨텐츠를 TTL만료 또는 퍼지 시 삭제 이후 오리진에 요청하므로 오리진의 트래픽 증가 및 오리진이 응답이 없을경우 stale로 응답되지 않아 cache TTL 만료 이후 오리진 proxy역할을 하지 못함

TTL 만료 / PURGE 동일 하게 동작하여 오리진으로부터 200 응답 수신

#오리진서버에서 304응답시, 304응답을 수신하나, 304 응답 조건관련 헤더(IMS, Etag)를 Request 시 포함하지 않음
16 SNI 기본 설정 없음 오리진 서버에 여러 도메인을 서비스 중일 때, SSL로 서비스 도메인을 인증할 수 있도록 하는 설정
NON-SNI 도 요청 시 별도 지원
17 인증 Enguard (One Time Token) 디렉터리 및 확장자 모두 설정 가능 기본 설정이 아니므로 별도 요청 필요
18 Image Resizing resize / crop / rotate / watermark / quality resize/crop 두 가지 모드 중 1개만 사용 가능하며, crop을 비율에 맞게 자르면 resize의 효과를 얻을 수 있음 기본 설정이 아니므로 별도 요청 필요
19 통계 디렉터리 통계 없음 필요 시 별도 요청 필요
20 컨텐츠 통계 구분 download만 cache로 설정 요청 시 별도 요청 필요
21 계정 생성 ID : 5자~30자, password : 4자~15자 (! @ $ ? _ 허용)
22 접속 정보 동시 접속자
- 최소 조회 단위 : 5분
- 조회시간 (5분, 시간, 일) 내 수행된 Active Connection 수가 가장 큰 순간의 값
통계 > 접속 정보

1. Request
세부 정의 : 기간 동안의 peak 요청 수 (공인 IP 중복 허용)
조회 기간 구분 :
  • 1일 조회 시 : 5분 단위
  • 2일 이상 : 시간 단위
  • 7일 이상 : 일 단위

2. 동시 접속자
세부 정의 : 조회 기간 동안 Connection 수가 최대였을 때의 IP 수 (공인 IP 중복 허용)
조회 기간 구분 : Request와 동일

3. 방문자
세부 정의 : 조회 기간 동안의 유일한 IP의 누적 값 (공인 IP 중복 제외)
조회 기간 구분 :
  • 1일 이상 : 1시간 단위
  • 7일 이상 : 일 단위
23 스토리지 API Upload / 업로드 계정 / 계정 제한 확인 https://upload.cloudn.co.kr:3443/api_sample.html
https://vodupload.cloudn.co.kr:3443/api_sample.html
https://fileupload.cloudn.co.kr:3443/api_sample.html
기본 HTTP :3800 통신이나 고객의 서비스 페이지가 HTTPS이며, 최종 사용자가 upload하는 방식일 시 mixed contents 이슈 발생 됨. 좌측 도메인/포트 정보로 제공

사용자 계정 별로 홈디렉터리를 찾아가므로 접근 도메인(fileupload.~~~)이 같다면 다른 고객의 다른 도메인이라도 계정 중복 생성은 되지 않음 (하나의 DB 사용)

계정 생성 시 제한
ID : 영문, 숫자, -, _ / 1~30자 (5자 이상 권고)
PW : 영문+숫자+특수문자 조합 / !, @, $, ?, _ / 4~15자
24 Streaming Wowza HLS Streaming 스피디 제공 스토리지 + Wowza Streaming + CDN 캐시 사용 필요 고객 오리진 사용의 경우 사용 불가 (구성 시간이 오래 걸리며, network mount origin 사용으로 불안정, 퍼지 불가)

사전 데이터 이관 작업 필요
고객 플레이어 사용 시 해당 플레이어에서 hls, m3u8 재생 가능여부 확인 필요 (테스트를 통해)

초기 셋업을 위한 정보
컨텐츠 전송 프로토콜 (MMS/RTMP/기타) / 컨텐츠 코덱 (비디오/오디오) / 인코더 종류 및 프로토콜 / 인코딩 비트레이트 / 원본 비트레이트 / 최대 동접 / 예상 스토리지 사용량

Live Streaming
• 고객 오리진 : RTMP 송출 → HLS 스피디 Wowza 가능

Streaming
• 고객 오리진 : RTMP mp4 → HLS 스피디 Wowza 불가
• 스피디 스토리지 오리진 제공 : RTMP mp4 → HLS 스피디 Wowza 가능

기본 캐시 TTL : ts: 3분, m3u8: 1초

주의 : wildcard 퍼지 금지 (파일단위 퍼지를 권고)
디렉터리 내 파일 크기 수량에 따라 다를 수 있지만 디렉터리 하위 wildcard 퍼지 시 기본 CDN purge 처리 방식과 달리 전체 flush 후 재 캐시 하므로 다른 고객에 영향이 있음

컨텐츠 통계에 전체 object가 아닌 m3u8 만 제공 됨 (ts파일 제공 안됨)

조회기간 별 보관기간

최대 조회 가능 기간 기준입니다.

대분류소분류 1~3일
(5M term)
4~7일
(1H term)
8일 이상
(1D term)
Traffic2년3년3년
Transfer2년3년3년
컨텐츠 정보컨텐츠 순위1년
컨텐츠 순위 (4xx, 5xx)1년

CDN 엣지 대역

CDN 엣지 서버 및 업로드 서버의 IP 대역 목록입니다.

CDN Edge IP 대역 — Supernetting (12개)

방화벽 등록 시 상위 대역으로 등록할 경우 사용합니다.

COPY — Supernetting (12개)
1.234.26.66/32 61.111.0.0/16 110.45.0.0/16 114.108.0.0/16 117.52.0.0/16 119.207.68.0/24 121.156.106.0/24 182.162.14.0/24 182.162.15.0/24 182.162.107.0/24 182.162.108.0/24 211.110.8.0/24

CDN Edge IP 대역 — Subnetting (23개)

정밀한 방화벽 정책 적용 시 /24 단위로 등록할 경우 사용합니다.

COPY — Subnetting (23개)
1.234.26.66/32 61.111.25.0/24 61.111.59.0/24 110.45.131.0/24 110.45.216.0/24 110.45.217.0/24 110.45.243.0/24 114.108.156.0/24 114.108.157.0/24 114.108.158.0/24 117.52.19.0/24 117.52.22.0/24 117.52.158.0/24 117.52.180.0/24 117.52.181.0/24 117.52.183.0/24 119.207.68.0/24 121.156.106.0/24 182.162.14.0/24 182.162.15.0/24 182.162.107.0/24 182.162.108.0/24 211.110.8.0/24

업로드 서버 (5개)

COPY — 업로드 서버(hwupload.cdn.cloudn.co.kr 기준) (5개)
61.111.25.8/32 110.45.217.204/32 114.108.157.199/32 114.108.158.231/32 182.162.14.202/32

Rate Limit

IP 별 초당 Request 제한 설정에 대한 안내입니다.

항목내용
기능IP 별 초당 Request 제한이 가능
동작 방식1초당 10건으로 제한할 경우, 1초/10 = 100ms 에 1건만 정상 처리
Key 설정User IP+URI 를 Key로 해서 초당 제한하는 것이 비교적 안전
(고객의 문제의 경우 해당부분의 원인 해결이 필요)
기본값전체 Client IP 대상
대상 설정특정 IP 내 대상으로도 설정 가능
추가 사항
• 동일 네트워크를 사용하는 다수 이용자(학원/기타시설 등)에서 동일 Source IP로 요청하면 문제발생 소지가 있음
• 서버별 설정으로, 다수의 서버로 분산 요청 시 제한 되지 않음
• 적용 시 일과 시간 중 적용하고 VOC 발생 등 모니터링 하는 것이 좋음

Speed Limit

Client에서 대용량 파일이나 video 파일 등을 받을 때 속도제한(bandwidth limit)을 설정할 수 있습니다.

limit

query string을 이용하여 1초당 받을 byte(bandwidth) 설정

설정파라미터예시 URL
100KB 제한limit=102400
1MB 제한limit=1048576http://speedykorea.com/test/test.png?limit=1048576

limit_rate_after

최초 속도제한 없이 받을 byte 설정. 설정된 만큼 최초 받은 후 limit값에 의해 속도제한됨.
주로 Progressive Download에서 초기재생 또는 버퍼 시 buffer line을 늘리는 목적으로 설정하며, limit과 함께 사용합니다.

설정파라미터
1MB까지 무제한limit_rate_after=1048576
10MB까지 무제한limit_rate_after=10485760
조합 예시 — 초기 10MB 만큼 속도제한 없이 받은 후 초당 1MB로 속도제한:
http://speedykorea.com/test/test.png?limit=1048576&limit_rate_after=10485760
CDN PLATFORM SERVICE
스트리밍 서비스 가이드

CDN을 통한 라이브/VOD 스트리밍 서비스 구성 가이드입니다. 카메라로 촬영된 영상이 시청자에게 전달되기까지의 전체 흐름을 안내합니다.

스트리밍 서비스 유형
📡

LIVE HLS

실시간 방송을 HLS로
CDN 캐시/배포

HTTP CDN 캐싱 ABR
지연 10~30초 · Wowza 필요
🔴

LIVE RTMP

인코더→Wowza 인제스트
시청자 배포는 HLS 변환

RTMP:1935 CDN 불가
지연 1~3초 · Wowza 필요
🎬

VOD HLS

녹화 영상을 ABR로
자동 화질 전환 제공

HTTP CDN 캐싱 ABR
Wowza 또는 Storage
📥

VOD MP4 (PD)

MP4 파일 다운로드+재생
Progressive Download

HTTP CDN 캐싱 ABR 미지원
Wowza 불필요 · 가장 간단
프로토콜 비교
프로토콜방식포트사용 구간CDN 캐싱
HLSHTTP 기반 세그먼트 전송 (m3u8+ts)80/443CDN → 시청자가능
RTMP실시간 미디어 스트리밍1935인코더 → Wowza불가
PD (HTTP)Progressive Download80/443CDN → 시청자가능
서비스별 구성도
📡 LIVE HLS
인코더 (OBS)
RTMP 송출
RTMP
:1935
Wowza
RTMP→HLS 변환
HLS
m3u8+ts
CDN 엣지
캐시/배포
HTTP
:443
시청자
m3u8 재생
🔴 LIVE RTMP (인제스트 → HLS 변환)
인코더 (OBS)
H.264 + AAC
RTMP
:1935
Wowza
RTMP 수신 → HLS 변환
HLS
m3u8+ts
CDN 엣지
HLS 배포
시청자
HLS 재생
🎬 VOD HLS (Adaptive Bitrate)
오리진
Wowza/Storage
SMIL + 영상 파일
HLS
m3u8+ts
CDN 엣지
HLS 캐시
ABR
시청자
ABR 자동 전환
360p / 480p / 720p
📥 VOD MP4 (Progressive Download)
오리진 Storage
MP4 파일
HTTP
:443
CDN 엣지
MP4 캐시
시청자
다운로드 + 재생
핵심: CDN은 HTTP 기반 프로토콜(HLS, PD)만 캐싱/배포할 수 있습니다. RTMP는 인코더→Wowza 인제스트 구간에서만 사용되며, 최종 배포는 항상 HLS(HTTP)로 변환됩니다.
대역폭 산정 공식
공식: 필요 대역폭(Mbps) = 영상 비트레이트(Mbps) × 동시접속자 수
전송량: 시간당 전송량(GB) = 비트레이트(Mbps) × 3,600초 ÷ 8 ÷ 1,024 × 동시접속자 수
LIVE HLS / LIVE RTMP 대역폭 산정

LIVE 스트리밍은 비트레이트 × 동시접속자로 실시간 대역폭을 산정합니다.

화질 비트레이트 동접 100명 동접 1,000명 동접 3,000명 동접 30,000명
360p 0.8 Mbps 80 Mbps
36 GB/h
800 Mbps
360 GB/h
2.4 Gbps
1.08 TB/h
24 Gbps
10.8 TB/h
480p 1.5 Mbps 150 Mbps
67 GB/h
1.5 Gbps
675 GB/h
4.5 Gbps
2.03 TB/h
45 Gbps
20.3 TB/h
720p 2.5 Mbps 250 Mbps
112 GB/h
2.5 Gbps
1.12 TB/h
7.5 Gbps
3.38 TB/h
75 Gbps
33.8 TB/h
1080p 5.0 Mbps 500 Mbps
225 GB/h
5 Gbps
2.25 TB/h
15 Gbps
6.75 TB/h
150 Gbps
67.5 TB/h
RTMP 인제스트 대역폭: 인코더→Wowza 구간은 스트림 수 × 비트레이트입니다. (예: 720p 1스트림 = 2.5Mbps, 2스트림 = 5Mbps). CDN 배포 대역폭과 별도로 오리진 업로드 대역폭을 확보해야 합니다.
VOD HLS 대역폭 산정

VOD HLS는 ABR(자동 화질 전환)을 사용하므로, 평균 비트레이트 × 동시 시청자로 산정합니다. 실제로는 시청자마다 다른 화질을 사용하므로 가중 평균을 적용합니다.

ABR 프로파일 비트레이트 범위 평균 예상 동접 3,000명 동접 30,000명
360p / 480p / 720p 0.8 ~ 2.5 Mbps ~1.8 Mbps 5.4 Gbps
2.43 TB/h
54 Gbps
24.3 TB/h
480p / 720p / 1080p 1.5 ~ 5.0 Mbps ~3.0 Mbps 9 Gbps
4.05 TB/h
90 Gbps
40.5 TB/h
VOD MP4 (PD) 전송량 산정

VOD MP4는 파일 다운로드 방식이므로 파일 크기 × 수강자 수로 월간 전송량을 산정합니다. 동시접속보다 총 다운로드 횟수가 기준입니다.

영상 크기 영상 길이 (참고) 수강자 3,000명
1회 시청 기준
수강자 30,000명
1회 시청 기준
동접 3,000명
동시 다운로드 대역폭
500 MB ~30분 (720p) 1.5 TB 15 TB ~2 Gbps
500MB÷1,800초×3,000×8
1 GB ~60분 (720p) 3 TB 30 TB ~4 Gbps
1GB÷3,600초×3,000×8
2 GB ~90분 (1080p) 6 TB 60 TB ~5.3 Gbps
2GB÷5,400초×3,000×8
5 GB ~120분 (1080p) 15 TB 150 TB ~8.9 Gbps
5GB÷7,200초×3,000×8
산정 요약:
LIVE = 비트레이트(Mbps) × 동접 수 = 필요 대역폭(Mbps)
VOD HLS = 평균 비트레이트(Mbps) × 동접 수 = 필요 대역폭(Mbps)
VOD MP4 = 파일 크기(GB) × 다운로드 수 = 월간 전송량(TB)
LIVE HLS 스트리밍

HLS(HTTP Live Streaming)는 Apple이 개발한 스트리밍 프로토콜로, 영상을 작은 세그먼트(.ts)로 분할하여 HTTP로 전송합니다. 모든 브라우저/모바일에서 재생 가능하며 CDN 캐싱에 최적화되어 있습니다.

LIVE HLS 구성도
인코더 (OBS 등)
RTMP 송출
RTMP →
Wowza
HLS 변환
HLS →
CDN 엣지
캐시/배포
시청자
m3u8 재생
HLS 동작 원리
단계동작파일
1. 분할H.264+AAC 영상을 2~10초 단위 세그먼트로 분할.ts 파일
2. Manifest 생성세그먼트 재생 순서가 작성된 매니페스트 파일 생성.m3u8 (playlist)
3. CDN 캐싱CDN이 m3u8과 ts 파일을 캐시하여 엣지에서 배포HTTP GET
4. 재생플레이어가 m3u8을 읽고 ts를 순차 다운로드하며 재생ABR 자동 전환
CDN 설정
항목설정비고
CDN 도메인live.cdn.speedykorea.com시청자 접속 URL
m3u8 캐시 TTL1~3초LIVE이므로 짧게
ts 캐시 TTL30~60초세그먼트는 불변
오리진 이중화Active/BackupFailover 2~5분
Timeout30초기본값, 변경 가능
지연 시간: Chunk Duration(2초) × Chunk Count(5개) = 약 10초 지연. chunk를 줄이면 지연 감소하나 CDN 요청 수 증가.
m3u8 파일 구조
# playlist.m3u8 예시 #EXTM3U #EXT-X-VERSION:3 #EXT-X-TARGETDURATION:2 #EXT-X-MEDIA-SEQUENCE:1024 #EXTINF:2.000, media_1024.ts #EXTINF:2.000, media_1025.ts #EXTINF:2.000, media_1026.ts # LIVE이므로 #EXT-X-ENDLIST 없음 # 플레이어는 주기적으로 m3u8을 # 다시 요청하여 새 세그먼트 확인
재생 URL
# 시청자 접속 URL https://live.cdn.speedykorea.com /live/stream_720p/playlist.m3u8
LIVE RTMP (인코더 송출)

RTMP(Real-Time Messaging Protocol)는 인코더에서 미디어 서버(Wowza)로 영상을 실시간 전송하는 프로토콜입니다. 최종 시청자에게는 HLS로 변환하여 CDN을 통해 배포합니다.

RTMP 인코더 설정
항목설정값설명
서버 URLrtmp://[wowza-ip]:1935/liveWowza RTMP 수신 주소
스트림 키stream_nameApplication 내 스트림 이름
비디오 코덱H.264 (x264)필수
오디오 코덱AAC (44.1/48kHz)필수
비트레이트1,000~4,000 kbps해상도/대역폭에 따라
키프레임 간격1~2초필수 HLS 세그먼트 기준
해상도1280x720 (720p)또는 1920x1080
Wowza HLS 변환 설정
항목설정설명
Application TypeLive실시간 전용
HLS Packetizer활성화RTMP → HLS 변환
Chunk Duration2초ts 세그먼트 길이
Chunk Count5개m3u8 내 세그먼트 수
중요: 키프레임 간격을 반드시 1~2초로 설정하세요. 간격이 길면 HLS 세그먼트가 커져 재생 시작이 느려집니다.
OBS Studio 설정
# OBS > 설정 > 방송 서비스: 사용자 지정 서버: rtmp://wowza.speedykorea.com:1935/live 스트림 키: mystream_720p # 설정 > 출력 인코더: x264 비트레이트: 2500 kbps 키프레임: 2# 설정 > 비디오 해상도: 1280x720 FPS: 30
RTMP vs HLS
# 구간별 프로토콜 인코더 ─RTMP─▶ Wowza │ HLS 변환 │ Wowza ─HLS──▶ CDN ──▶ 시청자 # RTMP: 인제스트 전용 (포트 1935) # HLS: 배포 전용 (포트 80/443)
VOD HLS (Adaptive Bitrate)

VOD HLS는 녹화된 영상을 여러 화질로 분할(SMIL)하여 시청자 네트워크 상태에 따라 최적의 화질을 자동 전환(ABR)하며 제공하는 방식입니다.

VOD HLS 구성도
오리진 (Wowza/Storage)
SMIL + 영상 파일
HLS →
CDN 엣지
HLS 캐시/배포
시청자
ABR 자동 화질 전환
ABR 동작 원리
단계동작
1. Manifest 요청플레이어가 m3u8 파일을 서버에 요청
2. 파싱m3u8에서 화질별(720p/480p/360p) 스트림 정보 파악
3. 대역폭 측정사용자 네트워크 대역폭을 실시간 측정
4. 최적 화질 선택대역폭에 맞는 최적 화질의 세그먼트를 다운로드
5. 자동 전환네트워크 변화 시 화질 자동 전환 (끊김 최소화)
CDN 설정
항목설정비고
CDN 도메인hls.cdn.speedykorea.com시청자 접속 URL
캐시 TTL3600초VOD이므로 길게 설정 가능
SMIL 파일Wowza에서 자동 생성멀티 비트레이트 매핑
VOD HLS URL 구조
# 기본 URL https://hls.cdn.speedykorea.com/hls/ {content_id}/mp4/ {content_id}_720p.mp4/ index.m3u8 # SMIL 기반 ABR URL https://hls.cdn.speedykorea.com/hls/ {content_id}/mp4/ {content_id}_720p.mp4/ smil:{uuid}.smil/ index.m3u8 # SMIL 파일 = 화질별 영상 매핑 # → 360p, 480p, 720p 자동 전환
Master Playlist (ABR)
#EXTM3U #EXT-X-STREAM-INF:BANDWIDTH=800000 chunklist_360p.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=1500000 chunklist_480p.m3u8 #EXT-X-STREAM-INF:BANDWIDTH=3000000 chunklist_720p.m3u8
VOD MP4 (Progressive Download)

PD(Progressive Download)는 MP4 파일을 HTTP로 다운로드하면서 동시에 재생하는 방식입니다. HLS와 달리 단일 파일을 그대로 전송하며, 화질 자동 전환(ABR)은 지원하지 않습니다.

VOD MP4 구성도
오리진 (Storage/서버)
MP4 파일 저장
HTTP →
CDN 엣지
MP4 캐시/배포
시청자
다운로드+재생
HLS vs PD 비교
항목VOD HLSVOD MP4 (PD)
전송 방식세그먼트 분할 전송 (.ts)단일 파일 전송 (.mp4)
ABR 지원지원 (자동 화질 전환)미지원 (고정 화질)
재생 시작첫 세그먼트 로드 후 즉시MP4 헤더(moov) 로드 후
구간 탐색세그먼트 단위 탐색byte-range 탐색
Wowza 필요필요 (또는 Storage)불필요 (HTTP 서버만)
적합 용도대규모 동접, 모바일 최적화소규모 다운로드, 간단한 재생
CDN 설정
항목설정비고
CDN 도메인vod.cdn.speedykorea.com시청자 접속 URL
캐시 TTL3600초 이상영상 파일 불변
Range 요청지원 필수구간 탐색(Seek)에 필요
운영 Tip: MP4 파일의 moov atom(메타데이터)이 파일 끝에 있으면 재생 시작이 느려집니다. ffmpeg -movflags faststart 옵션으로 moov를 앞으로 이동하면 즉시 재생이 가능합니다.
LIVE 필수: LIVE 서비스는 본 방송 최소 1일 전에 CDN 경유 테스트 방송을 실시하여 화질, 지연시간, 동시접속 등을 확인하세요.
💬 문의하기