← Back to Products

Software-On-Demand

CC Encode

GPU video transcoding over a REST API. H.264 and HEVC HLS land in your S3 or R2 bucket.

Free trial: encode the first 5 minutes of a video at 720p. No card.

FFmpeg HLS/DASH Streaming AWS
Competitive per-minute pricing

After the trial

Buy credits, then spend them on jobs

1 credit = $0.01. Credits do not expire. There is no monthly Media API plan.

Pack Price Credits
Starter $5 500
Basic $10 1,000 + 100 bonus
Plus $25 2,500 + 500 bonus
Professional $50 5,000 + 1,750 bonus
Work Credits USD
SD transcode (360p, 480p) 0.75 / minute $0.0075 / minute
HD transcode (720p–1440p) 1.0 / minute $0.01 / minute
4K transcode (2160p) 2.5 / minute $0.025 / minute
Transcription 1.5 / minute $0.015 / minute
Audio transcode 0.01 / minute / quality $0.0001 / minute / quality
Images from 0.20 / variant from $0.002 / variant

HD encode is $0.01 per output-minute. Mux Plus 720p encode starts at $0.025/min (Sept 2026). AWS MediaConvert Basic HD is about $0.015/min at list. AWS HD at high volume is lower. Cloudflare Stream has no encode fee; you pay storage and delivery instead. Cost calculator.

Why CC Encode?

Queue a video. The worker writes an H.264 HLS ladder and calls your webhook when it finishes. HEVC can sit beside that ladder. A progressive H.264 MP4 of the largest rung is optional.

The API key holds the S3 or R2 credentials. Outputs upload to that bucket. A key without its own bucket uses our storage.

For developers

Bearer token on POST /api/transcode. Leave the extra fields off and the job is the H.264 ladder, capped at 30 fps.

curl -X POST https://services.closedcircuit.io/api/transcode \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{"source_path": "videos/source.mp4", "qualities": ["1080p", "720p", "480p"], "webhook_url": "https://yourapp.com/webhooks/transcode"}'

PHP, Laravel, TypeScript, and JavaScript versions: CC Encode examples.

After the trial

The free trial encodes the first 5 minutes of a video at 720p. No card. After that, prepaid packs from $5. One credit is $0.01. Credits do not expire.

  • SD (360p, 480p): 0.75 credits per minute
  • HD (720p, 1080p, 1440p): 1.0 credit per minute
  • 4K (2160p): 2.5 credits per minute

A source above 30 fps is capped at 30 unless the request sets fps. Keeping a higher rate multiplies the encode charge by ceil(fps / 30). That multiplier does not apply to product detection.

What you can request

  • Rungs: 360p, 480p, 720p, 1080p, 1440p, 2160p
  • H.264 HLS, optional HEVC, optional progressive H.264 MP4
  • AAC audio
  • Thumbnails, a sprite sheet, loudness normalization, a logo watermark, HDR to SDR
  • A clip, with start_time and duration
  • Subtitles from a VTT or SRT you already have. Burn-in takes one track.
  • AES-128: a key file next to the HLS playlist. This is not Widevine, PlayReady, or FairPlay.
  • A DASH manifest that lists the HLS renditions already encoded

Dashboard

Create a key, buy credits, and watch the job. The extra encode options are set on the API request.

Prepaid credit packs

Buy credits in the dashboard, then spend them on jobs. Packs and per-job rates are in the table above.

Competitive Pricing

Prepaid credit packs from $5 (500 credits). 1 credit = $0.01. HD transcode is 1.0 credit per minute. Credits do not expire.

H.264 and HEVC

The default job is an H.264 HLS ladder. HEVC can be encoded beside it. A progressive H.264 MP4 of the largest rung is optional.

360p to 4K

Rungs are 360p, 480p, 720p, 1080p, 1440p, and 2160p. Output is HLS, plus a DASH manifest that lists those renditions.

Your bucket

The API key stores the S3 or R2 credentials. The worker uploads there. A key without its own bucket uses our storage.

Related Services