Video · Audio · Images

Media infrastructure for
apps with user uploads.

One API for video, audio, and images: transcode, moderate, and deliver user-generated media without running your own FFmpeg fleet.

No signup required
Pay as you go — Standard $0.02/min, Premium $0.05/minNo FFmpeg servers to run

Media processing capabilities

Automated Tier Routing

Our engine analyzes job metadata in real-time. It automatically routes simple 1:1 transcodes to Standard while escalating complex multi-output AI jobs to Premium.

See how logic routing works

Smart Multiplexing

Avoid redundant encoding. We transmux compatible streams into HLS/Dash containers instantly to save on compute costs.

Neural Image Ops

Premium tier access to AI-driven face detection, smart cropping, and background removal directly within your media pipeline.

Content Moderation

Premium tier: Automated safety checks with NSFW detection, violence assessment, and custom policy enforcement. Get actionable verdicts in real-time.

Pro-Grade Codec Library

From standard H.264 to high-efficiency HEVC and AV1. Deliver the highest visual quality at the lowest possible bitrates across all device tiers.

H.264HEVCAV1VP9ProRes

Quickstart

From media URL to finished output.

MediaRuntime is asynchronous. Submitting a job returns QUEUED immediately, and finished outputs arrive later on your signed webhook.

  1. 1

    Provide a fetchable source URL

    Use a public URL or a time-limited signed read URL from storage you already use.

  2. 2

    Queue the media job

    Submit the source as file_url with the output presets you want back.

  3. 3

    Handle the terminal webhook

    Persist job_id, verify the signed event, and consume the returned output bundle.

bash
# Submit a public or time-limited signed media URL
curl -X POST https://mediaruntime.com/v1/transcode \
  -H "X-API-Key: $MEDIARUNTIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file_url": "https://cdn.example.com/media/trailer.mp4",
    "outputs": [{ "type": "mp4", "preset": "mp4_720p_h264_aac" }]
  }'
# -> { "job_id": "job_...", "status": "QUEUED" }

Already have a media URL? No upload is required. The full docs also cover optional upload targets for local bytes, webhook payloads, and Node, Python, Go and PHP.