Zencoder launched in 2010 and was acquired by Brightcove in 2012. It's a mature video encoding API favored by media companies and broadcasters — job-based async processing, HLS/DASH packaging, S3/GCS input and output, and detailed encoding configuration. It's part of the Brightcove ecosystem.
ChangeThisFile is built for a different use case: a developer who needs to convert a file and get back a result without building an async job pipeline. POST a file, receive the converted file in the response. Works with curl, requests, or fetch. No SDK required.
The honest comparison: if you're a media company encoding video at scale, Zencoder's depth is appropriate. If you're a developer normalizing user uploads or doing occasional format conversion, ChangeThisFile is far simpler.
Quick verdict
Broadcasting or OTT platform that needs HLS/DASH, DRM, and multi-CDN delivery? Zencoder is built for this use case. ChangeThisFile is not.
Need to convert MP4 to WebM, extract audio, or normalize camera uploads? ChangeThisFile — fewer than 10 lines of code, no async pipeline, no storage buckets to configure.
Already in the Brightcove ecosystem? Zencoder integrates tightly with Brightcove's video platform. If you're already there, staying in the ecosystem makes sense.
Starting fresh and need to convert video files? ChangeThisFile's free tier (1,000/mo, no card) lets you test immediately with zero commitment.
Pricing comparison
| Plan | ChangeThisFile | Zencoder |
|---|---|---|
| Free tier | 1,000 conversions/month (no card) | No free tier — pay-per-minute from start |
| Entry paid | $29/mo — 10,000 conversions | Usage-based encoding minutes (~$0.04–0.05/min) |
| $99/mo equiv. | $99 Startup — 50,000 conversions | ~2,000–2,500 encoding minutes |
| High volume | $499 Scale / $1,999 Growth | Volume discounts for large contracts |
| Billing model | Per conversion (flat, any duration) | Per encoding minute (longer files cost more) |
Zencoder's per-minute billing means a 10-minute video costs 10x more to encode than a 1-minute video. ChangeThisFile charges per conversion regardless of file length — a 2-minute and a 20-minute video both consume one conversion credit. For variable-length content, ChangeThisFile's billing is significantly more predictable.
Zencoder also charges for output storage and egress on top of encoding minutes. ChangeThisFile returns the file directly — no storage billing.
Feature comparison
| Feature | ChangeThisFile | Zencoder |
|---|---|---|
| Free API tier | Yes — 1,000/mo, no card | No |
| HLS/DASH output | No | Yes |
| Webhook callbacks | No | Yes |
| S3/GCS input and output | No | Yes |
| Advanced encoding settings (bitrate, codec, profile) | No | Yes |
| Multi-output per job | No | Yes |
| Format conversion (MP4↔WebM, etc.) | Yes — FFmpeg, full codec support | Yes |
| Audio extraction | Yes (video→MP3/WAV/FLAC/AAC etc.) | Yes (audio output) |
| Synchronous API | Yes — file returned immediately | No — async job system |
| SDK required | No — curl/fetch/requests work directly | SDKs for Ruby, Python, PHP, Java, .NET |
| Non-video conversions | Yes — 530+ routes for images, docs, etc. | No — video/audio only |
| Brightcove platform integration | No | Yes — native integration |
API and developer experience
ChangeThisFile is a single endpoint. No SDK. Source format auto-detected from filename. Target format is the only required parameter beyond your API key.
curl -X POST https://changethisfile.com/v1/convert \
-H "Authorization: Bearer ctf_sk_your_key" \
-F "file=@video.avi" \
-F "target=webm" \
--output video.webm
Same call in Python: `requests.post(..., files={"file": open(...)}, data={"target": "webm"})`. Same in Node fetch. No library to install, no job ID to track.
Zencoder uses an async job API. You submit a job with an input URL, output specifications (format, codec, bitrate, size), and a notification URL. Zencoder encodes and posts a webhook when done. SDKs for Ruby, Python, PHP, Java, and .NET wrap the HTTP calls. This model is well-suited for high-volume media pipelines where you need precise encoding control and cloud storage integration. For a simple format conversion use case, it's heavier than necessary.
Format and codec coverage
Both use FFmpeg-class codec coverage for common video formats. ChangeThisFile supports 690 routes across video (MP4, WebM, MKV, AVI, MOV, 3GP, FLV, WMV, and more), audio (MP3, WAV, FLAC, AAC, M4A, OGG, OPUS), images, documents, spreadsheets, ebooks, archives, and fonts.
Zencoder focuses on video and audio encoding with more fine-grained control: H.264 profiles, H.265/HEVC, VP9, AV1, bitrate ladders, frame rate control, watermarking, and HLS/DASH segmentation. For broadcast quality control, Zencoder's encoding parameters are much more configurable.
ChangeThisFile converts to standard output profiles. You specify the target format, not the encoding parameters. For most web developer use cases, this is sufficient. For broadcasting with specific codec profiles, Zencoder's control matters.
When to choose which
| Use case | Recommended |
|---|---|
| Brightcove-integrated video platform | Zencoder |
| HLS/DASH output for streaming | Zencoder |
| Input/output directly from S3 or GCS | Zencoder |
| Fine-grained encoding parameters | Zencoder |
| Async job pipeline with webhooks | Zencoder |
| Convert MP4 to WebM for the browser | ChangeThisFile |
| Extract audio track from a video | ChangeThisFile |
| Normalize camera uploads to MP4 | ChangeThisFile |
| Free tier / no card required | ChangeThisFile |
| Synchronous response, no polling | ChangeThisFile |
Zencoder is the right choice if you're in the Brightcove ecosystem or need fine-grained encoding control for a media platform. For developers who need to convert video files without standing up an async pipeline, ChangeThisFile is faster, cheaper, and simpler. Get a free API key — 1,000 conversions/month, no credit card, working in minutes.