영상에 이중 자막을 넣는 방법: 두 언어 함께 입히기

Sume로 영상 하나에 두 언어를 입히세요. 자막 Job 하나의 cue마다 두 줄을 모두 넣거나, Job을 두 번 실행해 언어마다 높이를 따로 정합니다.

읽는 시간 5분Sume
전체 글

영상에 이중 자막을 넣으려면 원문 바로 아래나 위에 번역문을 두는 식으로 각 줄을 두 언어로 동시에 보여 주세요. Sume로 두 언어를 모두 영상에 입히려면 시각을 정한 cues를 POST /v1/video-captions로 보내며, 방법은 두 가지입니다. 하나는 cue마다 두 줄을 줄바꿈으로 나눠 담은 Job 하나이고, 다른 하나는 Job 두 개로, 두 번째 Job이 첫 Job의 출력물에 다른 언어를 다른 design.placement.anchor_ratio로 입힙니다.

Sume 관련 내용은 2026-09-27에 확인한 영상 캡션 문서와 Sume API 레퍼런스의 자막 스키마에서 가져왔습니다. 이 글은 두 언어를 모두 영상에 입히려는 제작자를 위한 것입니다. 자막 트랙 두 개를 동시에 보려는 시청자에게는 두 트랙을 함께 보여 줄 수 있는 플레이어가 필요합니다.

두 언어의 줄은 어디서 가져오나요?

자막 API에는 번역 단계가 없습니다. language는 음성 인식에 어떤 언어를 기대할지 알려 줄 뿐이므로, 두 번째 언어의 줄은 직접 준비해야 합니다. 한 가지 파이프라인은 Sume 음성 인식으로 타이밍이 있는 문장을 받아 문장마다 번역하고, 각 문장의 start와 end를 두 언어에 똑같이 쓰는 것입니다. 영상 자막 번역 API에서 단계별로 설명합니다.

SRT 파일이 이미 두 개 있나요? 블록을 시각 기준으로 짝지으세요. 짝 하나가 이중 자막 줄 하나가 됩니다.

Job 하나로 두 언어를 입히려면 어떻게 하나요?

짝을 이룬 두 줄을 cue 하나 안에서 줄바꿈으로 이으세요. cue의 text에는 두 줄 카드를 위한 줄바꿈을 하나 넣을 수 있으며, 전체 길이는 최대 400자입니다. 두 줄은 cue의 시각, 스타일, 높이를 공유하므로 항상 함께 나타나고 함께 사라집니다.

스타일이 두 문자 체계를 모두 그려야 하므로 스타일을 직접 지정하세요. 한국어와 영어라면 텍스트를 쓰인 그대로 입히는 black-outline이나 다른 한글 구절 카드 스타일을 지정하세요. style을 생략하거나 400에 기대지 마세요. 현재 코드에서는 기본 스타일과 caption_hangul_text_latin_style 거부가 모두 전체 cue의 글자 중 절반 이상이 한글인지로 정해지므로, 영어가 많은 짝은 slam으로 정해질 수 있습니다. slam의 라틴 서체에는 한글 글립이 없습니다.

줄바꿈을 살릴지도 스타일이 정합니다. 현재 코드에서 한글 구절 카드 스타일은 줄바꿈을 유지하지만, korean-ad와 라틴 기본 스타일인 slam은 무시합니다. 그래서 라틴 문자를 쓰는 두 언어라면 Job 두 개를 쓰세요. 구절 카드 스타일은 간격이 0.45초 이하인 짧은 cue들을 최대 22자짜리 카드 하나로 합치기도 합니다. design.phrasing.max_words: 1을 쓰면 카드마다 cue가 하나씩 들어갑니다.

직접 지정한 black-outline은 발화 중인 단어를 금색으로 물들이는 고유의 강조를 유지합니다. 현재 코드에서는 각 cue가 start부터 end까지 발화 중인 단어로 취급되므로, 예제는 두 줄을 모두 흰색으로 유지하려고 design.colors.active를 흰색으로 설정합니다.

curl -X POST https://api.sume.com/v1/video-captions \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: bilingual-one-pass-001" \
  -d '{
    "video_url": "https://example.com/interview.mp4",
    "style": "black-outline",
    "design": { "colors": { "active": "#FFFFFF" } },
    "cues": [
      { "text": "Thanks for joining us.\n함께해 주셔서 감사합니다.", "start": 0, "end": 2.4 },
      { "text": "Setup takes a minute.\n설정은 1분이면 됩니다.", "start": 2.4, "end": 5.1 }
    ]
  }'

언어마다 높이를 따로 정하려면 어떻게 하나요?

Job을 두 번 실행하세요. 첫 Job은 첫 번째 언어를 입힙니다. 음성 그대로(문구 필드 없음), script_text로 보낸 대본, 시각을 정한 cues 중 하나를 쓰면 됩니다. 두 번째 Job은 첫 Job이 자막을 입힌 video_url을 원본으로 보내면서, 다른 언어를 cues로, 다른 design.placement.anchor_ratio와 함께 보냅니다. 이 값은 프레임 높이에 대한 줄 중심의 비율로, 범위는 0.05–0.95입니다. 현재 코드에서는 이 비율을 위에서부터 재므로 0.9가 0.75보다 아래에 놓입니다.

두 높이 사이에는 텍스트가 들어갈 만큼 간격을 두고, 대량으로 처리하기 전에 첫 결과를 확인하세요. design은 punch와 tiktok-green을 뺀 모든 스타일에서 동작합니다.

영상 캡션과 Sume API 레퍼런스 기준, 2026-09-27 확인. 줄바꿈 행은 현재 코드 기준입니다.
Job 하나, 두 줄 cueJob 두 개, 각각 언어 하나
과금되는 자막 Job하나두 개
높이두 줄이 anchor_ratio 하나를 공유Job마다 anchor_ratio를 따로 설정
스타일스타일 하나가 두 문자 체계를 모두 그려야 함Job마다 스타일을 따로 지정
타이밍두 줄이 각 cue의 start와 end를 공유언어마다 자체 시각 유지
줄바꿈한글 구절 카드 스타일은 유지, slam과 korean-ad는 무시필요 없음

어떤 제한이 있나요?

  • Job마다 cue를 1–200개 받으며, 각 cue는 1–400자이고 start와 end는 0–60초 사이입니다.
  • 현재 자막 워커는 60초보다 긴 원본이나 오디오 스트림이 없는 원본을 거부합니다. 현재 코드에서 첫 Job이 자막을 입힌 MP4는 클립의 소리를 유지하므로 두 번째 Job에 넣을 수 있습니다.
  • 문서는 라틴 디스플레이 스타일과 한글 스타일만 설명하며, 중국어나 일본어 같은 다른 문자 체계용 스타일은 언급하지 않습니다.
  • 접수된 자막 Job마다 60초 이하 영상에 대해 영상 캡션 페이지에 나온 고정 금액이 예약되고 확정되므로, Job 두 개를 쓰는 방식에는 그 금액이 두 번 듭니다.

출처

관련 글

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

미디어 도구 글 전체 보기

작성자 Sume