비디오 편집
실제 영상을 위한 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를 사용하여:
- 전사 및 레이블링: 대본 생성, 주제 및 테마 식별
- 구조 계획: 무엇을 남기고, 무엇을 자르고, 어떤 순서가 작동할지 결정
- 죽은 구간 식별: 일시 정지, 지엽적인 이야기, 반복 테이크 찾기
- 편집 결정 목록 생성: 컷을 위한 타임스탬프, 유지할 세그먼트
- 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
# cuts.txt: start,end,label
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(0,0,0,0.8)",
}}>
AI 편집 스택
</h1>
</AbsoluteFill>
</Sequence>
{/* 다음 세그먼트 */}
<Sequence from={300} durationInFrames={450}>
<Video src="/segments/demo.mp4" />
</Sequence>
</AbsoluteFill>
);
};
출력 렌더링
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로 생성된 비주얼
존재하지 않는 삽입 장면, 썸네일 또는 비롤에 사용:
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로 리프레이밍
# 16:9를 9:16으로 (중앙 크롭)
ffmpeg -i input.mp4 -vf "crop=ih*9/16:ih,scale=1080:1920" vertical.mp4
# 16:9를 1:1로 (중앙 크롭)
ffmpeg -i input.mp4 -vf "crop=ih:ih,scale=1080:1080" square.mp4
VideoDB로 리프레이밍
from videodb import ReframeMode
# 스마트 리프레임 (AI 안내 객체 추적)
reframed = video.reframe(start=0, end=60, target="vertical", mode=ReframeMode.smart)
장면 감지 및 자동 컷
FFmpeg 장면 감지
# 장면 변경 감지 (임계값 0.3 = 중간 감도)
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— 플랫폼별 콘텐츠 배포