Time-addressable media store

TAMS

Record live media once, index every moment against a timeline, and give any application instant access to any time range via HTTP — no duplicate storage, no file transfer wait, no format-specific integrations. Norsk MediaStore is a production-ready TAMS implementation built by engineers who helped shape the standard.

How it works

One store. Every moment addressable.

TAMS organises live and recorded media into a structured hierarchy. Any tool can request any time range via HTTP — the same API, the same store, regardless of source or format.

Step 01
Sources, Flows, and Segments — a structured hierarchy

Every piece of media in TAMS sits in a three-level hierarchy. Sources provide editorial identity — a live football match is a single Source, even if it is encoded as both H.264 and JPEG2000. Flows are the logical timelines beneath each Source: each encoding has its own Flow ID, a stable UUID that always returns the same media for the same time range. Segments are the time-aligned chunks clients actually fetch. A request for '10:15–10:30 of this Source' always resolves to the same real-world moments, regardless of which format or encoding the client uses.

Step 02
Norsk MediaStore — live ingest straight to TAMS

MediaStore records live streams into a time-indexed store and exposes them through the TAMS API the moment they arrive. There is no separate in-memory state to drift out of sync — the API iterates directly over stored segments to return precise, time-aligned results. New streams and versions register automatically at runtime: when MediaStore creates a new writer, the registration system notifies TAMS immediately and the new Flow is visible to clients without manual intervention. Multi-track Flows — video plus multiple audio tracks — are handled natively: essences are stored and queried independently, so you can add an alternative commentary track or a new audio mix without repackaging the underlying video stream.

Step 03
HTTP access — any tool, any moment, any client

The TAMS API exposes Sources, Flows, and Segments as JSON at well-defined URLs. Because it is HTTP-based, existing caching infrastructure, CDNs, and player frameworks work with TAMS endpoints without specialist integrations. Clients can discover and track Sources and Flows through REST endpoints or subscribe to live event streams via WebSocket — making it straightforward to build monitoring dashboards, automated clipping pipelines, or real-time notifications on top of the same store. Norsk ships a reference TAMS player that assembles Sources, Flows, and Segments for browser playback without plugins.

Use cases

When instant access to any moment changes what's possible

The operations that benefit most are those where the gap between 'it was recorded' and 'a tool can use it' is a competitive or operational constraint.

Sports broadcast

Instant replay and highlight clips while the match is live

A sports broadcaster needs instant replay and highlight clips from a live event, but media is not accessible to editors until after it has been recorded and transferred. The transfer step costs time. During a live event, that time is the difference between leading the coverage and reacting to it.

MediaStore writes live ingest directly to TAMS — content is accessible for clipping, replay, and highlight packaging the instant it arrives. A highlights producer can fetch the last five minutes of a specific camera angle while the match is still running, without waiting for a transfer or touching the live feed. Multiple tools access the same store simultaneously without conflict.

Talk to us about your sports workflow →
News editorial

Clip and publish while the press conference is still underway

A news outlet running live press coverage needs to clip and publish key moments before competitors do — but the media is not available to the editing team until the feed ends and the file transfers. By that point the moment is no longer news.

TAMS makes the live feed queryable in real time. An editor can request the exact time range containing the key quote, clip it, and hand it to publishing while the press conference is still running. The file transfer wait is eliminated. The editorial window is the full duration of the event, not the period after it ends.

Talk to us about your news workflow →
OTT / streaming service

Time-shifted playback without duplicate infrastructure

A streaming service wants to offer pause, rewind, and catch-up on live channels — but the standard approach requires duplicating the live feed into a separate time-shift buffer with its own storage and delivery path. The infrastructure doubles; the operational complexity more than doubles.

Because TAMS separates media description from media essence and every segment is permanently addressable by time, time-shifted playback is a client behaviour rather than an infrastructure feature. The same store that serves the live viewer serves the viewer who paused fifteen minutes ago. No duplicate pipeline required.

Talk to us about your OTT workflow →

Capabilities

The open standard for time-addressable media. Production-ready in Norsk.

TAMS is an open standard — API, content model, and storage design are all publicly specified. Norsk MediaStore is the implementation.

Sources
Editorial identity across formats and encodings

Sources group all Flows representing the same content — different codecs, bitrates, or encodings of the same live event share a Source ID. A request for a time range on a Source always resolves to the same real-world moments, regardless of which Flow the client reads from. Source-level identity is what allows multiple tools to work on the same content interchangeably, without coordinating on format.

Flows
Stable, immutable timelines — indexed by time

Every Flow has a UUID that serves as its permanent identifier. Segments within a Flow are indexed by time and, once written, never change: the same Flow ID and time range always return the same media. This immutability is what makes TAMS safe for caching, CDN distribution, and parallel access by multiple tools without coordination overhead.

API
HTTP-based — works with existing infrastructure

The TAMS API exposes Sources, Flows, and Segments as JSON at well-defined URLs. CDNs, caches, and standard HTTP client libraries all work without modification. Clients can discover available content via REST or subscribe to live event streams via WebSocket. No proprietary protocol, no specialist client library required.

MediaStore
Live ingest to TAMS — no intermediate step

Norsk MediaStore records SRT, RTMP, MP4, and transport stream inputs directly into a TAMS-compliant time-indexed store. The API iterates over stored segments to return results — there is no duplicate in-memory state to drift. New streams register automatically: when MediaStore creates a new writer, TAMS is notified immediately and the Flow is visible to clients without manual registration.

Multi-track
Audio tracks stored and queried independently

Multi-track Flows act as collections of related single-track Flows — a video stream plus multiple audio language tracks, for example. Each track is stored and queried independently, and can be recombined into new mixes. Adding an alternative commentary track, a sign-language overlay, or a new audio mix does not require repackaging the underlying video stream.

Player
Reference TAMS player — browser-based, no plugins

Norsk ships a reference TAMS player that connects to the API, discovers available Sources and Flows, and assembles time-aligned segments for playback in a standard browser. It demonstrates how to discover media, request precise time ranges, and combine video and audio tracks on the fly — a working reference for teams building their own TAMS clients or integrations.

Talk to us about your TAMS requirements

Norsk MediaStore is in active development. We are talking to engineering and operations teams early to shape the implementation around real production requirements. If you are evaluating TAMS for sports, news, or OTT workflows, get in touch.

Talk to us