Skip to main content

Adaptive bitrate streaming, or why a video stalls

The Videas teamOctober 23, 20267 min read

Adaptive bitrate streaming encodes one video at several quality rungs, cuts it into segments a few seconds long, and lets the player ask, segment by segment, for the rung the viewer’s bandwidth can actually carry. That is what replaces buffering: instead of stopping, playback drops a notch, then climbs back. On Videas, every upload is transcoded into rungs, segmented and delivered over HLS automatically, from servers hosted in the EU, with nothing to configure on your side.

The problem: a fixed bitrate against a network that is not

An MP4 served as it is forces a constant bitrate: a 1080p video at 2.5 Mbps needs 2.5 Mbps continuously. A mobile connection guarantees nothing from one second to the next, and as soon as the available bitrate falls below the required one, the player drains its buffer and stops. It can do nothing else, because only one version of the file exists. Adaptive bitrate streaming removes that dead end by producing several versions and handing the decision to the player, the only party that knows the real conditions.

The chain, in four steps

  1. Transcoding. On upload, the source is re-encoded into several rungs of resolution and bitrate, the audio separately, in AAC.
  2. Segmentation. Each rung is cut into fixed-length segments, four seconds on Videas. A segment is an ordinary file served over HTTP, so it caches.
  3. The manifest. An M3U8 index describes the rungs and their segments. It is the first file the player downloads, and it is the HLS protocol.
  4. Arbitration. At every segment the player picks the next rung. The switch only happens on a segment boundary: the picture gets sharper or softer, playback does not break.

Arbitration algorithms differ from one player to the next, depending on whether they decide on measured throughput, on buffer level, or on both. The ABR entry covers the three families.

The encoding ladder

1080p

2.5 Mbps

Fibre, solid Wi-Fi, desktop screen

720p

1.2 Mbps

Decent DSL, stable 4G, eco mode

480p

600 kbps

Average mobile network

360p

300 kbps

Degraded connection, congested network

That is the default ladder: 4K is enabled on request. Videas encodes at constant quality under a bitrate ceiling per rung, with 50% of headroom for busy scenes. The rungs derive from your source and no resolution is manufactured above the original, so uploading the master rather than an export already compressed for social is the one gesture that changes the result.

Each rung is produced in two codecs: H.264, decoded everywhere, and VP9, which gives a sharper picture at the same bitrate. The player serves the browser the most efficient version it can read.

What it takes to run

This is where the subject stops being theoretical. Delivering adaptively under your own steam means a transcoding farm sized for upload peaks, storage for N versions of every video instead of one, a CDN so segments do not cross a continent on every play, and a signed-URL policy so public segments do not become a permanent download link.

Videas hosting runs that chain: storage and transcoding hosted in the EU, delivery over a CDN that caches segments as close to viewers as possible, stream addresses signed and expiring within minutes, and a player with no advertising and no third-party cookie, so no consent banner is needed for it. Live takes the same path: Stream accepts an RTMP or SRT feed and puts it out as adaptive HLS, a few seconds behind the scene.

My video still stalls: what to check

  • The source was already compressed. The rungs derive from the uploaded file. An export cut for social platforms caps low: start from the master.
  • A quality has been locked in the player. The Quality menu lets a viewer pin one rung, and the player then stops arbitrating: it waits instead of dropping down. Switch back to Automatic.
  • Eco mode is on. It caps playback at 720p to save mobile data, and shows as “(Eco)” next to Automatic.
  • Encoding is not finished. Playback starts as soon as a first rung and the audio track are ready, and the higher qualities follow. On a long video uploaded five minutes ago, that is normal.
  • The page is heavy. Several players on autoplay share the visitor’s bandwidth. One visible player, the others behind a click.

None of this is configured on the publisher’s side: the interface exposes no resolution, codec or profile. What happens after an upload is documented in the help article on encoding and streaming qualities.

FAQ

What is adaptive bitrate streaming?

A delivery technique that encodes the same video at several qualities, cuts it into segments, and lets the player switch from one rung to the next during playback according to the bandwidth it measures. It is also called ABR.

Why does my video keep buffering?

Because the player consumes data faster than it receives it and drains its buffer. Either the video is served as a single file, with no rung to drop down to, or a resolution has been locked by hand, or the segments travel from a server too far from the viewer.

HLS or DASH, which one should I use?

HLS for compatibility, and it is what Videas uses: Apple devices read it natively and everything else reads it through HLS.js. DASH is the ISO standard and accepts more containers, but needs JavaScript on iOS. Both do the same adaptive work.

What is transcoding?

Transcoding converts a video from one format or resolution into others so it plays everywhere. It is the step that builds the rungs of adaptive bitrate streaming: Videas transcodes every upload into several qualities, in H.264 and VP9, with nothing to configure. The full definition is in the glossary entry on transcoding.

Is anything to configure on Videas?

No. The interface exposes no resolution, codec or profile setting: every upload is transcoded into several qualities, segmented, then delivered over HLS. The only variable that belongs to you is the quality of the source file.


Adaptive bitrate streaming is not a setting, it is a chain: transcoding into rungs, segmentation, manifest, CDN, arbitration on the player. Every missing link shows up on the viewer’s screen. On Videas the whole chain fires on upload, and the only parameter left to you is the quality of the file you drop in.

Host a video for free | Request a demo