용짤러 | 영상 한 구간이 카톡·디스코드 용량에 맞는 움짤이 됩니다

용짤러 | 영상 한 구간이 카톡·디스코드 용량에 맞는 움짤이 됩니다

영상에서 원하는 구간을 지정하면 고화질 GIF(팔레트 최적화)·애니메이션 WebP·무음 mp4 루프 세 가지를 한 번에 만들어 드립니다. 카카오톡·디스코드·슬랙 같은 목표 용량을 지정하면 fps·해상도·색상 수를 자동으로 낮춰가며 그 용량 이하가 되는 가장 좋은 화질을 찾습니다. 한글 밈 캡션(상단/하단), 부메랑(정방향+역방향), 배속 조절, 정사각/세로 크롭도 같은 파이프라인에서 적용됩니다. API 키 없이 로컬(uv + ffmpeg)에서 전부 처리합니다.
#الفيديو#وسائل التواصل الاجتماعي
التقييم
مطلوب المزيد من التقييمات
المبيعات
0
كيفية الاستخدام
تنزيل

용짤러 | 영상 한 구간이 카톡·디스코드 용량에 맞는 움짤이 됩니다

hero.webp before_after.webp wipe.webp

간단한 설명

영상에서 원하는 구간을 지정하면 고화질 GIF(팔레트 최적화)·애니메이션
WebP·무음 mp4 루프 세 가지를 한 번에 만들어 드립니다. 카카오톡·디스코드·슬랙
같은 목표 용량을 지정하면 fps·해상도·색상 수를 자동으로 낮춰가며 그 용량
이하가 되는 가장 좋은 화질을 찾습니다. 한글 밈 캡션(상단/하단), 부메랑(정방향
+역방향), 배속 조절, 정사각/세로 크롭도 같은 파이프라인에서 적용됩니다. API
키 없이 로컬(uv + ffmpeg)에서 전부 처리합니다.

카테고리

비디오 / 소셜 미디어

태그

GIF변환, 애니메이션WebP, 밈캡션, 부메랑, 용량맞춤

가격 제안

USD $5 (1회 다운로드)

상세 설명

GIF를 만들어서 단톡방에 보냈는데 "파일이 너무 큽니다"라는 메시지만 돌아온
경험이 있으실 겁니다. 색상 수를 줄이고, 해상도를 낮추고, 프레임을 몇 개
덜어내고, 다시 인코딩하고, 용량을 확인하고, 또 안 맞으면 처음부터 반복합니다.
용짤러는 이 시행착오를 스크립트 두 개로 줄입니다. 구간을 자르는 동안 캡션·
크롭·부메랑까지 한 번에 입히고, 목표 용량을 정하면 나머지(fps·폭·색상 수 또는
품질)는 알아서 맞춰 드립니다.

파이프라인

clip.py  →  pack.py
트림·배속·크롭·부메랑·캡션     GIF/WebP/mp4 목표 용량 자동 탐색

clip.py 산출물은 오디오가 없는 짧은 mp4입니다. pack.py 는 이 mp4를 받아
포맷별 "품질 사다리"를 고화질 순서로 내려가며 목표 용량 이하가 되는 첫
조합을 채택합니다. 끝까지 못 맞추면 가장 낮은 품질을 그대로 쓰고 리포트에
미달성이라고 표시합니다.

실제 명령

uv run scripts/clip.py --input in.mp4 --start 3.5 --end 7.5 \
    --crop square --caption-top "이거 실화냐" --out out/clip.mp4

uv run scripts/pack.py --input out/clip.mp4 --out-dir out --basename result \
    --formats gif,webp,mp4 --preset discord

아래는 실제 샘플 클립(720x720, 2.75초)으로 목표 용량을 500KB와 카카오톡
프리셋(3072KB)으로 바꿔가며 돌린 결과입니다. 두 목표 모두 GIF·WebP·mp4 세
포맷 전부 목표 용량 미만으로 나왔습니다.

목표 500KB   -> GIF 415.6KB · WebP 428.8KB · mp4 375.3KB (전부 충족)
목표 3072KB  -> GIF 2400.1KB · WebP 706.6KB · mp4 375.3KB (전부 충족)

포함 구성

구성 내용
scripts/clip.py 트림·배속·크롭(정사각/세로)·부메랑·한글 캡션 처리
scripts/pack.py GIF(palettegen/paletteuse)·WebP(Pillow 조립)·mp4 루프를 목표 용량에 맞춰 자동 인코딩
guides/recipes.md 레시피 5종 + dither·용량 문제 해결 FAQ
guides/size-targets.md 플랫폼별 목표 용량 프리셋의 근거와 한계

사용 예시 3개

1) 유튜브 하이라이트 → 카카오톡용 GIF

몇 초짜리 하이라이트만 잘라서 대화방에 보내고 싶을 때 씁니다. 카카오톡
프리셋으로 용량을 자동으로 맞춥니다.

uv run scripts/clip.py --input clip.mp4 --start 12.0 --end 15.0 --out out/c.mp4
uv run scripts/pack.py --input out/c.mp4 --out-dir out --basename kakao_gif \
    --formats gif --preset kakao

2) 세로 영상 + 부메랑 + 캡션으로 밈 만들기

세로(9:16)로 크롭하고 정방향+역방향을 이어붙인 뒤 하단에 문구를 얹습니다.

uv run scripts/clip.py --input clip.mp4 --start 0.5 --duration 2.0 \
    --crop vertical --caption-bottom "세로 크롭 테스트" --out out/c.mp4
uv run scripts/pack.py --input out/c.mp4 --out-dir out --basename vertical \
    --formats gif,webp --preset kakao

3) 디스코드용 애니메이션 WebP

같은 GIF 화질을 WebP로 뽑으면 대체로 더 작습니다. 디스코드 프리셋(10MB)
기준으로 실측했습니다.

uv run scripts/clip.py --input clip.mp4 --start 1 --duration 2 \
    --crop square --caption-top "구매자 테스트" --boomerang --out out/c.mp4
uv run scripts/pack.py --input out/c.mp4 --out-dir out --basename discord \
    --formats webp --preset discord

필요한 준비물

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

  • uv, ffmpeg/ffprobe (PATH에 있어야 함). API 키 불필요합니다.
  • 한글 캡션을 쓰려면 OS에 한글 폰트가 있어야 합니다(macOS/Windows는 기본
    내장, 일부 Linux 최소 설치 환경은 Noto Sans CJK 를 따로 설치하거나
    --font 로 경로를 지정해야 함).
  • 자동 자막이나 장면 추천 같은 기능은 포함되지 않습니다: 구간은 직접
    지정합니다.
  • 실존 인물이 나오는 영상을 다룰 때는 해당 인물의 동의를 받은 콘텐츠에만
    사용하시기 바랍니다. 이 스킬은 자막·크롭·재인코딩만 할 뿐 얼굴이나 목소리를
    새로 만들지 않습니다.

추천 · 비추천

추천

  • 이미 촬영해 둔 영상에서 몇 초짜리 구간을 골라 GIF/WebP로 자주 뽑아야 하는
    경우
  • 카카오톡·디스코드처럼 업로드 용량 제한이 있는 곳에 자주 보내는 경우
  • 한글 밈 캡션이나 부메랑처럼 반복 효과를 손으로 매번 만들기 귀찮은 경우

비추천

  • 매우 짧은 목표 용량(예: 3초 클립을 200KB로)을 GIF로 맞춰야 한다면 색상·
    해상도 손실이 눈에 띄게 커질 수 있습니다. 이런 경우 mp4 루프나 WebP가
    대체로 더 유리합니다(실측: E2E.md 3-1 항목)
  • 자동 하이라이트 추천이나 장면 감지가 필요하다면 이 스킬만으로는 부족합니다
    , 구간은 사람이 직접 지정해야 합니다
  • 여러 클립을 한 번에 처리하는 배치 기능은 스킬 자체에 없습니다(쉘 반복문
    레시피는 guides/recipes.md 에 있습니다)

FAQ

Q1. 목표 용량을 어떻게 정확히 맞추나요?
정해둔 화질 조합(폭·fps·색상 수 또는 품질) 목록을 고화질 순서로 내려가며
목표 용량 이하가 되는 첫 조합을 씁니다. 연속적인 최적화가 아니라 이산적인
탐색이라 목표보다 조금 더 작게 나올 수 있습니다. 끝까지 못 맞추면 가장 낮은
품질을 그대로 쓰고 리포트(*_pack_report.json)에 미달성이라고 표시합니다,
숨기지 않습니다.

Q2. 애니메이션 WebP는 왜 ffmpeg 대신 Pillow로 만드나요?
실측해보니 이 스킬이 검증한 환경(Homebrew 기본 ffmpeg 9.x)에는 webp
인코더가 아예 없었습니다(ffmpeg -h encoder=libwebp → "not recognized").
같은 상황일 구매자 환경에서도 동작하도록, ffmpeg로 프레임만 뽑고 Pillow로
애니메이션 WebP를 직접 조립하는 방식을 택했습니다.

Q3. 카카오톡·디스코드 용량 기준이 정확한가요?
아닙니다. 알려진 일반적인 기준을 참고한 근사치이고, 스킬이 실시간으로
확인한 값이 아닙니다. 플랫폼 정책은 바뀝니다. 정확한 한도를 알고 있다면
--target-kb 로 직접 지정하시는 편이 안전합니다(근거는
guides/size-targets.md).

Q4. 자막처럼 시간대별로 다른 캡션을 넣을 수 있나요?
아니요. 캡션은 구간 전체에 고정으로 한 번만 얹힙니다. 시간대별 캡션이
필요하면 여러 구간으로 나눠 각각 clip.py 를 실행해야 합니다.

Q5. drawtext 필터를 안 쓰는 이유는?
Homebrew 기본 ffmpeg 빌드엔 drawtext/subtitles(libass·freetype) 필터가 없는
경우가 흔합니다(실측 확인). 그래서 글자는 Pillow로 투명 PNG를 그린 뒤
overlay 필터로 입힙니다. 구매자 환경에서도 별도 ffmpeg 빌드 없이 그대로
동작합니다.

구매 안내

다운로드 1회 구매이며, 압축파일 안의 SKILL.md 안내를 따라 uv 로 바로
실행하시면 됩니다. 실행에 계정 가입이나 API 키가 필요하지 않습니다.

bbb_meme.jpg promo.webp

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