J컷과 L컷이란? 차이와 만드는 방법

J컷은 다음 샷의 소리를 그 화면보다 먼저 들려주고, L컷은 한 샷의 소리를 다음 화면 아래로 계속 이어 갑니다. 각각 만드는 방법을 알아봅니다.

읽는 시간 5분Sume
전체 가이드

J컷과 L컷은 소리와 화면이 서로 다른 순간에 바뀌는 스플릿 편집(split edit)입니다. J컷에서는 다음 샷의 소리가 그 화면보다 먼저 시작되므로, 새 장면이 먼저 들립니다. L컷에서는 화면이 다음 샷으로 넘어가는 동안 앞 샷의 소리가 계속 재생됩니다. J와 L이라는 글자는 편집 타임라인에서 오디오 트랙과 영상 트랙이 이루는 모양을 나타냅니다.

아래 Sume 관련 내용은 2026-09-28에 확인한 Timeline 1.0과 오디오 분리 문서, Sume API 레퍼런스를 바탕으로 합니다. 현재 동작이라고 설명한 내용은 Sume의 코드에서 확인한 것입니다.

J컷과 L컷은 무엇이 다른가요?

둘 다 소리와 화면이 함께 바뀌는 스트레이트 컷에서 시작합니다. 여기서 소리의 컷 지점을 화면의 컷 지점에서 한두 초 떨어지게 옮깁니다. 둘의 차이는 옮기는 방향뿐입니다.

  • J컷: 소리의 컷이 먼저 옵니다. 다음 샷의 소리가 현재 화면 아래에서 시작되고, 화면이 뒤따라 바뀝니다. 인터뷰라면 인터뷰어가 아직 화면에 있는 동안 답변이 시작됩니다.
  • L컷: 화면의 컷이 먼저 옵니다. 현재 샷의 소리가 다음 화면 아래로 이어지므로, 시청자가 듣는 사람이나 설명하는 대상을 보는 동안 화자가 문장을 끝맺을 수 있습니다.

Sume로 J컷이나 L컷을 어떻게 만드나요?

Sume의 Timeline 1.0 렌더는 소리와 화면을 따로 다루며, 스플릿 편집에 필요한 것이 바로 이 점입니다. 화면은 video[] 슬롯의 목록이고, 화면의 컷은 슬롯의 start에서 일어납니다. 소리는 오디오 스파인 하나이며, 최대 20개의 audio.parts[]로 만들 수 있습니다. part는 오디오 파일의 조각으로, 각각 url, source_in(그 파일 안의 인포인트), duration이 있고 끝과 끝이 이어집니다. 소리의 컷은 한 part가 끝나고 다음 part가 시작되는 곳에서 일어납니다.

  • 두 클립 모두 앞서 실행한 Sume Job의 출력처럼 이미 워크스페이스에 있는 media.sume.com 파일이어야 합니다. Sume에는 컴퓨터에 있는 파일을 올리는 공개 업로드 경로가 없습니다(엔드포인트별로 받는 URL).
  • POST /v1/audio-detach로 각 클립의 소리를 분리하세요. 기본 출력은 스파인이 요구하는 형식인, 샘플 단위로 정확한 WAV입니다. 렌더는 소리를 스파인과 선택 사항인 사운드트랙에서만 가져오며, 현재 코드에서는 각 클립 자체의 오디오가 빠집니다.
  • 클립마다 슬롯 하나와 part 하나를 주세요. 샷 B의 싱크를 유지하세요. 샷 B part의 source_in은 J컷이면 슬롯의 source_in에서 소리가 앞서는 시간을 뺀 값이고, L컷이면 소리가 늦는 시간을 더한 값입니다.
  • L컷에서는 샷 A의 파일이 화면에 보이는 마지막 프레임 이후로도 이어져야 하고, J컷에서는 샷 B의 파일에 슬롯의 source_in보다 앞선 소리가 있어야 합니다.
샷 A와 B는 화면에 각각 6초씩 나오고, 샷 B의 슬롯은 start 6, source_in 2이며, 스플릿 길이는 1.5초입니다. 필드는 Timeline 1.0 기준이며 2026-09-28에 확인했습니다.
필드스트레이트 컷J컷L컷
샷 A part의 duration64.57.5
샷 B part의 source_in20.53.5
샷 B part의 duration67.54.5
소리의 컷 위치6초4.5초7.5초
화면의 컷 위치6초6초6초
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: interview-j-cut-001" \
  -d '{
    "audio": {
      "duration_seconds": 12,
      "parts": [
        { "url": "https://media.sume.com/artifacts/artf_demo/a.wav", "source_in": 0, "duration": 4.5 },
        { "url": "https://media.sume.com/artifacts/artf_demo/b.wav", "source_in": 0.5, "duration": 7.5 }
      ]
    },
    "output": { "width": 1920, "height": 1080 },
    "video": [
      { "source_url": "https://media.sume.com/artifacts/artf_demo/a.mp4", "start": 0, "duration": 6 },
      { "source_url": "https://media.sume.com/artifacts/artf_demo/b.mp4", "start": 6, "duration": 6, "source_in": 2 }
    ]
  }'

소리에서는 어떤 문제가 생길 수 있나요?

스플릿은 오디오 part가 만들기 때문에, 렌더가 거부되거나 소리가 이상하게 들리는 곳도 part입니다. 이어지는 목소리 하나 위로 B-roll 컷어웨이를 넣는 것은 더 단순한 경우이며, 토킹 헤드 영상에 B-roll 넣기에서 다룹니다.

  • part 길이의 합은 audio.duration_seconds 이상이어야 합니다. 그렇지 않으면 렌더가 audio_parts_shorter_than_duration으로 거부됩니다.
  • part는 샘플 도메인에서 이어지며 이음매에 무음이 들어가지 않으므로, 소리의 컷은 단어 중간이 아니라 쉼에 두세요.
  • 현재 코드에서 렌더는 채널 수가 서로 다른 part를 거부합니다(audio_parts_channel_mismatch). 한 클립이 모노라면 두 클립 모두 channels: "mono"로 분리하세요.
  • 오디오 트랙이 없는 클립은 분리 단계에서 detach_source_has_no_audio로 실패합니다.
  • 렌더 한 번에는 part를 최대 20개까지 넣을 수 있습니다. 더 필요하면 API로 영상 일부 잘라내기에서 보여 주듯 오디오를 먼저 이어 붙이세요.
  • 기본 출력은 1080×1920(세로)입니다. 가로 편집본이라면 예제처럼 output.width와 output.height를 지정하세요.

스플릿 편집에는 비용이 얼마나 드나요?

오디오 분리는 Job당 $0.01, 렌더는 출력 분당 $0.10이며, 기본적으로 5.5% 에이전트 수수료가 더해집니다. 렌더는 ceil(audio.duration_seconds / 60)분을 예약하므로, 12초짜리 예제는 일 분을 예약합니다. 비용을 내기 전에 과금되지 않는 POST /v1/timeline-1.0/plan으로 타임라인 문서를 검사할 수 있습니다. 렌더링 전에 타임라인 검증하기를 참고하세요.

출처

관련 글

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

미디어 도구 글 전체 보기

작성자 Sume