사진과 영상을 하나의 영상으로 합치는 방법

사진과 영상은 타임라인 하나에서 하나의 영상으로 합칩니다. 사진은 정한 시간만큼 띄우고, 클립은 길이에 맞게 자르고, 전체에 사운드트랙 하나를 까세요.

읽는 시간 5분Sume
전체 글

사진과 영상을 하나의 영상으로 합치려면 원하는 순서대로 타임라인 하나에 배치하고, 사진마다 화면에 머무는 길이를 정하고, 클립은 원하는 부분만 자르고, 전체에 쓸 프레임 크기를 하나 고른 뒤, 시퀀스 전체 아래에 사운드트랙 하나를 까세요. Sume에서는 이것이 Timeline 1.0 렌더 한 번입니다. 사진과 클립은 모두 video[] 슬롯이 되며, 사진은 슬롯의 duration 동안 정지 화면으로 유지되고, 클립은 source_in부터 재생됩니다.

아래 내용은 2026-09-28에 확인한 Timeline 1.0, 오디오 분리, 영상 프레임 문서와 Sume API 레퍼런스를 기준으로 합니다. 현재 동작이라고 설명한 내용은 Sume의 코드에서 확인한 것입니다. 사진만으로 만드는 슬라이드쇼는 Sume 이미지를 음악과 함께 MP4로 만들기에서 다룹니다.

사진과 클립을 렌더 하나에 어떻게 넣나요?

모든 URL은 이미 워크스페이스에 있는 media.sume.com 아티팩트나 에셋이어야 합니다. 앞서 실행한 Sume Job의 출력이 그 예로, 생성한 클립이나 영상 프레임으로 클립에서 뽑은 스틸이 여기에 해당합니다. 영상 프레임은 내구성 있는 media.sume.com 이미지를 반환합니다. 컴퓨터에 있는 파일을 올리는 공개 업로드 경로는 없으며, 이 규칙은 엔드포인트별로 받는 URL에서 설명합니다.

각 슬롯은 이전 슬롯이 끝나는 곳에서 시작하고, audio.duration_seconds는 마지막 슬롯이 끝나는 지점입니다(여기서는 11초). 아래 렌더는 사진으로 시작해 클립으로 페이드되는데, 클립은 처음 이 초를 건너뛰고 오 초 동안 재생됩니다. 그다음 두 번째 사진으로 페이드되며, 전체에 음악이 깔립니다.

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: photos-and-clips-001" \
  -d '{
    "output": { "width": 1920, "height": 1080 },
    "audio": { "mode": "silence", "duration_seconds": 11 },
    "soundtrack": { "url": "https://media.sume.com/artifacts/artf_demo/music.mp3", "gain_db": 0, "loop": true },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/photo-1.png", "start": 0, "duration": 3, "fit": "blur" },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/clip.mp4", "start": 3, "duration": 5, "source_in": 2,
        "transition": { "type": "fade", "duration": 0.5 } },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/photo-2.png", "start": 8, "duration": 3, "fit": "blur",
        "transition": { "type": "fade", "duration": 0.5 } }
    ]
  }'

사진 슬롯과 클립 슬롯은 무엇이 다른가요?

둘 다 필드가 같은 video[] 슬롯이지만, 사진에는 재생 시간도, 프레임 레이트도, 자체 소리도 없으므로 렌더는 둘을 다르게 처리합니다.

Timeline 1.0과 Sume API 레퍼런스 기준, 2026-09-28 확인. "현재 코드"로 표시한 칸은 Sume의 컴파일러에서 확인한 내용입니다.
항목사진 슬롯클립 슬롯
화면 표시슬롯의 duration 동안(최소 0.2초) 정지 화면으로 유지슬롯의 duration 동안(최소 0.2초) source_in부터 재생
source_in경고와 함께 무시(현재 코드)파일 안의 시작 지점(인포인트)
프레임 레이트없음output.fps를 생략하면 가장 긴 영상 소스가 출력 레이트를 정함
자체 소리없음오디오 스파인에 넣지 않으면 빠짐(현재 코드)
슬롯보다 짧은 소스일어나지 않음: 스틸은 슬롯 전체를 채움(현재 코드)render.pad_mode 설정에 따라 루프하거나 마지막 프레임을 유지
슬롯으로 들어가는 전환 효과페이드할 화면이 항상 있음(현재 코드)source_in + duration + 전환 효과 길이만큼의 소스 영상이 필요하며, 모자라면 경계가 하드 컷이 됨(현재 코드)

세로 샷과 가로 샷은 어떻게 섞나요?

output으로 프레임을 하나 고르세요. 생략하면 세로 프레임인 1080×1920이 되므로, 가로 영상이라면 예제처럼 1920×1080으로 설정하세요. 그다음 각 슬롯에 fit을 지정하세요. 현재 코드에서 기본값인 cover는 프레임을 채우고 넘치는 부분을 잘라 내므로, 세로 사진의 위아래가 잘릴 수 있습니다. 네 가지 fit 방식은 해상도가 다른 영상 두 개를 합치는 방법에서 비교합니다.

소리는 어디서 나오나요?

오디오 스파인과 선택 사항인 soundtrack에서만 나옵니다. 현재 코드에서 렌더는 어떤 클립의 자체 오디오도 매핑하지 않으므로, 클립의 소리는 스파인에 넣지 않으면 빠집니다.

  • 음악만 쓸 때: 예제처럼 audio.mode: "silence"로 길이를 정하고, 음악은 soundtrack으로 재생합니다. 그 트랙에 필요한 설정은 사진만 쓰는 가이드에서 설명합니다.
  • 보이스오버가 있을 때: 보이스오버를 audio.url로 넘기고, 영상에 배경 음악 넣기처럼 그 아래에 음악을 soundtrack 베드로 까세요.
  • 클립 자체의 소리를 쓸 때: POST /v1/audio-detach로 소리를 분리하고, 그 파일을 슬롯이 재생하는 구간에 맞게 잘라 최대 20개인 audio.parts[] 중 하나로 쓰세요. 이 패턴은 API로 영상 일부 잘라내기에서 보여 줍니다. part들을 합쳐 audio.duration_seconds 전체를 채워야 하므로, 사진 슬롯에도 음악 한 조각 같은 part가 필요합니다. 현재 코드에서는 모든 part의 채널 레이아웃이 같아야 하며, 다르면 렌더가 audio_parts_channel_mismatch로 실패합니다.
  • 사운드트랙을 포함한 모든 오디오 URL도 Sume에 호스팅되어 있어야 합니다.

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

렌더는 API 요금에 출력 분당 $0.10로 나와 있고, 기본적으로 5.5% 에이전트 수수료가 더해지며, ceil(audio.duration_seconds / 60)분을 예약합니다. POST /v1/timeline-1.0/plan은 과금 없이 같은 본문을 검사합니다. 렌더 하나에는 슬롯 1개에서 200개, 출력 1초에서 1,800초까지 담을 수 있습니다. 전환 효과는 사진이든 클립이든 첫 슬롯 다음의 어느 슬롯에나 넣을 수 있고, 길이는 최대 1초이면서 더 짧은 이웃 슬롯의 절반 이하입니다. 전환 효과 종류는 영상 전환 효과 API에서 비교합니다.

출처

관련 글

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

미디어 도구 글 전체 보기

작성자 Sume