Quickstart
From zero to a playable adaptive-bitrate stream in about five minutes. This uses the Node SDK; the same steps apply in any of the thirteen SDKs.
1. Get a key
Request access and you'll receive a project API key that looks like sk_live_…. Keep it server-side. Export it so the SDK can read it:
export REZEIS_KEY="sk_live_xxxxxxxxxxxxxxxx"
2. Install an SDK
npm install rezeis
3. Your first encode
Point the job at any public MP4. Rezeis probes it, picks a ladder, and returns a job id immediately.
import Rezeis from 'rezeis';
const rz = new Rezeis(process.env.REZEIS_KEY);
const job = await rz.jobs.create({
input: 'https://storage.rezeis.click/samples/bbb-1080p.mp4',
profile: 'abr-720p',
outputs: ['hls'],
});
console.log(job.id); // job_8f2a71c4
4. Track progress
For production, set a webhook on the job and react to job.ready. To watch it locally, poll:
let j = await rz.jobs.get(job.id);
while (j.status !== 'ready' && j.status !== 'failed') {
await new Promise(r => setTimeout(r, 2000));
j = await rz.jobs.get(job.id);
console.log(j.status, j.progress ?? '');
}
5. Play it back
When status is ready, the asset's playback URL is a standard HLS master manifest. Any player understands it — here's the Rezeis React player:
import { Player } from '@rezeis/react';
<Player src={j.playback} autoPlay controls />
Or hand the same URL to hls.js, Video.js, AVPlayer or ExoPlayer.
Next steps
- Swap
abr-720pforautoto let per-title analysis choose the ladder. - Add
"dash"tooutputsfor DASH alongside HLS. - Protect private content with playback tokens.
- Wire up webhooks so your app reacts the moment a job is ready.