Upload it once. It plays at every size.
A finished video, uploaded once, offered to every viewer at the quality their connection can carry. You give a player one address; nothing has to run at your end while people are watching.
From a file to a player
What it is
A video on demand is a file that is already finished and plays whenever somebody asks for it — a different thing from a broadcast that is happening now. You upload the file; we produce every quality your pack allows and a poster frame from it; you get one address to hand a player and one block of markup to paste into a page.
How it works
The file is sent to us in parts, so an upload that is interrupted carries on from the part it stopped on rather than from the beginning. When the last part lands, transcoding is queued on the same nodes that carry the rest of the platform: one pass produces the whole ladder, cut into six-second pieces. What comes out is kept in storage and delivered through Shield, which is why a piece is fetched from storage once per location and answered from there for everybody near it — one viewer and ten thousand cost the same at the storage end.
Qualities
The ladder starts at the resolution you uploaded and goes down from there. Nothing is ever scaled up: a 720p file stays a 720p file at the top, and asking for 4K does not invent detail that was never in the picture. Each quality is a separate encode, which is why how many a video may have is what your pack says. The player picks one on the first piece and moves between them as the connection changes, without interrupting what is on screen.
How high it goes, by pack
| Pack | Highest quality | Qualities per video |
|---|---|---|
| Free | 720p | 2 |
| Pro | 1080p | 4 |
| Business | 2160p (4K) | 6 |
| Unlimited | 2160p (4K) | 6 |
Playing it
Playback is an HLS manifest, so any player that speaks HLS takes it, including the one built into Safari and into every mobile browser. Our own player is two lines of markup and adds a quality menu, picture-in-picture and a statistics panel a viewer can open when something looks wrong. A private video is reached only through a signed address that expires: the console signs one for you, or you hold a playback key and sign your own, so a different link can go to every viewer.
From the API
curl -X POST https://dash.yunzheng.space/api/v1/vod/assets \
-H "Authorization: Bearer $ORBIT_TOKEN" \
-H "Content-Type: application/json" \
-d '{"title":"Launch keynote","visibility":"unlisted"}'
# -> {"asset_id":"ovd_...","state":"uploading"}
curl -X POST .../vod/assets/$ID/upload \
-d '{"size":734003200,"content_type":"video/mp4"}'
# -> {"upload_id":"ovu_...","part_size":8388608}
curl -X PUT .../vod/assets/$ID/upload/$UPLOAD/parts/1 --data-binary @part-001
curl -X POST .../vod/assets/$ID/upload/$UPLOAD/complete
https://vod.yunzheng.space/a/$ID/master.m3u8What each pack includes
| Pack | Videos | Storage | Transcoding a month | Delivery a month |
|---|---|---|---|---|
| Free | 10 | 5 GB | 60 minutes | 20 GB |
| Pro | 200 | 200 GB | 3,000 minutes | 1 TB |
| Business | 2,000 | 2 TB | 30,000 minutes | 10 TB |
| Unlimited | Unmetered | Unmetered | Unmetered | Unmetered |
Questions
Is there a free tier?
Yes. Every account starts with 10 videos, 5 GB of storage, 60 minutes of transcoding a month and 20 GB of delivery, up to 720p.
How long does transcoding take?
Roughly the length of the video on a pack that makes four qualities, and longer above that, because every quality is an encode of its own. The console shows the state while it runs, and the address answers from the moment the last quality is finished.
Is the original file kept?
Yes. It is what a reprocess works from, and it counts towards your storage alongside the qualities made from it. Deleting the video removes both.
Can I use a player of my own?
Yes. The address is a standard HLS manifest and there is nothing proprietary in it. Our player is offered because it saves writing a quality menu, not because it is required.
How is this different from Stream?
Stream carries a broadcast while it is happening; VOD serves a file that is already finished. They share the player and the same edge — the difference is whether the thing being watched exists in full before anybody asks for it.
Does an unlisted video need a key?
No. Unlisted means the address cannot be guessed, and anybody holding it can watch. Private is the setting that requires a signed address, and that address expires.