Skip to content

0.2.0 — Cloud Transcoding

Choose a tag to compare

@github-actions github-actions released this 24 Feb 11:43
· 73 commits to main since this release

Delegate transcoding to Cloudflare Stream, AWS MediaConvert, or Mux — same Transcoder protocol, zero local GPU required.

New Features

ManagedTranscoder

ManagedTranscoder offloads heavy transcoding work to cloud providers while conforming to the same Transcoder protocol as AppleTranscoder and FFmpegTranscoder. Local file in, local file out — callers don't need to know whether transcoding happens locally or in the cloud.

  • Cloudflare Stream — Zero egress costs, global CDN, Bearer token auth
  • AWS MediaConvert — Enterprise-grade, SigV4 request signing, S3 storage integration
  • Mux — Simplest API, auto-adaptive bitrate, Basic Auth

Full job lifecycle management: upload → create job → poll status → download output → optional cloud asset cleanup.

Streaming Upload & Download

URLSessionHTTPClient now streams files to and from disk without loading entire files into memory. Handles 500 MB+ video files with constant memory footprint and granular progress reporting through 5 phases (upload, job creation, polling, download, complete). Uses OSAllocatedUnfairLock for compile-time Sendable safety on Darwin, with Data(contentsOf:) fallback on Linux.

Configurable Quality Presets

ManagedTranscodingConfig.defaultPreset lets users choose the default quality (.p720 by default). Set .audioOnly for podcast audio, .p1080 for HD, or any QualityPreset value.

HLSEngine Integration

HLSEngine.managedTranscoder(config:) factory method creates a cloud transcoder transparently — same API surface as local transcoders.

Fixes

  • SAMPLE-AES encryption — Fixed OpenSSL-based sample encryption for cross-platform compatibility

License

  • Relicensed from MIT to Apache 2.0 across all source and test files, with proper SPDX headers and NOTICE file

Documentation

  • New DocC article: Cloud Transcoding with ManagedTranscoder — configuration, providers, progress, job lifecycle, error handling
  • Updated landing page, Transcoding article cross-references, and README
  • 11 DocC articles (was 10), 0 warnings

Stats

Metric 0.1.0 0.2.0
Tests 1,595 1,809
Coverage 96.32% 97.29%
DocC articles 10 11
Platforms 6 6
SwiftLint violations 0 0
Build warnings 0 0

Full Changelog: 0.1.0...0.2.0