이미지를 넣어 MP3를 MP4로 변환하는 방법

이미지 한 장으로 MP3를 MP4로 바꾸세요. Timeline 1.0 렌더가 지정한 프레임 크기로 트랙 전체(최대 30분) 동안 이미지를 띄워 둡니다.

읽는 시간 4분Sume
전체 글

이미지를 넣어 MP3를 MP4로 변환하려면, 오디오 길이 내내 이미지 한 장을 보여 주면서 MP3를 소리로 재생하는 영상을 만드세요. Sume에서는 MP3와 이미지가 이미 Sume에 호스팅되어 있다면 Timeline 1.0 렌더 한 번이면 됩니다. MP3는 오디오 스파인으로, 이미지는 유일한 video[] 슬롯으로 넣고, audio.duration_seconds는 트랙 길이(최대 1,800초)로 설정합니다.

아래 내용은 2026-09-27에 확인한 Timeline 1.0 문서와 Sume API 레퍼런스의 필드 설명을 기준으로 합니다. 현재 동작이라고 설명한 내용은 Sume의 코드에서 확인한 것입니다.

MP3와 이미지는 어디에 있어야 하나요?

둘 다 이미 워크스페이스에 있는 media.sume.com 아티팩트나 에셋이어야 하며, 렌더는 호스트 밖 URL을 접수 단계에서 거부합니다. Sume는 생성한 출력을 자체 미디어 URL로 미러링하므로, 앞서 실행한 Sume Job이 만든 파일은 이 조건에 맞습니다. 텍스트 음성 변환(TTS)도 MP3를 얻는 방법 중 하나입니다. TTS 1.0은 기본적으로 44,100 Hz, 128 kbps의 mp3를 반환하며, API 레퍼런스는 TTS 마스터를 스파인으로 쓸 수 있는 품질의 파일로 명시합니다.

Sume에는 컴퓨터에 있는 파일을 올리는 공개 업로드 경로가 없습니다. 에셋 업로드 경로는 공개 API 레퍼런스에서 숨겨져 있습니다. 관련 규칙은 엔드포인트별로 받는 URL에서 다룹니다.

MP4는 어떻게 만드나요?

렌더를 한 번 보내세요. 이미지 슬롯은 0에서 시작해 오디오 길이만큼 이어지고, 스틸은 슬롯 내내 정지 프레임으로 유지됩니다. output을 1920×1080으로 지정하면 가로 영상이 되고, output을 생략하면 기본값인 1080×1920 세로 프레임이 됩니다.

  • audio.duration_seconds는 출력 길이이며, API 레퍼런스에 따르면 출력은 항상 이 값과 같습니다. 그러니 트랙 길이로 설정하세요. 값이 더 짧으면 트랙 끝부분이 잘립니다.
  • 16:9 프레임에 정사각형 커버 이미지를 넣는다면 슬롯의 fit을 지정하세요. 현재 코드에서 기본값인 cover는 프레임을 채우고 넘치는 부분을 잘라 내므로 커버 이미지의 위아래가 잘립니다. contain은 검은 여백을 두고 이미지 전체를 유지하며, API 레퍼런스에 따르면 blur는 검은 여백 대신 프레임을 흐리게 복사한 이미지로 빈 곳을 채웁니다. 모든 fit 모드는 이미지 슬라이드쇼 영상 API 글에서 다룹니다.
  • Idempotency-Key는 필수입니다. 기본 mode는 async이므로 GET /v1/jobs/:id/status를 폴링한 뒤 GET /v1/jobs/:id/result를 읽으세요. 결과의 video_url이 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" }
    ]
  }'

MP4의 길이, 크기, 소리는 어떻게 되나요?

길이와 소리는 MP3가 정하고, 화면은 output이 정합니다. API 레퍼런스에 따르면 32 kHz 미만의 스파인은 audio_spine_low_fidelity로 보고되므로, 샘플 레이트가 그보다 낮은 MP3는 이 경고와 함께 돌아옵니다.

Timeline 1.0과 Sume API 레퍼런스 기준, 2026-09-27 확인. 오디오 코덱은 Sume의 코드에서 확인했습니다.
속성결과
길이audio.duration_seconds, 1초에서 1,800초까지
프레임 크기output.width × output.height, 256에서 2160 사이의 짝수 정수. 기본값 1080×1920
프레임 레이트스틸만 있는 렌더는 30 fps. 대신 output.fps로 24, 25, 30, 60 중 하나를 고를 수 있음
소리스파인의 샘플 레이트와 채널 수 그대로. 현재 코드에서는 192 kbps AAC로 인코딩
컨테이너mp4만

이미지를 움직이게 할 수 있나요?

이 렌더에서는 안 됩니다. 스틸은 정지 화면으로 유지되며, motion 필드는 받기는 하지만 motion_ignored 경고와 함께 무시됩니다. 움직임이 필요하면 AI로 사진을 움직이게 만들기처럼 먼저 이미지를 짧은 클립으로 만든 다음, 오디오 길이만큼 루프하세요.

비용은 얼마이고, 한도는 어떻게 되나요?

렌더는 API 요금에 나온 출력 분당 $0.10 기준으로 ceil(audio.duration_seconds / 60)분을 예약하며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. 따라서 위의 214초짜리 에피소드는 4분을 예약합니다. 예약한 금액보다 더 청구되지는 않습니다.

  • 렌더 한 번은 최대 1,800초, 즉 30분을 다룹니다. 더 긴 녹음은 렌더가 여러 번 필요하며, audio.source_in으로 각 렌더가 파일의 어디에서 시작할지 정합니다.
  • 각 변은 최대 2,160픽셀이므로 3840×2160 프레임은 범위를 벗어납니다.

출처

관련 글

미디어 도구 카테고리의 다른 글

미디어 도구 글 전체 보기

작성자 Sume