Featured image for “Serverless Media Pipeline Cuts a Year of Work to One Week”

Serverless Media Pipeline Cuts a Year of Work to One Week

  • Client: A nonprofit organization specializing in audio and video Bible translation and distribution
  • Industry: Non-Profit and Media Content Technology
  • Services: Custom Software Development, Mobile App Development, Cloud Migration, Legacy Application Modernization, Software Architecture
  • Outcome: A multi-year platform partnership that took the organization from a single cross-platform mobile app to a full content platform, including a serverless media pipeline that reduced roughly a year of manual audio processing work to about one week.

Organizations that produce and distribute audio and video content at global scale eventually run into the same wall: the tools that got them started do not scale to the volume they now need to process. Manual media production steps that were manageable at a small scale become a serious bottleneck once the content library reaches thousands of recordings across dozens of languages.

In this serverless media pipeline automation case study, Keyhole Software worked with a nonprofit organization specializing in audio and video Bible translation and distribution over a multi-year engagement, starting with a cross-platform mobile reading app and expanding into a full content platform. The most significant single result was a serverless audio transcoding pipeline that took a backlog representing roughly a year of manual processing work and completed it in about a week.

Serverless Media Pipeline Automation at a Glance

  • Built a cross-platform mobile app in React Native supporting multiple languages and Bible versions, with time-synced audio and text read-along functionality.
  • Built a serverless audio transcoding pipeline using AWS Lambda, FFmpeg, and Step Functions that reduced roughly a year of manual processing work to about one week.
  • Automated upload of a large backlog of videos to a public video platform, including metadata and playlist creation.
  • Modernized a legacy C# media management application onto current FFmpeg, Couchbase, and .NET runtime versions.
  • Built new web applications for audio content search, download, and internal metadata management.
  • Added distributed tracing and monitoring across the organization’s applications and databases using Terraform, Prometheus, and Grafana.

The Challenge

The organization’s core mission depends on getting audio and video Bible content, translated across many languages and formats, into the hands of listeners and readers worldwide. That mission had outgrown the manual processes it was built on. Producing a finished audio recording from raw source files required hands-on transcoding work that did not scale as the content library and language count grew.

The organization’s public-facing content lived across a mobile reading app and a growing set of internal tools, several of which had been built independently over time on different stacks: a C# desktop application for managing recordings, a Blazor Server application, and a high-traffic content API. Each needed ongoing investment, but none had been designed with the volume the organization was reaching.

The mandate was to give the organization a mobile experience worthy of its global audience, automate the media production steps that were consuming disproportionate manual effort, and modernize the surrounding application portfolio so it could keep pace with a growing content library.

The Approach

Phase 1: Cross-Platform Mobile Reading App

The engagement began with a three-person agile team building a React Native mobile app supporting multiple languages and multiple versions of the same text, with synchronized audio playback and read-along highlighting. The team used Expo and React Navigation for cross-platform support and wrote Python API tests to confirm the app’s back-end authorization worked correctly.

A separate prototype explored converting the organization’s existing iOS and Android reading app into a form usable as a web app, sharing a common Expo codebase to demonstrate data retrieval, audio playback, and other core functionality in the browser.

Phase 2: Automating the Media Pipeline

The organization’s audio production process depended on manual transcoding steps that did not scale with the size of its content backlog. Keyhole built a serverless transcoding pipeline using AWS Lambda and FFmpeg, orchestrated with AWS Step Functions and managed as Terraform infrastructure-as-code.

Running the existing backlog through the new pipeline took the equivalent of roughly a year of prior manual processing work and completed it in about a week. The team also automated uploading a large backlog of videos to a public video platform, including generating metadata and building playlists automatically rather than by hand.

Phase 3: Modernizing the Application Portfolio

As the relationship matured, Keyhole took on modernization work across the organization’s broader application portfolio. A legacy C# desktop application for managing audio and video recordings was updated to current FFmpeg, Couchbase, and .NET runtime versions. A Blazor Server application had its media-processing capabilities expanded, and new Go and TypeScript backend services were built with Okta authentication, deployed to AWS through a Serverless Framework and Terraform.

The team also built new web applications for searching and downloading audio content and for managing internal content metadata, using React on the frontend and Go on the backend, including a GraphQL integration with the organization’s project management tooling.

Phase 4: Observability and Quality

With more of the organization’s operations running through automated pipelines and services, visibility into how those systems behaved in production became more important. Keyhole designed Terraform-managed distributed tracing across the organization’s applications and databases, using Prometheus and Grafana for monitoring.

On the mobile side, the team built a CircleCI pipeline running UI tests on physical devices through AWS Device Farm, and improved the app’s alpha and beta release process using App Center with Cavy and Jest tests integrated into the same device testing pipeline.

Technologies Used

  • React Native, Expo, and React Navigation
  • React, React Redux, and TypeScript
  • Go and GraphQL
  • C#, .NET Core, NUnit, and Blazor
  • Python
  • FFmpeg and FFMpegCore
  • Couchbase
  • AWS Lambda, Step Functions, API Gateway, S3, and CloudFront
  • AWS Device Farm, CircleCI, and App Center
  • Cavy and Jest
  • Terraform and the Serverless Framework
  • Prometheus and Grafana
  • Okta
  • Azure
  • Git and GitHub

Legacy System Risks Uncovered During Media Pipeline Modernization

The organization’s original media production process depended heavily on manual steps and institutional knowledge of how to run them correctly. Converting that process into a serverless pipeline required understanding the transcoding workflow well enough to automate it accurately, not just faster.

The legacy C# recording-management application had accumulated dependencies on older FFmpeg, Couchbase, and .NET runtime versions. Upgrading these together, rather than one at a time, reduced the risk of an incompatible mix of dependency versions partway through the modernization.

As more of the organization’s tools moved to serverless and containerized infrastructure, the lack of shared observability became a real gap. Without distributed tracing across applications and databases, diagnosing an issue in one service often meant guessing at its effect on others.

Lessons from This Media Pipeline Modernization Project

Automate the Bottleneck Before the Whole Pipeline

Rather than attempting to modernize every media tool at once, Keyhole targeted the transcoding step that was consuming the most manual effort relative to its output. Automating that single bottleneck produced the engagement’s clearest result: a year of backlog work completed in about a week.

Upgrade Related Dependencies Together

Modernizing the legacy C# application’s FFmpeg, Couchbase, and .NET runtime versions as a single coordinated update avoided leaving the application in a partially upgraded state with mismatched dependency versions.

Observability Matters More as Systems Multiply

As the organization’s application portfolio grew to include serverless pipelines, web applications, and a high-traffic content API, distributed tracing and monitoring became necessary infrastructure rather than optional tooling.

A Long-Term Partnership Lets Investment Compound

Because the relationship spanned several years, later phases of work built directly on earlier ones. The team that automated the media pipeline understood the same content model that shaped the mobile app and the internal search and metadata tools built afterward.

Results

Keyhole’s serverless transcoding pipeline reduced roughly a year of manual audio processing work to about one week, while a modernized mobile app and a growing family of internal tools gave the organization a platform built for its actual scale.

Beyond the transcoding pipeline, the organization came away with a cross-platform mobile reading app supporting multiple languages with synchronized audio and text, a modernized legacy recording-management application running on current dependency versions, and new web applications supporting audio content search, download, and metadata management.

The organization’s high-traffic content API, handling on the order of 4,000 requests per minute, continued to run reliably alongside this growing set of tools, supported by the distributed tracing and monitoring work added later in the engagement.

Metric Before Figure Note
Audio transcoding backlog Manual processing, roughly a year of work Completed in about a week Serverless pipeline built on AWS Lambda, FFmpeg, and Step Functions
Video upload workflow Manual metadata and playlist creation Automated upload pipeline Applied to a large existing video backlog
Legacy recording application Older FFmpeg, Couchbase, and .NET runtime versions Modernized to current versions Upgraded as a single coordinated effort
Content API traffic Baseline ~4,000 requests per minute Supported by later observability work

Key Takeaways from This Media Pipeline Modernization Project

Organizations producing content at global scale often reach a point where the manual steps that worked at a smaller scale become the biggest constraint on growth. Finding and automating that specific bottleneck tends to deliver more value than a broad, unfocused modernization effort.

  • Identify the single process consuming the most disproportionate manual effort and automate that first.
  • Upgrade related legacy dependencies together rather than incrementally, to avoid compatibility gaps.
  • Add observability as application portfolios grow past a handful of independently built tools.

Teams evaluating a similar media pipeline modernization should look for the specific manual process creating the backlog, rather than assuming the whole platform needs to be rebuilt at once.

Considering a legacy media pipeline modernization or serverless automation project of your own? Explore Keyhole’s cloud-native development services, mobile app development capabilities, and legacy system modernization services, or contact Keyhole to discuss automating your most time-consuming manual processes.


Share: