클라우드플레어, Streamline 공개로 맞춤형 비디오 파이프라인 구축 지원
클라우드플레어가 개발자 플랫폼에서 맞춤형 비디오 경험을 구축할 수 있는 새로운 개발자 플레이그라운드 'Streamline'을 공개했다. Workers, Containers, Durable Objects를 활용해 실시간 비디오 처리 및 게시를 지원한다.
핵심 요약
- 클라우드플레어 Streamline은 맞춤형 비디오 파이프라인 구축을 위한 개발자 플레이그라운드이다.
- Workers, Containers, Durable Objects를 활용해 비디오를 실시간으로 처리하고 게시한다.
- RTMP, HLS, 웹캠 등 다양한 입력과 오버레이, 자막, 필터링 등 작업을 지원한다.
- 오픈 소스로 제공되며, 로컬 개발 및 클라우드플레어 배포를 모두 지원한다.
- 1Worker 앱 세션 시작
- 2컨테이너 미디어 엔진 가동
- 3비디오 입력 및 처리
- 4처리된 비디오 출력
- 5세션 종료
맞춤형 비디오 파이프라인의 등장
클라우드플레어가 개발자 플랫폼에서 맞춤형 비디오 경험을 구축할 수 있는 새로운 개발자 플레이그라운드 'Streamline'을 공개했다. Streamline은 Workers, Containers, Durable Objects 및 다양한 미디어 프로토콜을 활용하여 비디오를 수정하고, 그 결과를 라이브스트림 또는 새로운 호스팅 비디오로 즉시 게시하는 시스템을 시연한다.
이 시스템은 기존 Cloudflare Stream의 기능을 넘어 라이브스트림에 동적 주석을 렌더링하거나 호스팅 비디오에 자막을 삽입하는 등 복잡한 비디오 처리 요구사항을 충족하도록 설계되었다. Streamline은 오픈 소스로 제공되며, 개발자들이 직접 체험할 수 있는 공개 플레이그라운드도 함께 배포된다.
변화의 배경과 기술적 맥락
Cloudflare Stream은 강력한 방송 플랫폼이지만, 특정 고객 요구사항은 맞춤형 비디오 파이프라인을 필요로 한다. 예를 들어, 라이브스트림에 실시간으로 동적 주석을 추가하거나, 호스팅된 비디오에 자막을 영구적으로 삽입하는 경우 등이 이에 해당한다.
이러한 비디오 처리 파이프라인은 예측 가능한 메모리 및 CPU 용량을 갖춘 내구성 있고 장기 실행되는 환경을 요구한다. 비디오 스트림은 몇 분 또는 몇 시간 동안 실행될 수 있으므로, 미디어 처리 프로세스는 이를 시작한 요청과 독립적인 수명 주기를 가져야 한다.
클라우드플레어는 이러한 요구사항을 충족하기 위해 Containers(장기 실행 런타임), Durable Objects(오케스트레이션), Workers(제어 신호 및 모니터링)와 같은 기본 요소를 제공한다. Streamline은 이러한 클라우드플레어의 기본 요소들을 결합하여 실시간 미디어 처리를 위한 시스템을 구축한다.
Streamline의 아키텍처 및 동작 방식
Streamline 배포는 미디어 입출력 및 처리를 담당하는 미디어 엔진(Media Engine)과 미디어 세션을 생성, 구성, 관찰, 중지하는 제어 애플리케이션(Controlling Application)의 두 가지 주요 구성 요소로 이루어진다.
미디어 엔진은 클라우드플레어 컨테이너에서 실행되며, Go로 작성된 컨트롤러(HTTP 서버 구현)와 FFmpeg를 사용하는 프로세서로 구성된다. 이 엔진은 RTMPS(Real-Time Messaging Protocol Secure) 재생 스트림, Cloudflare Stream의 HLS(HTTP Live Streaming) 매니페스트 및 세그먼트, 웹캠 등 다양한 소스에서 비디오를 가져와 처리할 수 있다. 처리된 비디오는 RTMPS를 통해 다른 Stream Live 입력으로 게시되거나, 아웃바운드 WebSocket을 통해 Durable Object 릴레이로 미리보기 비디오를 전송한다.
제어 애플리케이션은 Workers를 기반으로 구축되며, 클라이언트 로직, ID 및 접근 정책을 포함하는 사용자 인터페이스와 Durable Object로 구현된 오케스트레이터로 구성된다. 오케스트레이터는 세션, 컨테이너 수명 주기, 미리보기 릴레이를 조정한다. 개발 중에는 로컬 Docker 인스턴스와 직접 연결하여 Durable Object 없이 시스템을 실행할 수 있다.
제어 Worker 애플리케이션이 장기 실행 미디어 처리 세션을 시작하면, 애플리케이션이 연결을 끊거나 다시 연결해도 컨테이너는 계속해서 비디오를 처리한다. 컨테이너는 `onActivityExpired()` 콜백을 재정의하여 정의된 간격 동안 요청을 받지 않아도 자동으로 절전 모드로 전환되지 않고 파이프라인을 유지한다. 각 세션에는 최대 실행 시간이 설정되어 무한정 실행되지 않도록 보장하며, 활성 세션 중에는 해당 컨테이너 인스턴스가 다른 애플리케이션에 사용될 수 없다.
Streamline은 `@streamline/api`와 `@streamline/cloudflare` 두 가지 패키지를 통해 고수준의 세션 기반 API를 제공한다. 이 API는 `createStreamline()`으로 인스턴스를 생성하고, `sessions.create()`로 새 세션을 생성하며, `session.start(config)`로 비디오 처리 파이프라인을 시작한다. `config` 객체는 `input`, `pipeline`(작업 배열), `output`을 정의하는 JSON 형식이다. 지원되는 작업에는 `filter`(블러, 채도 등), `overlay`(이미지 오버레이), `subtitle`(자막 삽입), `encode`(인코딩 매개변수 지정)가 포함된다. `session.ingest()`를 통해 웹캠 모드로 비디오 데이터를 전송하거나, `session.annotation()`을 통해 투명 오버레이를 업데이트할 수 있다.
출력 모드로는 RTMP와 WebSocket이 지원된다. 특히 `output: { mode: 'websocket' }`을 지정하면 저지연 미리보기 비디오를 받을 수 있다. 컨테이너는 fMP4 조각을 Durable Object에 게시하고, Durable Object는 이를 `/relay/view` URL의 WebSocket을 통해 제어 애플리케이션에 전달한다. 애플리케이션은 이 WebSocket에 연결하여 Streamline에서 제공되는 비디오 데이터를 실시간으로 수신할 수 있다.
개발자 및 사용자에게 미치는 영향
Streamline은 개발자들이 Cloudflare Stream과 같은 관리형 서비스와 Workers, Containers, Durable Objects 같은 저수준 기본 요소를 결합하여 고도로 맞춤화된 미디어 파이프라인을 구축할 수 있도록 돕는다. 이는 기존 서비스만으로는 구현하기 어려웠던 복잡한 비디오 처리 시나리오를 가능하게 한다.
이 프로젝트는 오픈 소스로 제공되어 개발자들이 미디어 엔진과 예제 애플리케이션 코드를 자유롭게 활용할 수 있다. 개발자들은 Streamline 컨테이너를 로컬 환경에서 실행하거나 자신의 클라우드플레어 계정에 배포하여 커스텀 비디오 경험을 생성할 수 있다.
제공되는 예제 Worker 애플리케이션은 Astro 웹 프런트엔드를 포함하며, 오버레이, 자막 디코딩, 필터, PIP(Picture-in-Picture) 등 일반적인 사용 사례를 시연한다. 또한, 성능 지표 및 시스템 추적을 위한 프로브 기능이 포함되어 있어 새로운 기능을 개발할 때 디버깅에 유용하다. 클라우드플레어는 Streamline의 기능을 직접 체험해 볼 수 있는 공개 플레이그라운드도 제공한다.
적용 조건, 제약 및 향후 계획
Streamline은 설계 단계부터 보안을 중요하게 고려한다. 권한 있는 사용자만 새 세션을 생성하거나 기존 세션을 제어할 수 있으며, 세션 간 격리가 보장된다. Stream RTMPS 입출력 키는 Worker secrets 또는 Durable Object 저장소에 안전하게 보관되며, 제어 애플리케이션에 노출되지 않는다. Workers의 Access 통합을 통해 배포의 프라이버시가 유지되며, 한 번에 하나의 세션만 실행될 수 있고 다른 주체가 활성 세션을 중지하거나 교체할 수 없다. 미리보기 비디오 스트림은 Cloudflare Access 서비스 토큰과 세션별 권한 부여를 통해 보안을 강화한다.
현재 Streamline은 미디어 처리에 컨테이너의 CPU를 사용하므로, 고품질 또는 고프레임률에서는 병목 현상이 발생할 수 있다는 한계가 있다. 또한, 파이프라인 내 작업 순서는 미디어 엔진에 의해 고정되어 있으며, `session.annotation()` 호출을 통한 애니메이션 오버레이 업데이트 속도는 PNG 이미지 크기, 대역폭, 처리 능력에 따라 제한될 수 있다.
클라우드플레어는 향후 Streamline 아키텍처를 확장하여 컴퓨터 비전 파이프라인, 하드웨어 가속 미디어 처리, WebRTC 및 MoQ(Media over QUIC)와 같은 차세대 프로토콜을 사용한 실시간 경험, 그리고 Workers 내에서의 기본 비디오 인코딩 및 디코딩 기능 지원을 목표로 한다.
데빈은 실제 기자가 아닌 AI 기술 에디터입니다. 출처의 공개 기사 본문 또는 RSS 제공 정보에서 사실을 추려 배경과 기술적 영향을 독립적인 한국어 기사로 재구성합니다. 직접 취재한 기사나 원문 전문의 번역·재게시가 아닙니다.
출처 · 원문 확인
Cloudflare Blog · Willi Geiger
Streamline: custom video pipelines with Cloudflare Stream and Workers
원문 발행: 2026-10-03 01:13:45
원문과 이미지의 권리는 해당 권리자에게 있습니다. 정정·게재 중단 요청은 문의 안내를 이용해 주세요.
관련 소식
- Cloudflare, 통합 옵저버빌리티 플랫폼 위한 8가지 주요 업데이트 발표 · Cloudflare Blog · 2026-10-02
- 클라우드플레어, 오픈소스 의사결정 모델 Clef 및 강화 학습 미세 조정 플랫폼 공개 · Cloudflare Blog · 2026-10-02
- 클라우드플레어, AI Gateway User Insights에 모델 과도 사용 식별 기능 추가 · Cloudflare Blog · 2026-09-30
- Cloudflare Containers, 에이전트 샌드박스 확장을 위한 재설계 · Cloudflare Blog · 2026-09-30
- 클라우드플레어, IPsec 양자 다운그레이드 공격 방어 규격 개발 및 베타 적용 · Cloudflare Blog · 2026-09-29
댓글 0
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.