How to convert MP3 to MP4 with an image
Turn an MP3 into an MP4 with one picture: a Timeline 1.0 render holds the image for the whole track, up to 30 minutes, at the frame size you set.

To convert an MP3 to an MP4 with an image, make a video that shows one picture for the whole length of the audio and plays the MP3 as its sound. With Sume, when the MP3 and the picture are already hosted on Sume, that is one Timeline 1.0 render: the MP3 as the audio spine, the picture as the only video[] slot, and audio.duration_seconds set to the track's length, up to 1,800 seconds.
The facts come from the Timeline 1.0 docs and the field descriptions in the Sume API reference, read on 2026-09-27. Anything described as current behavior is read from Sume's code.
Where do the MP3 and the image need to be?
Both must already be your workspace's media.sume.com artifacts or assets; the render rejects off-host URLs at admit. That suits files made by earlier Sume jobs, because Sume mirrors generated outputs into its own media URLs. Text-to-speech is one source of an MP3: TTS 1.0 returns mp3 at 44,100 Hz and 128 kbps by default, and the API reference names a TTS master as a spine-grade file.
Sume has no public upload route for a file on your computer: its asset upload routes are hidden from the public API reference. Which URLs each endpoint accepts covers the rules.
How do I make the MP4?
Send one render. The picture's slot starts at 0 and lasts as long as the audio, and a still is held as a static frame for the whole slot. output 1920×1080 makes a landscape video; leave output out and you get the default 1080×1920 portrait frame.
audio.duration_secondsis the output length, and the API reference says the output always equals it, so set it to the track's length. A shorter value cuts off the end of the track.- For a square cover in a 16:9 frame, set the slot's
fit. In the current code the default,cover, fills the frame and crops what overflows, so the cover loses its top and bottom;containkeeps the whole picture with black bars, and the API reference saysblurpads with a blurred copy of the frame instead. The image slideshow video API post covers every fit mode. Idempotency-Keyis required. The defaultmodeisasync: pollGET /v1/jobs/:id/status, then readGET /v1/jobs/:id/result, whosevideo_urlis the MP4.
curl -X POST https://api.sume.com/v1/timeline-1.0/render \
-H "Authorization: Bearer $SUME_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: episode-12-mp4" \
-d '{
"audio": { "url": "https://media.sume.com/artifacts/artf_demo/episode.mp3", "duration_seconds": 214 },
"output": { "width": 1920, "height": 1080 },
"video": [
{ "source_url": "https://media.sume.com/artifacts/artf_demo/cover.png", "start": 0, "duration": 214, "fit": "contain" }
]
}'What length, size, and sound will the MP4 have?
The MP3 sets the length and the sound, and output sets the picture. The API reference says a spine under 32 kHz is reported as audio_spine_low_fidelity, so an MP3 at a lower sample rate comes back with that warning.
| Property | What you get |
|---|---|
| Length | audio.duration_seconds, from 1 to 1,800 seconds |
| Frame size | output.width × output.height, even integers from 256 to 2160; default 1080×1920 |
| Frame rate | 30 fps when the render has only stills; output.fps can pick 24, 25, 30, or 60 instead |
| Sound | The spine's sample rate and channel count, encoded as AAC at 192 kbps in the current code |
| Container | mp4 only |
Can the picture move?
Not in this render: stills are static holds, and a motion field is accepted and ignored with a motion_ignored warning. For movement, turn the picture into a short clip first, as in make a picture move with AI, then loop it to the audio's length.
What does it cost, and what are the limits?
The render reserves $0.10 per output minute on API pricing, plus a 5.5% agent fee by default, counted as ceil(audio.duration_seconds / 60) minutes, so the 214-second episode above reserves 4 minutes. It never charges more than its reservation.
- One render covers at most 1,800 seconds, 30 minutes. A longer recording takes more than one render, and
audio.source_insets where each one starts in the file. - Each edge is at most 2,160 pixels, so a 3840×2160 frame is out of range.
Sources
Related posts
More in Media tools
- MP4 video has no sound? Find where the audio went
An MP4 with no sound has no audio track, a silent one, or one your player can't decode. Check with a free probe, then fix the step that lost it.
- Google Performance Max video specs: sizes and lengths
Performance Max recommends one video each in 16:9, 1:1, and 9:16, 10 seconds or more, at 1920×1080, 1080×1080, and 1080×1920. Make each with Sume.
- Pinterest pin size and video specs: 2:3 images and clips
Pinterest recommends 2:3 or 1000x1500 image Pins and takes 4 s to 15 min video. Make 2:3 images with Sume, and crop 9:16 clips to 2:3 or 4:5.
- How to reduce video file size to fit an upload limit
Reduce video file size with fewer bits: a smaller frame, a lower frame rate, a shorter cut, or no audio. Sume takes no bitrate, so check size_bytes.
Written by Sume