Skip to content

Output Formats

Xora supports 9 output formats across video, audio, and image types. You specify the format in your job’s output.format field.

FormatTypeMIME TypeDescription
mp4Videovideo/mp4H.264 video — universal playback, great for web
webmVideovideo/webmVP8/VP9 video — optimized for web browsers
movVideovideo/quicktimeQuickTime container — common in Apple/pro workflows
gifImageimage/gifAnimated GIF — for previews and social media
mp3Audioaudio/mpegMPEG audio — most compatible audio format
aacAudioaudio/aacAdvanced Audio Coding — better quality than MP3 at same bitrate
wavAudioaudio/wavUncompressed audio — lossless, large files
jpgImageimage/jpegJPEG image — for thumbnails and frame captures
pngImageimage/pngPNG image — lossless, supports transparency
RecipeVideo formatsAudio formatsImage formats
webReadymp4
proxymp4
compressmp4, webm, mov
transcodemp4, webm, movmp3, aac, wav
resizemp4, webm, mov
trimmp4, webm, movmp3, aac, wav
extractAudiomp3, aac, wav (fallback only)
thumbnailjpg, png
concatmp4, webm, movmp3, aac, wav
  • mp4 — safest default. Plays everywhere (browsers, phones, desktop). Uses H.264 codec.
  • webm — smaller file sizes for the same quality. Best for web-only use. Not universally supported on older devices.
  • mov — use when your downstream workflow requires QuickTime (e.g., Final Cut Pro, After Effects).
  • mp3 — most compatible. Use for podcasts, music, or any general-purpose audio.
  • aac — higher quality than MP3 at the same bitrate. Default audio codec in MP4 containers.
  • wav — uncompressed, lossless audio. Use when quality matters more than file size (e.g., mastering, sound design).

For the extractAudio recipe, output.format is only the transcode fallback when the source audio cannot be stream-copied. Xora probes the input and may deliver a different extension without re-encoding:

Resolved outputWhen
.mp3, .aac, .wav, .opus, .flac, .oggSource codec supports stream copy
output.format (mp3, aac, or wav)Source codec not copyable (e.g. AC-3, DTS)

The completed file extension comes from the engine plan, not necessarily from output.format.

  • jpg — smaller files, great for thumbnails and previews. Lossy compression.
  • png — lossless, supports transparency. Larger files but pixel-perfect quality.

The format is always specified in the output object:

{
"mode": "recipe",
"input": { "url": "https://example.com/video.mp4" },
"output": { "format": "mp4" },
"recipe": { "name": "compress", "crf": 28 }
}

For FFmpeg multi-file jobs, the format is determined by the output filename extension:

{
"mode": "ffmpeg",
"input_files": { "in_1": "https://example.com/video.mp4" },
"output_files": { "out_1": "result.webm" },
"ffmpeg": { "args": ["-i", "{{in_1}}", "-c:v", "libvpx-vp9", "{{out_1}}"] }
}