시작하기
폼핏 | 가로 영상 하나가 쇼츠·릴스·피드 5종이 됩니다

폼핏 | 가로 영상 하나가 쇼츠·릴스·피드 5종이 됩니다

가로로 찍은 영상 하나를 넣으면 폼핏이 쇼츠·릴스·틱톡(9:16), 인스타 피드(1:1·4:5), 유튜브(16:9)까지 5종 화면비로 한 번에 리프레임합니다. 얼굴을 우선 인식하고 없으면 움직임을 따라가는 자동 추적으로 피사체를 화면 안에 유지하고, 크롭이 정보를 잃을 만한 장면은 블러채움(원본 전체 + 블러 배경)으로 대체합니다. 로고 워터마크·상단/하단 타이틀 바·인트로/아웃트로 카드까지 같은 파이프라인에서 입힙니다. API 키 없이 로컬(uv + ffmpeg)에서 전부 처리합니다.
#비디오#소셜 미디어#생산성
평점
더 많은 평가가 필요합니다
판매
0
사용 방법
다운로드

폼핏 | 가로 영상 하나가 쇼츠·릴스·피드 5종이 됩니다

hero.webp before_after.webp wipe.webp

가로로 찍은 영상 하나 놓고 쇼츠·릴스·인스타 피드에 맞춰 편집기를 다시 켜고
잘라본 적 있다면 안다, 화면비마다 피사체가 화면 밖으로 나가지 않게 크롭
위치를 손으로 맞추는 일이 제일 귀찮다. 로고 워터마크까지 매번 다시 얹으면
같은 영상 하나로 30분이 그냥 간다. 폼핏은 그 반복 작업을 스크립트 세 개로
줄인다. 피사체를 자동으로 따라가며 잘라내고, 로고·타이틀·인트로/아웃트로까지
한 파이프라인에서 입힌다. 실측 기준 8초짜리 원본 하나를 analyze·reframe·brand
세 단계로 처리하는 데 6초가 채 걸리지 않았다.

실존 인물을 사칭하거나 딥페이크·기만 목적으로 쓰는 용도로는 제공하지 않습니다.

파이프라인

  1. analyze: 얼굴 검출(Haar cascade) 우선, 없으면 움직임 기반으로
    전환해 피사체 중심을 추적하고 흔들림을 줄인 뒤 crop_path.json 으로 저장.
  2. reframe: 그 경로를 따라 목표 화면비로 크롭(crop 모드)하거나,
    크롭하면 정보를 잃는 장면은 원본을 그대로 담고 여백을 블러로 채우는
    blur 모드로 대체.
  3. brand: 로고(코너·투명도·여백 지정), 상단/하단 타이틀 바(한글
    지원, Pillow 렌더링), 인트로/아웃트로 카드 이미지를 입혀 최종 출력.

실제 명령

uv run scripts/analyze.py --input in.mp4 --output crop_path.json

uv run scripts/reframe.py --input in.mp4 --crop-path crop_path.json \
    --preset shorts --mode crop --out out/9x16.mp4

uv run scripts/brand.py --input out/9x16.mp4 --out out/9x16_branded.mp4 \
    --logo logo.png --logo-corner br --logo-opacity 0.85 \
    --title "채널 이름" --intro intro.png --outro outro.png

포함 구성

구성 내용
scripts/analyze.py 얼굴/움직임 기반 피사체 추적 → crop_path.json
scripts/reframe.py 4개 플랫폼 프리셋 × crop/blur 2모드 리프레임
scripts/brand.py 로고·타이틀 바·인트로/아웃트로 브랜딩
guides/platforms.md 쇼츠·릴스·틱톡·인스타 피드·유튜브 해상도/fps/길이 기준
guides/recipes.md 배치 처리·문제 해결(FAQ)

프리셋: shorts(9:16, 1080x1920) · feed-square(1:1, 1080x1080) ·
feed-portrait(4:5, 1080x1350) · youtube(16:9, 1920x1080). 전부
H.264 + AAC, +faststart 로 출력.

사용 예시 3개

1) 유튜브 롱폼 → 쇼츠 클립
가로로 찍은 인터뷰/브이로그에서 한 구간을 잘라 쇼츠용으로 세로 변환.
얼굴을 우선 추적하므로 말하는 사람이 화면 중앙에 유지된다.

uv run scripts/analyze.py --input interview.mp4 --output cp.json
uv run scripts/reframe.py --input interview.mp4 --crop-path cp.json \
    --preset shorts --mode crop --out shorts.mp4
uv run scripts/brand.py --input shorts.mp4 --out shorts_final.mp4 \
    --logo logo.png --title "이번 주 하이라이트"

2) 강의/발표 화면 → 인스타 피드 4:5
슬라이드 전체가 중요한 콘텐츠는 크롭하면 글자가 잘린다. blur 모드로
원본 전체를 담고 여백만 블러로 채운다(트래킹 불필요, analyze 생략 가능).

uv run scripts/reframe.py --input lecture.mp4 --preset feed-portrait \
    --mode blur --out feed_4x5.mp4

3) 브랜드 로고 + 인트로/아웃트로 일괄 적용
이미 리프레임된 여러 영상에 같은 로고·인트로 카드를 한 번에 씌워 톤을
맞춘다.

for f in clip1.mp4 clip2.mp4 clip3.mp4; do
  uv run scripts/brand.py --input "$f" --out "branded_$f" \
    --logo logo.png --logo-corner br --intro intro.png --outro outro.png
done

필요한 준비물

과장 없이 딱 이만큼만 있으면 된다.

  • uv, ffmpeg/ffprobe (PATH에 있어야 함). API 키 불필요.
  • 로고를 쓰려면 투명 배경 PNG 권장(불투명 배경도 되지만 워터마크 느낌이
    덜 남).
  • 한글 타이틀을 쓰려면 OS에 한글 폰트가 있어야 한다(macOS/Windows는
    기본 내장, 일부 Linux 최소 설치 환경은 Noto Sans CJK 를 따로 설치하거나
    --font 로 경로를 지정해야 함).
  • 자동 자막·음악 삽입은 포함되지 않는다: 리프레임과 브랜딩까지만 한다.

추천 · 비추천

추천

  • 가로로 찍은 원본 하나로 여러 플랫폼용 세로/정사각 클립을 뽑아야 하는
    경우
  • 인물/제품처럼 화면상 위치가 뚜렷한 피사체가 있는 콘텐츠
  • 같은 로고·인트로를 여러 영상에 반복 적용해야 하는 경우

비추천

  • 화면 전체(다중 인물, 그래프, 자막)가 골고루 중요해서 애초에 크롭 자체가
    부적절한 콘텐츠라면 blur 모드만 쓰게 되어 이 스킬의 트래킹 기능은
    체감이 적다
  • 자동 자막이 필요하다면 이 스킬만으로는 부족하다(별도 STT 스킬 필요)
  • 화면을 1초 이내에 가로지르는 극단적으로 빠른 피사체는 구간 경계에서
    순간적으로 살짝 걸릴 수 있다(--chunk-sec 축소로 완화, 상세는 FAQ)

FAQ

Q1. 실사 인물 얼굴 인식도 실제로 되나?
얼굴 검출은 OpenCV 표준 Haar cascade(정면 얼굴)를 쓴다. 다만 이 카드의
검증 영상은 정책상 실제 인물을 쓸 수 없어 합성 도형으로 테스트했고, 그
경우 얼굴이 없으므로 자동으로 움직임 기반 추적으로 전환되는 경로까지만
실측했다. 얼굴 검출 자체는 검증된 표준 알고리즘이지만 "실사 인물로 직접
검증했다"고는 말하지 않는다, 측면 얼굴, 저조도, 마스크 착용 시 놓칠 수
있고 그럴 때도 움직임 추적으로 자연스럽게 넘어간다.

Q2. 출력 영상 길이가 원본이랑 정확히 똑같나?
crop 모드는 구간을 나눠 인코딩한 뒤 이어붙이는 방식이라 원본과 출력
프레임레이트가 다르면(예: 25fps→30fps) 반올림 오차가 누적된다. 실측
기준 8초 원본에서 약 0.26초(+3.2%) 길어졌다. 음성이 밀리거나 구간 내부가
어긋나는 문제는 아니다.

Q3. crop과 blur 중 뭘 써야 하나?
피사체가 한 곳에 몰려 있으면 crop, 화면 전체 정보가 다 중요하면 blur.
SKILL.md 와 guides/recipes.md 에 판단 기준과 예시를 정리해뒀다.

Q4. drawtext 필터를 안 쓰는 이유는?
Homebrew 기본 ffmpeg 빌드엔 drawtext/subtitles(libass·freetype) 필터가
없는 경우가 흔하다(실측 확인). 그래서 글자·로고는 Pillow 로 투명 PNG를
그려 overlay 필터로 입힌다, 이 스킬을 받는 쪽 환경에서도 별도 ffmpeg
빌드 없이 그대로 동작한다.

Q5. 여러 영상을 한 번에 배치 처리할 수 있나?
스킬 자체에 배치 러너는 없다. 대신 쉘 반복문으로 세 스크립트를 감싸는
레시피를 guides/recipes.md 에 그대로 실어뒀다, 복사해서 쓰면 된다.

구매 안내

다운로드 1회 구매, 압축파일 안의 SKILL.md 안내를 따라 uv 로 바로
실행하면 된다. 실행에 계정 가입이나 API 키가 필요 없다. Capafy에서
'폼핏'으로 검색하면 바로 찾을 수 있다.

bbb_9x16.jpg bbb_1x1.jpg bbb_1x1_blur.webp promo.webp

예시 이미지는 Blender Foundation 의 오픈 무비 Big Buck Bunny(CC BY 3.0, bigbuckbunny.org) 예고편으로 실제로 돌린 결과입니다.