What are B-Frames?

B-frames are bi-predictive video frames that may use earlier decoded pictures, later decoded pictures, or both as references. This flexibility can improve compression efficiency over one-direction prediction.

Video + audio tracks
Playable derivative
Video processing decodes timed tracks, transforms them, and encodes a deliverable for a target player. This diagram shows video broadly, not specifically B-Frames.

How B-Frames work

A B-frame can predict picture data from either or both of its reference lists, which may identify decoded pictures earlier or later in display order. When it uses a later picture, that reference must be decoded first, so coded order may differ from presentation order. This improves compression opportunities but creates reordering buffers and latency. Encoders tune B-frame count, reference structure, and hierarchy according to delivery latency, decoder capability, and random-access requirements.

Key facts

  1. Containers or elementary streams carry decoding and presentation timing needed to reorder pictures; treating packet order as display order can produce incorrect playback.
  2. Hierarchical B-frame structures can make some B-frames references for others, improving efficiency but increasing dependency depth and error propagation when data is lost.
  3. Low-latency encoders may disable or limit B-frames because future-picture prediction requires lookahead and decoder buffering, even when the codec otherwise supports them.

When B-Frames matter

Increase B-frame use when smaller files or higher quality at a given bitrate matter more than minimal latency. Some workflows limit them because they add reordering delay, memory demand, or decoder constraints.

Common use cases for video

These examples cover video broadly, not specifically B-Frames.

  • Preparing uploaded video for web, mobile, connected-TV, social, or editorial playback.
  • Creating clips, thumbnails, captions, alternate aspect ratios, and adaptive renditions.
  • Normalizing camera, screen-recording, and user-generated files into predictable outputs.

Working with video

This guidance covers video broadly, not just B-Frames.

A demuxer separates tracks from the container, decoders turn compressed streams into frames or samples, and filters apply spatial or temporal changes. Encoders compress the transformed tracks before a muxer writes the chosen output container.

Video compatibility is the product of codec, container, profile, level, frame rate, color, audio, and subtitles. Validate the complete output on target devices because a playable file on one decoder may fail or look different on another.

What you gain

  • Standardized derivatives make diverse source files playable on target devices.
  • A retained master can feed many resolutions, aspect ratios, codecs, and channels.
  • Automated inspection and transformation make large upload volumes consistent.

What it costs

  • More efficient codecs can lower bitrate at similar quality but usually cost more compute and may have narrower support.
  • Higher resolutions and frame rates preserve more detail and motion while increasing processing and delivery requirements.
  • Fast encoding settings improve throughput but can produce larger files or lower quality than slower analysis.

Before production

  1. Inspect codec, container, dimensions, frame rate, color, audio, and subtitle tracks.
  2. Test visual quality and playback support across the slowest and oldest target devices.
  3. Preserve a suitable master before applying lossy, destructive, or delivery-specific changes.

Turn media knowledge into a working pipeline

Connect uploads, processing, AI, storage, and delivery through one declarative API — with the encoding stack, scaling, and format churn handled for you.

Try Transloadit for free