Armakuni Contact us
← All case studies

The valuable part of an archive film
is thirty seconds nobody has found yet.

A U.S. media archive held 1.2 petabytes of video split across two storage systems, and every licensable clip had to be found and described by an editor watching hours of footage. In four days we had working AI demos that find candidate clips with timecodes and describe them in the marketplace's own vocabulary, and in two to three weeks a plan to move the whole archive to AWS. AWS funding covered all of it.

Before

Hours of film, a few seconds to sell.

Two storage systems, and neither knew about the other.

After
10–20×more footage tagged per hour of editors' time, in the proof of concept

Hours of film, a few seconds to sell

For an archive and footage-licensing business, a valuable asset is often a short scene inside a much longer recording. A producer needs to find it, understand what's in it, and decide whether it fits the production.

Finding it was the editors' job. They watched full-length archival videos to pick out short clips worth licensing, and wrote the titles, descriptions and keywords against the licensing marketplace's controlled vocabulary. A single long film could take hours to turn into a handful of usable clips, and the archive kept growing faster than anyone could watch it.

Two storage systems, and neither knew about the other

The archive itself was split. About 900 TB sat on TrueNAS on-premises, and about 300 TB in Azure Blob cold storage, with different storage and access patterns, no shared metadata layer and no single search. Files stayed in whatever tier they were first put in, so assets that became valuable again were slow and expensive to get back, and assets nobody touched sat in warm storage for good. The clip workflow ran on Heroku, with no native connection to the AWS services an AI pipeline would need.

Let the machine watch, and the editor choose

We wanted editors reviewing a shortlist instead of watching everything. If the pipeline can find candidate scenes, describe them and match the description to the approved vocabulary, editors can spend their time judging the clips it found.

How we built it

4 decisions, in the order we made them. Each one says what we did and why, with what it did drawn beside it.

  1. A clip an editor can inspect, not a summary of the whole film
  2. Describe it in the marketplace's own words
  3. A migration that keeps the archive findable
  4. Subtitles that open a closed part of the archive

A clip an editor can inspect, not a summary of the whole film

Built withOpenCVFFmpegRekognition
Archive film candidate clipsA clip 10–45 seconds, with timecodes
The engineering

A summary of an entire film doesn't help a producer who needs a 20-second shot. So the proof of concept, on 20–30 sample digitized videos, had to return a specific section with its timecodes:

  • OpenCV and FFmpeg handle video preprocessing and frame extraction, and Amazon Rekognition supplies shot detection and visual labels to find scene boundaries and content.
  • Each candidate carries its timecodes and a description of the setting, subjects and action.
  • A library classification sets the permitted length: film microclips run 10–45 seconds, and other content runs 30 seconds to three minutes.
  • Rekognition face detection flags film clips with identifiable people for human review before the workflow continues, so compliance is checked at the point of detection, not at submission.

A length rule written into the pipeline means every candidate is already something the business can sell.

Describe it in the marketplace's own words

Built withNova ProBedrockClaude 3.5StreamlitS3DynamoDB
Nova Pro summarises the clipTags generatedMatched to the licensing taxonomyAn editor approves
The engineering

Generated descriptions are worthless if the marketplace won't accept the tags. So visual interpretation, metadata generation and vocabulary matching run as separate stages, each checkable on its own:

  • Amazon Nova Pro on Bedrock writes natural-language clip summaries from the extracted visual context.
  • The structured-metadata design includes Nova Micro and Claude 3.5 Haiku as options for titles, descriptions and keywords.
  • Amazon Titan Text Embeddings map the generated tags against the licensing taxonomy by vector similarity, and terms outside the approved vocabulary are corrected or flagged for an editor.
  • A Streamlit interface lets editors review clips, resolve face-detection flags, edit and approve metadata, and save annotations.

S3 holds the videos, extracted frames and generated outputs. Amazon DynamoDB records metadata, feedback and versioned annotations, so outputs can be compared over time, and CloudWatch tracks activity and errors. The application design runs containerized services on ECS/Fargate across private subnets in two Availability Zones, behind a load balancer, with a code-to-container delivery pipeline. Nothing depends on the on-premises stack.

A migration that keeps the archive findable

Built withS3IAM
assessedOn-premisesS3 AssetsTheir indexes indexes kept, so it stays findable
The engineering

Moving a petabyte is easy to plan badly: copy the files and lose the indexes that made them discoverable. The storage assessment covered the TrueNAS and Azure Blob estates together, reviewing formats, file types, naming conventions, metadata sidecars and access patterns before defining the AWS target:

  • S3 Intelligent-Tiering was chosen so storage tiers follow how assets are really used, and nobody has to decide which tier each file belongs in.
  • The roadmap separates the on-premises and Azure workstreams, and preserves indexes so assets stay discoverable through the move.
  • AWS DataSync, offline transfer (AWS Snowball) and targeted CLI ingestion were weighed against the content volumes and types.
  • Encryption and IAM gaps were recorded as remediation items, so execution starts from a compliant baseline.
  • A TCO comparison set today's storage costs against the proposed AWS operating costs, for leadership to decide.

Why: in an archive the index is the product, so a migration that loses it has moved the files and lost the value.

Subtitles that open a closed part of the archive

Foreign-language reelsEnglish subtitlesSearchable
The engineering

The proof of concept also generated English subtitles from Indian-language archival content. Footage that existed only in non-English audio, with no transcription, had been invisible to search. Subtitles make it findable.

One film, end to end

  1. A digitized film goes into S3. OpenCV and FFmpeg extract frames.
  2. Rekognition finds the shots and labels what's in them.
  3. Candidate clips are cut to the library's length rule: 10–45 seconds for film microclips, 30 seconds to three minutes for the rest, each with its timecodes.
  4. Faces are flagged for review before anything moves on.
  5. Nova Pro describes each clip, and Titan embeddings match the tags to the approved vocabulary, flagging anything outside it.
  6. An editor reviews the shortlist in Streamlit, approves or edits it, and the annotations are saved in DynamoDB.

What we'd tell another CTO

1Return a clip with timecodes rather than a summary of the film; a producer buys a scene, not a synopsis.
2Match the buyer's vocabulary in a stage of its own. Mapping generated tags to the approved taxonomy with embeddings is what turned descriptions into tags the marketplace would accept, and letting editors review candidates rather than watch whole films is where the 10–20× came from.

What else changed

  • Working demos in four days, inside an AI proof of concept (POC) with a five-to-six-week scope, and both pieces of work scoped within 48 hours of the first call.
  • Timecoded clip discovery, taxonomy matching and editor review, connected on sample content.
  • English subtitles from Indian-language archive footage, demonstrated.
  • A readiness assessment and phased roadmap for the full 1.2 PB, delivered in two to three weeks, with a security gap analysis and a TCO comparison.
  • AWS Migration Acceleration Program (MAP) funding approved within eight days of first contact, covering both pieces of work, so the customer's cost was $0. From first call to funding and a running proof of concept took under two months.

What comes next

The full 1.2 PB migration from TrueNAS and Azure Blob to S3 Intelligent-Tiering, and the tagging and clip-discovery pipeline in production across the whole archive.

How we'd do it today

This project came before our current offers. Here's how we'd approach the same work now.

The storage move would follow our Move to AWS method: AI agents find every asset group and what depends on it, groups move together in waves, and the old copy stays until the new one has proved itself. For tagging at 1.2 PB, AI Inference Engineering would move the routine descriptions to a model the business owns on Amazon SageMaker AI, at about a tenth of the price, and an AK AI Factory golden set of clips the editors already chose, plus a sealed set, would gate every prompt and model change, with taxonomy mistakes treated as critical cases.

Have a problem like this one?

A free workshop: a few hours with the architects who'd do the work, on your own systems. No cost.

Book a free workshop