영상 일부분을 블러 처리하거나 검게 가리는 방법

영상의 일부를 블러 처리하려면 Sume에서 FFmpeg filtergraph 하나로 영역을 잘라 블러를 적용한 뒤 제자리에 다시 올리세요. 아니면 속이 채워진 drawbox로 가리세요.

읽는 시간 5분Sume
전체 글

영상의 일부를 블러 처리하려면 프레임을 복사하고, 복사본에서 가리고 싶은 영역을 잘라 내 블러를 적용한 뒤, 같은 위치에 다시 올리세요. 그 영역을 완전히 가리려면 대신 속이 채워진 박스를 그 위에 그리세요. FFmpeg에서는 어느 쪽이든 filtergraph 하나(split, crop, gblur, overlay, 또는 drawbox)로 되며, Sume의 POST /v1/video-filter가 이미 media.sume.com에 호스팅된 클립에 이를 실행해 새 MP4를 반환합니다. 고정된 숫자를 쓰면 영역이 클립 내내 같은 자리에 머물기 때문에, 움직이는 얼굴이나 번호판을 따라가지 않습니다.

필터 문법은 FFmpeg 필터 문서를, Sume 관련 내용은 영상 필터와 영상 프레임 문서, Sume API 레퍼런스를 따르며, 모두 2026-09-27에 확인했습니다. Sume 필터 컴파일러에서 확인한 동작은 현재 동작하는 방식대로 설명합니다.

영상의 고정된 영역을 블러 처리하려면 어떻게 하나요?

프레임의 왼쪽 위 모서리를 기준으로 영역을 픽셀 단위로 잰 다음, 그 값으로 split[main][copy];[copy]crop=400:120:760:900,gblur=sigma=20[blurred];[main][blurred]overlay=760:900 그래프를 채우세요. 화면의 일부를 처리해 그 위에 다시 올릴 때 FFmpeg 문서가 직접 쓰는 패턴입니다.

  • split은 프레임을 두 개로 복사하고 각각 [main]과 [copy]라는 라벨을 붙입니다.
  • crop=400:120:760:900은 복사본에서 왼쪽 위 모서리가 x 760, y 900에 있는 400×120 영역을 남깁니다.
  • gblur=sigma=20은 그 영역을 블러 처리합니다. sigma는 가우시안 블러의 표준편차로 기본값은 0.5이며, sigmaV를 따로 설정하지 않으면 세로 방향에도 적용됩니다. 값이 클수록 더 많이 흐려집니다.
  • overlay=760:900은 블러 처리된 영역을 같은 x, y 위치에 맞춰 [main] 위에 다시 올립니다.
  • 서버가 입력과 출력을 공급하므로, Sume는 [main] 같은 내부 라벨은 받지만 [0:v] 같은 스트림 지정자는 거부합니다. 또한 현재 그래프는 라벨이 아니라 필터로 시작하고 끝나야 합니다.
curl -X POST https://api.sume.com/v1/video-filter \
  -H "Authorization: Bearer $SUME_API_KEY" \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: blur-area-001" \
  -d '{
    "video_url": "https://media.sume.com/artifacts/artf_demo/screen-recording.mp4",
    "filtergraph": "split[main][copy];[copy]crop=400:120:760:900,gblur=sigma=20[blurred];[main][blurred]overlay=760:900"
  }'

대신 영상의 일부를 검게 가리려면 어떻게 하나요?

drawbox=x=760:y=900:w=400:h=120:color=black:t=fill처럼 속이 채워진 박스를 그리세요. x와 y는 박스의 왼쪽 위 모서리이고, t=fill은 3픽셀 테두리를 그리는 대신 박스 안을 채우며, color는 FFmpeg 색상 문법에 따른 색 이름이나 hex 값을 받습니다. 블러를 적용해도 글자를 읽을 수 있다면 sigma를 높이거나 박스를 쓰세요. 박스 두 개는 쉼표로 이은 drawbox 필터 두 개입니다.

영역의 위치와 크기는 어떻게 알아내나요?

POST /v1/video-frames로 원본 크기 스틸을 뽑으세요. 과금되지 않고, max_edge를 생략하면 소스 프레임 크기를 유지하며, 호출당 at[]에 시각을 최대 24개까지 받습니다. 아무 이미지 편집기에서나 영역의 왼쪽 위 모서리와 크기를 읽으세요. 가리려는 대상이 조금 움직인다면, 스틸들에서 보이는 모든 위치를 덮도록 박스 크기를 정하세요.

클립은 이전 Sume Job의 출력처럼 이미 워크스페이스에 있는 media.sume.com 아티팩트나 에셋이어야 하며, 이 규칙은 엔드포인트별로 받는 URL에서 설명합니다.

영상의 몇 초만 블러 처리할 수 있나요?

네, 몇 단계를 거치면 됩니다. 위의 그래프는 클립의 모든 프레임을 블러 처리하므로, 영상 트림으로 클립을 여러 부분으로 자르고, 필요한 부분에 필터를 적용한 뒤, Timeline 1.0 렌더로 부분들을 이어 붙이세요. 현재 렌더의 소리는 클립이 아니라 오디오 스파인에서 나오므로, 오디오 분리로 얻은 클립의 트랙을 audio.url로 넘기세요.

한도는 어떻게 되나요?

결과는 소스의 크기, 프레임 레이트, 오디오를 그대로 가진 새 MP4이며, 소스는 그대로 남습니다.

영상 필터와 Sume API 레퍼런스 기준, 2026-09-27 확인.
한도값
소스Sume에 호스팅된 최대 300초 클립 하나, 더 길면 output_duration_exceeded로 실패
그래프 크기최대 2,048자, 이름 있는 필터 32개. 위의 블러 그래프는 필터 네 개를 씀
라벨내부 라벨만 가능, 스트림 지정자는 invalid_filtergraph로 실패
HDR 소스PQ와 HLG는 hdr_source_unsupported로 거부
과금POST /v1/video-filter/check는 무료, 인코딩은 Job당 과금(GET /v1/catalog에서 확인)

출처

관련 글

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

미디어 도구 글 전체 보기

작성자 Sume