| name | video-editing |
| description | 원시 영상을 자르고, 구조화하고, 보강하기 위한 AI 보조 비디오 편집 워크플로입니다. 원시 캡처부터 FFmpeg, Remotion, ElevenLabs, fal.ai를 거쳐 Descript나 CapCut에서의 최종 마무리까지의 전체 파이프라인을 다룹니다. 사용자가 비디오를 편집하거나, 영상을 자르거나, 브이로그를 만들거나, 비디오 콘텐츠를 제작하고 싶을 때 사용합니다. |
| origin | ECC |
비디오 편집 (Video Editing)
실제 영상을 위한 AI 보조 편집입니다. 프롬프트로부터의 생성이 아닙니다. 기존 비디오를 빠르게 편집하는 데 중점을 둡니다.
활성화 시점
- 사용자가 비디오 영상을 편집, 편집 또는 구조화하기를 원할 때
- 긴 녹화본을 숏폼 콘텐츠로 바꿀 때
- 원시 캡처에서 브이로그, 튜토리얼 또는 데모 비디오를 만들 때
- 기존 비디오에 오버레이, 자막, 음악 또는 음성 해설을 추가할 때
- 다양한 플랫폼(YouTube, TikTok, Instagram)에 맞게 비디오를 리프레임할 때
- 사용자가 "비디오 편집", "이 영상 잘라줘", "브이로그 만들어줘" 또는 "비디오 워크플로"라고 말할 때
핵심 논지
AI 비디오 편집은 전체 비디오를 만들라고 요청하는 것을 멈추고, 실제 영상을 압축, 구조화 및 보강하는 데 사용하기 시작할 때 유용합니다. 가치는 생성이 아니라 압축에 있습니다.
파이프라인
Screen Studio / 원시 영상
→ Claude / Codex
→ FFmpeg
→ Remotion
→ ElevenLabs / fal.ai
→ Descript 또는 CapCut
각 레이어는 특정 역할을 수행합니다. 레이어를 건너뛰지 마세요. 하나의 도구가 모든 것을 하도록 만들려고 하지 마세요.
레이어 1: 캡처 (Screen Studio / 원시 영상)
소스 자료 수집:
- Screen Studio: 앱 데모, 코딩 세션, 브라우저 워크플로를 위한 세련된 화면 녹화
- 원시 카메라 영상: 브이로그 영상, 인터뷰, 이벤트 녹화
- VideoDB를 통한 데스크톱 캡처: 실시간 컨텍스트가 포함된 세션 녹화(
videodb 스킬 참조)
출력: 정리를 위한 준비가 된 원시 파일.
레이어 2: 정리 (Claude / Codex)
Claude Code 또는 Codex를 사용하여 다음을 수행합니다.
- 전사 및 레이블링: 트랜스크립트 생성, 주제 및 테마 식별
- 구조 계획: 무엇을 남기고 무엇을 자를지, 어떤 순서가 좋을지 결정
- 불필요한 섹션 식별: 일시 중지, 빗나간 이야기, 반복된 테이크 찾기
- 편집 결정 목록(EDL) 생성: 컷을 위한 타임스탬프, 유지할 세그먼트
- FFmpeg 및 Remotion 코드 스캐폴딩: 명령 및 구성 생성
프롬프트 예시:
"여기에 4시간 분량의 녹화 트랜스크립트가 있습니다. 24분 분량의 브이로그를 위한
가장 강력한 8개 세그먼트를 식별해 주세요. 각 세그먼트에 대한 FFmpeg 컷 명령을 알려주세요."
이 레이어는 최종적인 창의적 취향이 아니라 구조에 관한 것입니다.
레이어 3: 결정론적 컷 (FFmpeg)
FFmpeg는 지루하지만 중요한 작업인 분할, 트리밍, 결합 및 전처리를 처리합니다.
타임스탬프로 세그먼트 추출
ffmpeg -i raw.mp4 -ss 00:12:30 -to 00:15:45 -c copy segment_01.mp4
편집 결정 목록에서 일괄 컷
#!/bin/bash
while IFS=, read -r start end label; do
ffmpeg -i raw.mp4 -ss "$start" -to "$end" -c copy "segments/${label}.mp4"
done < cuts.txt
세그먼트 결합
for f in segments/*.mp4; do echo "file '$f'"; done > concat.txt
ffmpeg -f concat -safe 0 -i concat.txt -c copy assembled.mp4
빠른 편집을 위한 프록시 생성
ffmpeg -i raw.mp4 -vf "scale=960:-2" -c:v libx264 -preset ultrafast -crf 28 proxy.mp4
전사를 위한 오디오 추출
ffmpeg -i raw.mp4 -vn -acodec pcm_s16le -ar 16000 audio.wav
오디오 레벨 정규화
ffmpeg -i segment.mp4 -af loudnorm=I=-16:TP=-1.5:LRA=11 -c:v copy normalized.mp4
레이어 4: 프로그래밍 가능한 구성 (Remotion)
Remotion은 편집 문제를 조합 가능한 코드로 바꿉니다. 전통적인 에디터에서 고통스러운 작업에 사용하세요.
Remotion 사용 시점
- 오버레이: 텍스트, 이미지, 브랜딩, 하단 자막
- 데이터 시각화: 차트, 통계, 애니메이션 숫자
- 모션 그래픽: 전환, 설명 애니메이션
- 조합 가능한 장면: 비디오 전반에 걸쳐 재사용 가능한 템플릿
- 제품 데모: 주석이 달린 스크린샷, UI 하이라이트
기본 Remotion 구성
import { AbsoluteFill, Sequence, Video, useCurrentFrame } from "remotion";
export const VlogComposition: React.FC = () => {
const frame = useCurrentFrame();
return (
<AbsoluteFill>
{/* 메인 영상 */}
<Sequence from={0} durationInFrames={300}>
<Video src="/segments/intro.mp4" />
</Sequence>
{/* 타이틀 오버레이 */}
<Sequence from={30} durationInFrames={90}>
<AbsoluteFill style={{
justifyContent: "center",
alignItems: "center",
}}>
<h1 style={{
fontSize: 72,
color: "white",
textShadow: "2px 2px 8px rgba(,,,)",
}}>
AI 편집 스택
{/* 다음 세그먼트 */}
);
};
출력 렌더링
npx remotion render src/index.ts VlogComposition output.mp4
자세한 패턴 및 API 참조는 Remotion 문서를 확인하세요.
레이어 5: 생성된 자산 (ElevenLabs / fal.ai)
필요한 것만 생성하세요. 전체 비디오를 생성하지 마세요.
ElevenLabs로 음성 해설 생성
import os
import requests
resp = requests.post(
f"https://api.elevenlabs.io/v1/text-to-speech/{voice_id}",
headers={
"xi-api-key": os.environ["ELEVENLABS_API_KEY"],
"Content-Type": "application/json"
},
json={
"text": "여기에 나레이션 텍스트 입력",
"model_id": "eleven_turbo_v2_5",
"voice_settings": {"stability": 0.5, "similarity_boost": 0.75}
}
)
with open("voiceover.mp3", "wb") as f:
f.write(resp.content)
fal.ai로 음악 및 SFX 생성
다음에 fal-ai-media 스킬을 사용하세요:
- 배경 음악 생성
- 사운드 효과 (비디오-투-오디오를 위한 ThinkSound 모델)
- 전환 사운드
fal.ai로 시각적 자산 생성
존재하지 않는 인서트 샷, 썸네일 또는 B-roll에 사용하세요:
generate(app_id: "fal-ai/nano-banana-pro", input_data: {
"prompt": "기술 브이로그를 위한 전문적인 썸네일, 어두운 배경, 화면의 코드",
"image_size": "landscape_16_9"
})
VideoDB 생성형 오디오
VideoDB가 설정된 경우:
voiceover = coll.generate_voice(text="나레이션 내용", voice="alloy")
music = coll.generate_music(prompt="코딩 브이로그를 위한 로우파이 배경음악", duration=120)
sfx = coll.generate_sound_effect(prompt="은은한 휘익 하는 전환음")
레이어 6: 최종 마무리 (Descript / CapCut)
마지막 레이어는 사람입니다. 다음을 위해 전통적인 에디터를 사용하세요:
- 페이스 조절: 너무 빠르거나 느리게 느껴지는 컷 조정
- 캡션: 자동 생성 후 수동으로 정리
- 색 보정: 기본적인 보정 및 분위기 설정
- 최종 오디오 믹스: 음성, 음악 및 SFX 레벨 균형 맞추기
- 내보내기: 플랫폼별 형식 및 품질 설정
여기에 취향이 담깁니다. AI는 반복적인 작업을 제거합니다. 최종 결정은 여러분이 내립니다.
소셜 미디어 리프레임
플랫폼마다 다른 가로세로비가 필요합니다:
| 플랫폼 | 가로세로비 | 해상도 |
|---|
| YouTube | 16:9 | 1920x1080 |
| TikTok / Reels | 9:16 | 1080x1920 |
| Instagram Feed | 1:1 | 1080x1080 |
| X / Twitter | 16:9 또는 1:1 | 1280x720 또는 720x720 |
FFmpeg로 리프레임
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" vertical.mp4
ffmpeg -i input.mp4 -vf "crop=ih:ih,scale=1080:1080" square.mp4
VideoDB로 리프레임
from videodb import ReframeMode
reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)
장면 감지 및 자동 컷
FFmpeg 장면 감지
ffmpeg -i input.mp4 -vf "select='gt(scene,0.3)',showinfo" -vsync vfr -f null - 2>&1 | grep showinfo
자동 컷을 위한 무음 감지
ffmpeg -i input.mp4 -af silencedetect=noise=-30dB:d=2 -f null - 2>&1 | grep silence
하이라이트 추출
Claude를 사용하여 트랜스크립트 + 장면 타임스탬프 분석:
"타임스탬프가 포함된 이 트랜스크립트와 이 장면 전환 지점들이 주어졌을 때,
소셜 미디어를 위한 가장 매력적인 30초짜리 클립 5개를 식별해 주세요."
각 도구의 장점
| 도구 | 강점 | 약점 |
|---|
| Claude / Codex | 정리, 계획, 코드 생성 | 창의적인 취향 레이어는 아님 |
| FFmpeg | 결정론적 컷, 일괄 처리, 형식 변환 | 시각적 편집 UI 없음 |
| Remotion | 프로그래밍 가능한 오버레이, 조합 가능한 장면, 재사용 가능한 템플릿 | 비개발자에게는 학습 곡선이 있음 |
| Screen Studio | 즉시 완성되는 세련된 화면 녹화 | 화면 캡처만 가능 |
| ElevenLabs | 음성, 나레이션, 음악, SFX | 워크플로의 중심은 아님 |
| Descript / CapCut | 최종 페이스 조절, 캡션, 마무리 | 수동 작업, 자동화 불가 |
핵심 원칙
- 편집하세요, 생성하지 마세요. 이 워크플로는 프롬프트에서 만드는 것이 아니라 실제 영상을 자르는 데 목적이 있습니다.
- 스타일보다 구조. 시각적인 것을 건드리기 전에 레이어 2에서 이야기를 제대로 만드세요.
- FFmpeg은 중추입니다. 지루하지만 중요합니다. 긴 영상이 관리 가능해지는 곳입니다.
- 반복성을 위한 Remotion. 두 번 이상 할 작업이라면 Remotion 컴포넌트로 만드세요.
- 선택적으로 생성하세요. AI 생성은 존재하지 않는 자산에만 사용하고, 모든 것에 사용하지 마세요.
- 취향은 마지막 레이어입니다. AI는 반복적인 작업을 제거합니다. 최종적인 창의적 결정은 여러분이 내립니다.
관련 스킬
fal-ai-media — AI 이미지, 비디오 및 오디오 생성
videodb — 서버 측 비디오 처리, 인덱싱 및 스트리밍
content-engine — 플랫폼 네이티브 콘텐츠 배포