Threads video audio: AAC, 128 kbps, 48 kHz max, and what trim keeps
Threads wants AAC audio at up to 48 kHz and 128 kbps. Sume trim remuxes kept audio as AAC but has no bitrate field, so probe the clip and check the file.

Threads video uses AAC audio, mono or stereo, at up to 48 kHz and a maximum of 128 kbps. Sume video-trim with exact precision remuxes kept audio as AAC, but the docs expose only audio: keep or drop and no bitrate field, so confirm the bitrate on the output file before you upload.
What does each side control?
Compare the Threads limits with what the Sume trim contract says. Where the docs are silent, test the file.
| Item | Threads | Sume trim docs |
|---|---|---|
| Codec | AAC | Exact precision remuxes kept audio as AAC |
| Channels | Mono or stereo | Not documented |
| Sample rate | 48 kHz maximum | Not documented |
| Bitrate | 128 kbps maximum | No bitrate field; codec fields are refused |
How do I know if a clip has audio?
A silent clip behaves differently from a clip with a track. Send a probe-only inspect and read probe.has_audio, as the video-inspect docs recommend.
curl -X POST https://api.sume.com/v1/video-inspect \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: threads-audio-001" \
-d '{"video_url": "https://media.sume.com/artifacts/artf_demo/talk.mp4", "frames": false}'What happens if I send codec fields?
Trim refuses codec, crf and similar fields with ffmpeg_fields_rejected, because the server compiles ffmpeg itself. Use audio: drop for a silent post, and run a local probe to measure the bitrate of a kept track.
Sources
Related posts
More in Developers
- TikTok bans some AI content even if labeled: lint prompts first
TikTok prohibits AI that shows fake authoritative sources, crisis events, endorsements or under-18 likeness. A small Python check to run before a Sume render.
- TikTok Direct Post init: 6 requests a minute per token, queue clips
TikTok limits each user access_token to 6 init requests per minute on Direct Post. Queue finished Sume clips and release them at that pace.
- TikTok publish_id status: poll it after the Sume job webhook fires
The TikTok Direct Post page I read returns a publish_id to check status and mentions no webhook. Let Sume's webhook trigger the post, then poll TikTok.
- TikTok upload_url is valid for one hour: finish the Sume job first
TikTok says the Direct Post upload_url is valid for one hour after issuance. Wait for the Sume job to complete before you initialize so the upload fits.
Written by Sume