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

Three calls from file to finished output.

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

  1. 1

    Request an upload URL

    You get a short-lived URL plus the file_uri to submit the job with.

  2. 2

    Upload the bytes

    PUT the file straight to that URL, sending the headers step 1 returned.

  3. 3

    Queue the job

    Submit the file_uri with the output presets you want back.

bash
# 1. Ask for a short-lived upload URL
curl -X POST https://mediaruntime.com/v1/upload-url \
  -H "X-API-Key: $MEDIARUNTIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "filename": "trailer.mp4",
    "content_type": "video/mp4"
  }'
# -> { "upload_url": "...", "file_uri": "..." }

# 2. Upload the bytes to the URL you were given
curl -X PUT "<upload_url from step 1>" \
  --upload-file ./trailer.mp4

# 3. Queue the job with the file_uri from step 1
curl -X POST https://mediaruntime.com/v1/transcode \
  -H "X-API-Key: $MEDIARUNTIME_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "file_url": "<file_uri from step 1>",
    "outputs": [{ "type": "mp4", "preset": "mp4_720p_h264_aac" }]
  }'
# -> { "job_id": "job_...", "status": "QUEUED" }

Condensed for length. The full quickstart covers the upload headers, webhook payloads, and the same flow in Node, Python, Go and PHP.