App Store app preview audio: stereo AAC 256 kbps, check the track

Apple wants stereo AAC at 256 kbps and 44.1 or 48 kHz in an app preview. Use Sume audio detach to read channels and rate, and trim to keep the AAC track.

5 min readSume
All posts

An app preview needs stereo audio, and Sume can tell you whether your clip has it. Apple's App Store Connect page lists audio for both H.264 and ProRes previews as stereo, 256 kbps AAC (ProRes also accepts PCM), at a 44.1 kHz or 48 kHz sample rate, laid out as either one track with two channels or two tracks with one channel each (read 2026-10-03). Sume's audio detach extracts a clip's audio into a wav or mp3 and reports the channels and sample rate it produced, which is a quick way to look at what the source carries.

Detach does not change the video's own audio, and Sume publishes no AAC bit rate setting, so this is a check, not a conform.

Apple's audio rows

Apple groups the audio rules under one heading for both formats. Configuration is stereo; the codec is AAC at 256 kbps, with PCM also accepted for ProRes; the sample rate is 44.1 kHz or 48 kHz; PCM bit depth is 16, 24 or 32. The stereo setup is either one two-channel track or two single-channel tracks (read 2026-10-03). The video rows, 15 to 30 seconds, a 500 MB maximum and 30 fps at most, sit beside them.

App preview audio rows from Apple, read 2026-10-03
RowApple's valueWhat you can check with Sume
ConfigurationStereoDetach result channels
Codec and bit rateAAC, 256 kbpsNot exposed; trim keeps AAC
Sample rate44.1 kHz or 48 kHzDetach sample_rate option
Track layoutOne 2-channel track or two 1-channel tracksProbe from video inspect

Read channels and rate with audio detach

Audio detach returns audio_url, duration_seconds, format, channels and sample_rate. channels defaults to source, which keeps the clip's layout, and sample_rate is null when you omit it, because the output inherits the source. To see a clean number, request sample_rate 48000 and read what comes back. The range field lets you detach only a few seconds, so the check is cheap at $0.01 per job under the current public rate (confirm in GET /v1/catalog).

A source with no audio fails with detach_source_has_no_audio, so run video inspect with frames: false first if you are unsure; its probe includes has_audio. The script detaches the first ten seconds and prints the channel layout it reports.

import os, time, requests
BASE = "https://api.sume.com"
H = {"Authorization": f"Bearer {os.environ['SUME_API_KEY']}"}

def run(path, body, key):
    r = requests.post(BASE + path, headers={**H, "Idempotency-Key": key}, json=body)
    r.raise_for_status()
    job = r.json()["request_id"]
    while True:
        s = requests.get(f"{BASE}/v1/jobs/{job}/status", headers=H).json()["status"]
        if s in ("completed", "failed", "canceled"):
            break
        time.sleep(3)
    return s, (requests.get(f"{BASE}/v1/jobs/{job}/result", headers=H).json() if s == "completed" else None)

status, res = run("/v1/audio-detach", {
    "video_url": "https://media.sume.com/artifacts/artf_demo/preview.mp4",
    "range": {"start": 0, "end": 10}, "channels": "source"}, "preview-audio-001")
if res:
    print(res["channels"], res["sample_rate"], res["duration_seconds"], res["audio_url"])
else:
    print(status)

Keep the AAC track when you trim

Video trim in its default exact mode remuxes kept audio as AAC, which matches Apple's codec, but the docs publish no bit rate, so the 256 kbps figure is something to verify elsewhere. audio set to keep is the default; drop makes a silent file, which is allowed if your preview has no sound but is worth a separate decision.

If the probe shows a mono track, a stereo upmix is a job for an audio tool. Sume's docs describe channels options on detach (source or mono), not an upmix to stereo, so do not count on it. Before you upload, play the file back on a device and in App Store Connect's preview, and note the sample rate you found.

Why the layout row matters

Apple allows two ways to carry stereo: one track with two channels, or two tracks with one channel each. A screen recording made on a phone usually arrives as the first kind, but a file edited in a multi-track tool can end up as the second, or with a stereo music bed plus a mono voice track that no one meant to ship. Detach merges what the clip carries into one output, so the channel count it reports describes the result, not each track.

If you suspect extra tracks, compare the length and channel count you get with what your editor shows, and open the file in a player that lists tracks. Sume's docs do not describe a per-track listing, so a mismatch is a reason to look in another tool before you submit to Apple.

A short audio checklist

Write down four things for each preview file: whether it has audio, how many channels, the sample rate, and the codec. Compare them with Apple's table. If any row does not match, fix it at the source and run the cut again.

Keep the rows next to the video size and length rows from the earlier part of the spec so one sheet covers the whole file. A preview that passes on the picture but fails on audio is a common reason for a re-upload.

Sources

Related posts

More in Developers

All Developers posts

Written by Sume