
Video on demand (VOD) is video stored as finished files, so each viewer can start, pause and seek it whenever they choose instead of tuning in at a set time. A Netflix film, a YouTube upload and a recorded webinar are all VOD.
TL;DR:
save: true becomes VOD you can replay.Updated Oct 29, 2026: merged our 2024 post on the components of VOD streaming infrastructure into this guide, as a new section and a FAQ entry.
Updated Oct 19, 2026: definition-first rewrite, question headings, a pipeline diagram in place of the stock photo, the VOD types, a docs-based upload example, and live-to-VOD.
Video on demand is a way of distributing video where the viewer picks what to watch and when. AIOZ's VOD concept page defines it as a system that lets users "select and watch video content at their convenience, without the need for a traditional broadcast schedule." You can pause, rewind and skip ahead, because the whole video already exists before anyone presses play.
The technical difference is timing: a VOD file is encoded and packaged once, and from then on every viewer pulls from that finished output. VOD is a delivery model, not a genre, so a two-hour film and a five-minute product demo both count. Yesterday's livestream counts too, once it is saved as a file you can seek.
VOD services also differ in how viewers pay, and the AIOZ docs list the usual models. With TVOD you pay per title, as a rental or a purchase. SVOD charges a recurring subscription for a whole library, the Netflix model. AVOD is free to watch and funded by ads, as on YouTube or Tubi, and hybrid services mix tiers, such as an ad-supported plan next to an ad-free one. Our SVOD vs AVOD vs TVOD comparison covers how each one earns and when you'd pick it.
Every VOD platform runs the same five steps, whatever player or CDN it uses. You upload a source file, and the platform turns it into something any device on any connection can play.

Live streaming uses the same ladder, segments and manifests. A live encoder produces them continuously while a VOD manifest is written once and never changes, and that one fact explains the next three sections.
Those five steps run on four kinds of infrastructure. If you build a VOD service, you either run each one yourself or rent it.
Your protocol choice depends mostly on the devices your viewers use, which our HLS vs MPEG-DASH comparison covers. For the delivery layer, the CDN edge node explainer shows how caching decides which requests ever reach your origin.
Live video is encoded in real time under a latency budget, for viewers who all watch roughly the same moment. VOD has no latency budget, because the encoder can take as long as it needs before anyone presses play. That changes three things you will notice when you build on either one.
The two meet when a livestream ends and the recording is saved, since it then becomes a VOD asset with a complete manifest. Our live streaming guide covers how saving a livestream works on AIOZ Stream, from the stream key to the recording.
When you drag the scrub bar, the player can't start decoding at any frame you like. Video compression stores most frames as predictions from nearby frames, so they can't be decoded on their own, and only keyframes (also called I-frames) are complete pictures. AWS's explainer on GOPs puts it this way: "all of the information required to decode this type of frame comes from within itself."
So the player jumps to the nearest keyframe and plays forward from there. The span between keyframes is a GOP (group of pictures), and its length is a trade-off. AWS shows the same 5 Mbps encode with a 4-frame GOP and a 90-frame GOP, and the short-GOP version looks visibly worse. A complete keyframe takes far more bits than a predicted frame, so frequent keyframes leave fewer bits for the rest of the picture. Longer GOPs give you better quality per bit but fewer clean points to seek to.
Streaming adds one more rule, about which frames a GOP may reference. Fora Soft's guide on GOP structure says closed GOPs "are required for ABR streaming". In a closed GOP no frame refers back into the previous GOP, and the open kind saves only 1 to 3% on bitrate. When the player switches renditions at a segment boundary, an open GOP would point at frames from a rendition the player never downloaded. That's why streaming encoders use closed GOPs and line them up with segment boundaries in every rendition.
A VOD segment never changes once it's published, and the same bytes at the same URL may be requested thousands of times over the life of the video. Any cache or peer that holds a copy can keep serving it with no extra processing. The more popular your video gets, the larger the share of requests that never reach the origin.
This is also why peer-assisted delivery suits VOD: on AIOZ DePIN, nodes that already hold a segment can serve the next viewer who asks for it. Live video has no back catalogue for a new viewer to draw from, so it gets less of that benefit. If you want to see where the files sit between requests, read decentralized storage vs centralized cloud for video.
On AIOZ Stream you create a media object, upload the file, mark the upload complete, and poll until encoding is done. The finished video then comes back with HLS and DASH URLs for playback plus an MP4 URL for download. This flow is quoted from the Video API docs for the Node.js SDK; we didn't run it for this article.
// 1. Create video object
const video = await client.media.create({ title: 'My Video', type: 'video' })
const videoId = video.data.id
// 2. Upload file
await client.media.uploadPart(videoId, './video.mp4')
// 3. Finalize
await client.media.uploadMediaComplete(videoId)
// 4. Poll for encoding completion
let status = 'encoding'
while (status !== 'done' && status !== 'failed') {
await new Promise(r => setTimeout(r, 5000))
const detail = await client.media.getDetail(videoId)
status = detail.data.status
}
// 5. Get playback URL
const detail = await client.media.getDetail(videoId)
console.log(detail.data.assets.hlsUrl) // HLS playback
console.log(detail.data.assets.dashUrl) // DASH playback
console.log(detail.data.assets.mp4Url) // MP4 downloadA few details from the same docs help when you plan a VOD library:
qualities, from 240p to 4320p, with H.264 or H.265 and HLS or DASH output. Each rung has a bitrate cap, such as 6 Mbps at 1080p and 30 Mbps at 2160p.encoding_started, partial_finished, encoding_finished and encoding_failed.save: true is kept as media you can list and replay later.To set up your first upload, start with Steps to use our product in the AIOZ Stream docs.
What does VOD stand for?
VOD stands for video on demand: video stored as files that each viewer starts whenever they choose.
What are the components of VOD streaming infrastructure?
There are four: a VOD platform for the catalogue, accounts and playback, encoding with origin storage, and a delivery network such as a CDN. The fourth is the streaming protocol and player, usually HLS or DASH.
Is YouTube VOD or live?
It's both, since regular uploads are VOD and YouTube Live streams are live until they end, after which the saved recording plays as VOD.
What internet speed do you need for VOD?
The AIOZ VOD concept page suggests at least 3 Mbps for SD, 5 to 8 Mbps for HD, and 25 Mbps or more for 4K.
Why can't I seek to the exact frame I want?
Most frames depend on earlier frames, so playback can only start cleanly at a keyframe, and the player snaps to the nearest one.
What is a GOP, and why does its length matter?
A GOP is the run of frames from one keyframe to the next. Short GOPs give more seek points but cost more bits, while long GOPs compress better but give fewer places to seek to.
Do VOD and live streaming use different protocols?
No. Both use HLS or DASH segments and manifests, but a VOD manifest is complete and static while a live manifest keeps updating.
save: true
Video streaming protocols move video from encoder to viewer. See how RTMP, SRT, HLS, DASH and WebRTC differ in latency, transport and where each one fits.

Decentralized live streaming sends a real-time broadcast through independently run nodes instead of one company's servers. Here's how each stage of it works.

A video streaming glossary of 114 terms, from AAC and ABR to WebRTC and Widevine, each defined in plain English with sources and links to the deep posts.

Read the AIOZ Stream Statistics panel: bitrate in and out, FPS in and out and current viewers, plus the documented rules for each and what the docs leave out.

Embed an AIOZ Stream livestream with the Share button's iframe or send the Public Playback URL as a link. Covers API fields, public access limits and doc gaps.

Learn how a stream key differs from a streaming session on AIOZ Stream, what each one stores, and what to preconfigure before you go live. Docs-based guide.