다운로드 → 스트리밍 전환 시연같은 영상을 기존 방식과 HLS 스트리밍으로 나란히 재생합니다

통신 환경

1영상 업로드 → 자동 변환원본을 올리면 360p · 720p · 1080p, 4초 조각으로 자동 변환됩니다

2나란히 재생 비교

재생 중에 위쪽 통신 환경을 바꿔 보세요 · 4G · 약한 신호 · 끊김은 서버가 속도를 일부러 낮춰 흉내 냅니다
기존통째로 다운로드 후 재생
첫 화면까지
–
받은 데이터
–
다운로드
–
영상 파일 전체(–)를 다 받아야 첫 화면이 나옵니다.
중간에 연결이 끊기면 받던 파일을 버리고 처음부터 다시 받아야 하고, 앞부분만 보고 나가도 전체 용량만큼 데이터가 나갑니다.
새 방식HLS 스트리밍
첫 화면까지
–
받은 데이터
–
멈춤 횟수
–
측정 속도
–
미리 받아 둔 분량
–
재생 위치
–
화질 단계 — ■ 재생 중 · ■ 받는 중
받은 조각 (최근 순)
조각화질크기받은 시간속도

3앱이 받는 API 응답GET /api/videos

–
기존 앱을 끊지 않고 옮기는 방법
  1. 기존 downloadUrl은 그대로 둡니다. 업데이트하지 않은 구버전 앱은 지금처럼 다운로드로 재생합니다.
  2. streamUrl만 새로 더합니다. 새 앱은 이 주소가 있으면 스트리밍으로 재생합니다.
  3. 변환이 끝나지 않은 영상은 streamUrl이 null이라, 새 앱도 기존 방식으로 재생합니다. 일괄 변환 중에도 서비스가 멈추지 않습니다.

Flutter 앱에서는 재생 주소만 바꾸면 됩니다. 아이폰은 기본 재생기(AVPlayer), 안드로이드는 ExoPlayer가 이 화면과 같은 방식으로 화질을 자동으로 바꿉니다.

4월 운영비 계산2026년 11월 공시 단가 기준

R2: 저장 $0.015/GB · 월 10GB 무료 · 전송 무료 · 읽기 요청 월 1,000만 건 무료 · S3(서울): 저장 약 $0.025/GB · CloudFront 정액 Pro $15/월(전송 50TB · 요청 1,000만 건 포함, 초과 요금 없음) · Cloudflare Stream: 저장 1,000분당 $5 · 시청 1,000분당 $1 (변환 무료). 모든 계정은 발주사 명의로 직접 결제하며 실제 청구액은 사용량에 따라 달라질 수 있습니다.