AV1 Timecode and Synchronization Structures Explained

This article explores how the AOMedia Video 1 (AV1) format handles timing, synchronization, and frame scheduling across both its elementary bitstream and standard container formats like ISOBMFF (MP4) and Matroska (MKV/WebM). While the AV1 bitstream provides foundational timing information and SMPTE timecode metadata, enclosing container formats manage presentation timestamps, decode timestamps, sample dependencies, and cross-track synchronization to ensure accurate media playback.

Bitstream-Level Timing in AV1

AV1 decouples internal display timing from the transport layer, but it embeds specific structures within Open Bitstream Units (OBUs) to define intrinsic frame rates and real-world timecodes.

1. Sequence Header Timing Information

Within the Sequence Header OBU, AV1 provides optional native timing mechanisms via the timing_info structure:

2. Metadata OBU (Timecode)

AV1 defines a dedicated Metadata OBU with a type set to METADATA_TYPE_TIMECODE. This structure embeds traditional broadcast-style timecodes directly into the video stream:


Synchronization Structures in ISOBMFF (MP4) Containers

The ISO Base Media File Format (defined for AV1 under the Alliance for Open Media AV1-ISOBMFF specification) is the standard container for web streaming (DASH, HLS) and offline MP4 playback. It manages timecodes and frame ordering through sample table boxes.

Presentation and Decode Timestamps

AV1 frames support out-of-order decoding (display ordering differs from decode ordering due to inter-frame dependencies).

Keyframe and Random Access Structures

Cross-Track Audio/Video Synchronization


Synchronization Structures in Matroska (MKV) and WebM Containers

Matroska and WebM encapsulate AV1 OBUs within hierarchical binary elements (EBML). Timing and synchronization operate at the Block level rather than through centralized offset tables.

Timestamp Tracking

Decoding Dependencies and Seeking


Summary of Interaction

Synchronization Role AV1 Bitstream Layer ISOBMFF (MP4) Layer Matroska / WebM Layer
Linear Timecode Metadata OBU (SMPTE) Not standardized (often ignored) Tag elements (optional)
Decode Timing (DTS) Derived from timing_info stts Box Inferred by demuxer
Presentation (PTS) time_scale / display tick stts + ctts Boxes Cluster + Block Timestamps
Sync Points (Random Access) Key Frame / Intra-only OBU stss / sdtp Boxes SimpleBlock Keyframe flag, Cues
Live Fragment Timing Periodic Sequence Headers tfdt / trun Boxes Successive Cluster Timestamps