For AI agents: a documentation index is available at the root level at /llms.txt and /llms-full.txt. Append /llms.txt to any URL for a page-level index, or .md for the markdown version of any page.
StatusSupportDiscussionsLog inSign Up
Docs HomeAPI ReferenceVideo on DemandAI FeaturesLive StreamingVideo PlayerVideo DataCloud PlayoutRecipes
Docs HomeAPI ReferenceVideo on DemandAI FeaturesLive StreamingVideo PlayerVideo DataCloud PlayoutRecipes
  • Get started
    • Overview
    • Quickstart
  • Upload videos
    • Upload videos from device
    • Upload videos from a URL
    • Upload 4K videos
    • Speed up video processing
  • Playback and delivery
    • Play your videos
    • Embed a video in your app
    • Configure media quality levels
    • Enable MP4 Support for offline viewing
    • Create and manage playlists
  • Edit and transform videos
    • Add metadata to videos
    • Add a watermark to a video
    • Add an intro and outro to a video
    • Clip and trim videos
    • Merge and stitch videos
    • Remove unwanted video segments
  • Manage audio and subtitle tracks
    • Upload and play audio and subtitle tracks
    • Add subtitles to a video
    • Generate subtitles automatically
    • Add audio to a video
    • Replace a video's audio track
    • Normalize audio loudness
    • Overlay audio on a video timeline
  • Extract images from video
    • Create thumbnails from a video
    • Create GIFs from a video
    • Create timeline hovers from a video
  • Video security
    • Generate JWTs for secure media
    • Secure media access with JWTs
    • Restrict playback access
    • Set up DRM encryption
    • FairPlay DRM integration
  • VOD events
    • Media events
    • Transform media events
LogoLogo
StatusSupportDiscussionsLog inSign Up
On this page
  • Prerequisites
  • Key terms
  • Benefits of enabling MP4 support
  • Choose an mp4Support value
  • Create a media media with MP4 support
  • Create media with MP4 support from the dashboard
  • Add your media
  • Enable MP4 support in media settings
  • Review metadata and start the upload
  • Verify the upload
  • Update MP4 support on an existing media
  • Access the MP4 download URL
  • Download an MP4 video in Safari
  • Download an MP4 video in Chrome
  • Frequently asked questions
  • What’s next?
Playback and delivery

Enable MP4 Support for offline viewing

Enable MP4 support for offline viewing, legacy device compatibility, and social sharing.
Was this page helpful?
Previous

Create and manage playlists

Organize and manage multiple media assets by creating playlists, adding or removing videos, arranging their order, and controlling playback settings.
Next
Built with

HLS adaptive bitrate streaming requires an active internet connection, which excludes offline viewers, legacy devices, and social media embeds that need a single downloadable file. FastPix bridges this gap by generating a static MP4 rendition alongside the HLS manifest when you set the mp4Support field at creation time. Serve the file at https://stream.fastpix.com/<playbackId>/capped-4k.mp4 or .../audio.m4a, it keeps a fixed resolution and bitrate so it plays anywhere.


Prerequisites

  • A FastPix account with an active workspace (Activate your account)
  • Your Access Token ID and Secret Key from the FastPix dashboard
  • A video media to upload, or an existing mediaId to update
  • Familiarity with uploading from a URL or uploading directly

Key terms

  • mediaId - The unique identifier FastPix assigns to every uploaded media. Use it to update, query, or delete the media.
  • playbackId - A separate, access-controlled identifier FastPix generates for playback. The MP4 download URL is built from the playbackId.
  • accessPolicy - Controls whether the media is public or private. A private media requires a signed URL for both HLS and MP4 access.
  • mp4Support - The field you set to tell FastPix which static renditions to generate.

Benefits of enabling MP4 support

  1. Offline viewing

    Viewers download MP4 files and watch them without an active internet connection, which matters for regions with limited connectivity and for mobile apps that cache content.

  2. Legacy device compatibility

    MP4 files play on older devices, including Android versions below 4.0, where HLS adaptive bitrate streaming is not supported.

  3. Short-form clips

    For clips under 10 seconds, a single MP4 file reduces startup latency compared with loading an HLS manifest and its segments.

  4. Social media embedding

    MP4 files embed in Open Graph cards on Facebook, X, and LinkedIn, so shared links render an inline video preview instead of a still thumbnail.

  5. Audio-only use cases

    mp4Support can generate an .m4a audio rendition for podcasts, transcription pipelines, and audio-only streaming, extending its use beyond video.


Choose an mp4Support value

Pick the option that matches the renditions you need:

  • capped_4k - Generates a single MP4 file capped at 1080p.
  • audioOnly - Generates an .m4a audio rendition only.
  • audioOnly,capped_4k - Generates both the MP4 and the .m4a rendition for medias with audio and video.

NOTE

The value you pick determines which static rendition URLs FastPix exposes. You can change it later with the update endpoint covered in Update MP4 support on an existing media.


Create a media media with MP4 support

Set mp4Support in the request body when calling either upload endpoint:

  • Create media from URL - pull the source from a URL.
  • Upload media from device - push the source from local storage.

Subscribe to the video.media.mp4Support.ready webhook to be notified when the static rendition finishes transcoding.

Upload video from URL

Request
1{
2 "inputs": [
3 {
4 "type": "video",
5 "url": "https://static.fastpix.com/fp-sample-video.mp4"
6 }
7 ],
8 "accessPolicy": "public",
9 "mp4Support":"capped_4k"
10}

NOTE

Replace url with the source URL of your video. This request generates an MP4 rendition capped at 1080p.


Upload video from device

For a direct upload from local storage, use this configuration:

Request
1{
2 "corsOrigin": "*",
3 "pushMediaSettings":
4 {
5 "accessPolicy": "public",
6 "mp4Support": "capped_4k"
7 }
8}

NOTE

Set mp4Support to capped_4k, audioOnly, or audioOnly,capped_4k depending on the renditions you need.


Create media with MP4 support from the dashboard

To create media with MP4 support from the dashboard, you need to:

  1. Add your media.
  2. Enable MP4 support in media settings.
  3. Review metadata and start the upload.
  4. Verify the upload.

Add your media

  1. In the left navigation, go to Video > Media.
  2. On the Upload media page, add your video using one of the following methods:
    • Upload from device: Drag and drop your file into the upload area, or click Browse to open your device’s file picker. Navigate to the video you want to upload, select it, and click Open.
    • Upload using video URL: Paste a public video URL into the Upload using video URL field and click Submit URL.
Upload media page showing upload

Enable MP4 support in media settings

  1. In the Media Settings panel, select Custom settings.

  2. Set "mp4Support": "capped_4k" in the JSON configuration. For example:

    1{
    2 "mp4Support": "capped_4k"
    3}
  3. Configure any other settings as needed, then click Continue.

Upload media page showing upload

Review metadata and start the upload

  1. In the Metadata panel, review the preview of your video along with the auto-populated fields.
  2. Optionally, edit the Media title, Creator ID, or Third party ID.
  3. When ready, click Start upload all media.
Panel showing video preview

Verify the upload

  1. After the upload completes, open the Media Details page.
  2. Confirm the status is Ready and the playback ID is available.
  3. Use the media for offline viewing with MP4 support enabled.
Panel showing video ready

Update MP4 support on an existing media

FastPix also lets you enable or change MP4 support after a media is created with the update mp4 support endpoint.

Method: PATCH URL: https://api.fastpix.com/v1/on-demand/{mediaId}/update-mp4Support

Request Body
{
"mp4Support": "audioOnly,capped_4k"
}

Subscribe to the video.media.mp4Support.updated webhook to track when the new rendition finishes transcoding.


Access the MP4 download URL

Once the static rendition is ready, build the download URL from the playbackId and the rendition filename:

URL Format
https://stream.fastpix.com/{PLAYBACK_ID}/{capped-4k.mp4, audio.m4a}

Video

Video
https://stream.fastpix.com/{PLAYBACK_ID}/capped-4k.mp4

Audio

Audio
https://stream.fastpix.com/{PLAYBACK_ID}/audio.m4a

TIP: Use these URLs directly in a <video> or <audio> element, or expose them as a download link for offline viewing.

Opening the URL in a browser starts the download automatically. If it does not, trigger the download manually as shown in the browser instructions that follow.


Download an MP4 video in Safari

Safari context menu showing Download Video option

Download an MP4 video in Chrome

Chrome context menu showing Save video as option


Frequently asked questions

What is the difference between capped_4k and audioOnly?

capped_4k generates a single MP4 file capped at 1080p resolution. audioOnly generates an .m4a audio rendition with no video track. Use audioOnly,capped_4k to generate both from a single source.

Can I enable MP4 support on a media that is already uploaded?

Yes. Send a PATCH request to https://api.fastpix.com/v1/on-demand/{mediaId}/update-mp4Support with the new mp4Support value. FastPix transcodes the static rendition and fires the video.media.mp4Support.updated webhook when it is ready.

Does MP4 download work with signed URLs or DRM-protected medias?

Static MP4 renditions follow the same accessPolicy as the media. A public media is downloadable at the static URL. A private media requires a signed JWT on the MP4 URL, see Secure media access with JWTs. DRM-protected renditions are not downloadable as static MP4 files; DRM applies to HLS playback only.

How do I cache MP4 files for offline playback in a mobile app?

Download the MP4 from the static rendition URL, store it in the app’s local filesystem, and point your native player at the local file path. On iOS use AVmedia with a file URL; on Android use ExoPlayer with a FileDataSource.

How do I download a video from the API?

Enable mp4Support on the media media (set it to capped_4k at creation or via PATCH), wait for the video.media.mp4Support.ready webhook, then fetch the file at https://stream.fastpix.com/{playbackId}/capped-4k.mp4. Opening that URL in a browser triggers a download; in application code, issue a standard HTTP GET and write the response body to disk.

When is the MP4 rendition ready after upload?

FastPix transcodes the static rendition in parallel with the HLS renditions. Listen for the video.media.mp4Support.ready webhook rather than polling, it triggers as soon as the MP4 file is available at the static URL.


What’s next?

  • Upload videos from a URL
  • Upload videos directly from a device
  • Play your videos
  • Secure playback with DRM
  • API Reference: Update MP4 support