Minimize processing time | Mux

Minimize processing time

Prepare your video files so Mux can process them faster. Use this guide when you control the encoding pipeline and want your videos ready to stream sooner.

Mux Video accepts most modern video formats and codecs. However, certain types of inputs need to be standardized in order for Mux to do further operations on them, and this can add time before the video is ready to be streamed. If you want to standardize your content before sending it to Mux, and potentially improve performance, this guide will show what you need to do.

Standard input specs

To be considered standard input, the input video file must meet the following requirements:

Additional requirements for assets with a max_resolution_tier of 1080p

Assets ingested up to 1080p are subject to the following standard input requirements.

Additional requirements for assets with a max_resolution_tier of 2160p (4K)

Assets ingested at 2K and 4K resolutions are subject to the following standard input requirements.

How to create standard input (ffmpeg)

As a starting point, here is a sample ffmpeg command for creating video that complies with Mux standard input. Feel free to modify this by using things like 2-pass encoding, different presets, or different bitrates (as long as the total bitrate ends up below 8Mbps).


Standard input for 4K

If you are creating a 4K video, the resolution and bitrate limits are higher. Here is a sample ffmpeg command for creating video that complies with Mux standard input for 4K.


How to create standard input on mobile devices

Mux mobile upload SDKs

Mux's iOS and Android upload SDKs are optimized to pre-process video files created on mobile devices to create standard input video files before uploading to Mux.

Many mobile devices capture H.264 8-bit 4:2:0 video by default. More recent mobile devices increasingly use HEVC 4:2:0 by default (either 8-bit with HDR disabled or 10-bit with HDR enabled). Here are the main things to watch out for:

Non-standard input

Mux Video works fine with video outside of the standard input specs. But because other videos cannot be easily streamed to many modern devices, Mux Video must perform an initial encoding operation on non-standard input to create a mezzanine file. This means that non-standard input will be slower to ingest.

As soon as Mux Video detects that the input file is non-standard, it emits the video.asset.non_standard_input_detected. This lets you know right away that your video will need additional processing time, along with the specific reasons why it's considered non-standard.


Note that non_standard_input_reasons may not be finalized as additional reasons may be found later and will be included on the asset after ingest completion.

Mux Video also exposes this information in all subsequent asset webhooks, including the video.asset.ready event. This information is also returned in the asset object when retrieved using the Get Asset API.

Understanding the transcoding progress of a non-standard input

When an asset needs additional processing, you can use the progress field from the Get Asset API response, which returns the current state and the completion percentage of a transcode.


This field tells you both the current processing state and an estimated completion percentage from 0 to 100, allowing you to keep your users informed with accurate progress indicators.

The progress field can have the following states:

General limits

The max duration for any single asset is 12 hours.