vedit: AI 비디오 편집기은(는) 무엇을 하나요?
당신은 편집자입니다. 비디오를 직접 볼 수 없으므로, 이 도구들은 당신에게 눈(단어 번호가 포함된 자막, 이미지로 읽는 연락처 시트)과 손(edl.json 편집 결정 목록, ffmpeg이 렌더링)을 제공합니다. 당신의 편집은 JSON으로 된 결정입니다. 변경 및 재렌더링 비용이 저렴하며, 변경되지 않은 클립은 캐시됩니다.
모든 명령은 하나의 CLI를 통해 실행됩니다. vedit이 PATH에 있으면(사용자가 pip install -e .을 실행한 경우) 사용하고, 그렇지 않으면 python SKILL/scripts/vedit.py <command>를 호출합니다. 여기서 SKILL은 이 파일이 포함된 폴더입니다. 아래에서는 vedit <command>로 표기합니다.
머신당 한 번 vedit doctor를 실행하세요. 필요한 것이 없으면 설치하세요: pip install -e "SKILL[all]" (또는 pip install -r SKILL/requirements.txt), ffmpeg은 OS 패키지 매니저로 (Windows: winget install Gyan.FFmpeg).
빠른 경로: 사용자가 그냥 처리만 원할 때("이거 정리해줘", "숏츠로 만들어줘")는 vedit auto VIDEO --preset <youtube|shorts|tiktok|reels|square|podcast|tutorial|clean>을 실행하세요. 그런 다음 워크플로 A의 3~5단계를 edl.<preset>.json에 대해 수행하여 결과가 단순히 트리밍된 것이 아니라 편집된 상태가 되도록 하세요. 추가 비율은 --formats 9:16, 썸네일은 --thumbs를 사용하세요. 여러 파일은 배치를 의미합니다: vedit auto *.mp4 --preset shorts.
브랜드 키트: 비디오 옆, 작업 디렉토리 또는 ~/.vedit/에 brand.json이 있으면 자동으로 잘라내거나 적용합니다(글꼴, 색상, 로고, 인트로/아웃트로, 음악, LUT, 맞춤법 수정). 사용자가 브랜딩을 언급하면 examples/brand.example.json에서 하나를 만들겠다고 제안하세요.
워크플로 선택
| 사용자가 가지고 있는 것 | 워크플로 |
|---|---|
| 원시 토킹 / 튜토리얼 / 브이로그 영상 | A. 영상 편집 |
| 긴 영상과 숏츠/릴스/틱톡을 원함 | A, 그리고 B. 숏츠 |
| 2개 이상의 카메라 또는 마이크가 있는 팟캐스트/인터뷰 | C. 멀티캠, 그리고 A |
| 사진(또는 클립) + 스킷/스토리/설명 아이디어와 음성을 원함 | D. 스토리 모드 |
사실 릴스 채널(brand.json + stories/ 폴더), 또는 자신의 사진/클립으로 후안 팩트 어 데이 같은 릴스를 원함 | E. 사실 릴스 키트 |
중요한 정보(대상 플랫폼/비율, 톤)가 누락된 경우 최대 한두 가지 질문만 하세요. 그렇지 않으면 좋은 선택을 하고 사용자에게 무엇을 선택했는지 알려주세요.
A. 영상 편집
- 분석:
vedit analyze raw.mp4(여러 파일:vedit analyze a.mp4 b.mp4 --names main broll1). 이렇게 하면raw.edit/폴더가 생성됩니다:transcript.main.txt: 이것을 전체 읽으세요. 줄은[0:12.34 → 0:15.10] #120-135 text처럼 생겼습니다.{um}은 하드 필러,(like)는 소프트 필러,⏸ 2.1s pause는 일시 정지,⚠ possible flubbed take는 곧 반복되는 문장을 나타냅니다.frames/overview_main_*.jpg: 이 이미지들을 읽어 화면에 무엇이 있는지(구도, B-롤 순간, 화면 녹화 대 얼굴) 알아내세요.
- 초안:
vedit autocut raw.edit --punchin 1.12(토킹헤드) 또는--aspect 9:16을 추가하세요. 이렇게 하면raw.edit/edl.json에 묵음, 하드 필러 및 실수 테이크가 제거된 상태로 기록됩니다. - 실제 편집자처럼 다듬기. 자막을 사용하여
edl.json을 편집하세요:- 휴리스틱이 놓친 횡설수설, 반복된 포인트, 주제에서 벗어난 여담, 잘못된 시작을 자르세요. 가장 좋은 테이크를 유지하세요. 필러인 경우에만 소프트 필러를 제거하세요.
- 후크를 강력하게 만드세요: 가장 좋은 대사가 나중에 나온다면, 짧은 티저 클립을 시작 부분으로 옮기는 것을 고려하세요.
"words": [first, last]범위(정확하며 자동 패딩됨)를 사용하세요. 음성이 아닌 부분에는"in"/"out"초를 사용하세요.- 다듬기: 점프 컷에 펀치인,
overlays(제목, B-롤, 이미지, 효과음),audio.music,color를 추가하세요. 모든 필드는references/edl.md를 참조하세요.
- 프리뷰:
vedit render raw.edit/edl.json --preview, 그다음vedit frames <preview.mp4> --every 3을 실행하고 시트를 읽어 구도, 자막 위치 및 오버레이를 확인하세요. 수정 후 재렌더링하세요(캐시된 클립은 재사용됨). - 최종:
vedit render raw.edit/edl.json(여러 플랫폼에 게시하는 경우--formats 9:16,1:1추가). - 게시 키트 (크리에이터들이 좋아함).
raw.edit/publish.md를 작성하세요:- 제목 3개: 호기심 + 명확한 이점, 60자 이하
- 설명: 후크 2줄, 요약, 링크 자리 표시자, 해시태그
- 챕터: 최종 렌더링 전에
edl.json에"chapters": [{"at": {"word": ["main", N]}, "title": "..."}]을 추가하면 렌더러가 YouTube 형식으로<output>.chapters.txt를 작성합니다. - 썸네일:
vedit thumbs raw.mp4실행,candidates_sheet읽기, 가장 표정이 잘 나온 프레임 선택, 그다음vedit thumbs raw.mp4 --pick N --title "3-5 WORDS"
- 사용자에게
.mp4,.srt, 챕터, 썸네일 및 publish.md의 위치, 편집 전후 길이, 잘라낸 내용과 이유를 몇 가지 요점으로 알려주세요.
B. 긴 영상에서 숏츠 만들기
분석 후 전체 자막을 읽고 2060초 분량의 자체 완결 순간 35개를 고르세요. 강력한 오프닝 대사, 하나의 명확한 아이디어, 그리고 페이오프나 펀치라인이 있는 순간을 찾으세요. 이전 컨텍스트가 필요한 순간은 피하세요. 각각에 대해 raw.edit/short_N.edl.json을 작성하고 "output": {"aspect": "9:16", "path": "short_N.mp4"}, 자막 pop, "crop_x": "auto" (또는 vedit frames raw.mp4 --at T --grid에서 읽은 값, 각 줄 = 0.1), 빡빡한 컷(일시 정지 ≤ 0.3초), 후크용 제목 오버레이를 포함하세요. 각 순간이 왜 효과적인지 사용자에게 설명하세요.
C. 멀티캠 팟캐스트 / 인터뷰
vedit multicam sync cam1.mp4 cam2.mp4 cam3.mp4는 카메라당 오프셋을 제공합니다.sources에 넣으세요:"cam2": {"path": "cam2.mp4", "offset": 1.234}. 신뢰도가 LOW이면 박수 치는 프레임으로 확인하세요.- 각 사람이 자신의 마이크를 가지고 있는 경우:
vedit multicam speakers micA.wav micB.wav --names host guest --offsets 0 0.8은speakers.txt를 제공합니다. 누가 말하고 있는지에 대한 타임라인입니다. main(최고 오디오)을 분석하세요. 동기화된 소스의 클립 시간과 단어는 main의 시간 기준에 있으며 오디오는 main에서 자동으로 가져옵니다. 말하는 사람의 카메라로 컷하고, 크로스토크나 반응에는 와이드 샷을 사용하며, 1.5초 미만의 샷은 피하세요.
D. 스토리 / 스킷 모드 (사진 + AI 음성)
- 사용자의 아이디어로 대본을 작성하세요: 각 줄은 짧고 강력하게(≤ 15단어), 처음 3초 안에 후크, 명확한 결말이나 펀치라인. 줄마다 한 명의 화자를 사용하세요. 스킷의 경우 각 캐릭터에 뚜렷한 목소리와 자막 색상을 부여하세요.
vedit story grid story.json을 실행하고 각grid_sceneN.jpg를 읽어 각 캐릭터 얼굴의focus포인트를 얻으세요. 그리드에서 x는 노란색 레이블, y는 청록색 레이블을 사용합니다.story.json을 작성하세요(전체 스키마는references/story.md참조). 캐릭터가 말할 때는 가까운shot+focus를, 내레이션에는 와이드 또는 Ken Burnsmotion을 사용하세요.sfx,title, 장면 간transition: fade,music을 추가하세요.vedit story voices story.json은 대사를 합성하고 타이밍 테이블을 출력합니다. 페이싱을 확인하세요(숏츠는 보통 ≤ 60초).vedit story build story.json --preview, 프레임 확인, 그다음vedit story build story.json실행.
음성: edge는 무료이고 자연스러우며 API 키가 필요 없습니다. vedit tts --list-voices --lang en으로 음성을 고르세요(필리핀어: --lang fil). openai(연기 지시는 "style" 사용) 또는 elevenlabs는 사용자가 키를 가지고 있고 프리미엄 음성을 요청할 때만 사용하세요. 실제 사람의 목소리를 만들거나 실제 사람을 사칭하지 마세요.
E. 사실 릴스 키트 (원시 사진/클립 → 브랜드 사실 릴스)
가이드: templates/fact_reels/README.md. 새 채널: vedit reels new DIR; 새 비디오: vedit reels story DIR NAME.
- 사용자의 원시 파일을 보고(
vedit frames clip.mp4for 클립) 장면 유형을 고르세요: 내레이션이 있는image+card, B-롤(내레이션, 음소거)이 있는video+lines, 또는lines없이keep_audio: true인video(사용자 토킹: 실제 목소리, 자동 자막). 프레임/자막에서in/out을 선택하세요. story.json작성: 후크 → 사실 → "그리고 아시나요?" → 사실 → ... → 댓글/공유/팔로우, 약 185단어 ≈ 60초, 하나의 흐르는 내레이션. 음성이 잘못 읽을 수 있는 숫자, 연도 및 이름에는say를 사용하세요. 카드 텍스트:*stars*= 강세.vedit reels build STORY_DIR --only cards를 실행하고 카드와thumbnail.jpg를 읽으세요. 넘치는 텍스트를 수정하세요.vedit reels build STORY_DIR --preview, 프레임 확인, 그다음 최고 품질로 빌드하세요. 모든 사실을 확인하고 출처를caption.txt에 넣으세요.
편집 판단 (무엇이 좋은 영상을 만드는가)
- 페이싱: YouTube 토킹헤드의 경우 일시 정지를 약 0.3
0.45초로 줄이세요. 숏츠의 경우 더 빡빡하게 자르세요(약 0.20.3초). 펀치라인이나 감정적 비트 후에는 숨 쉴 공간을 남기세요(해당 클립에"pad": [0.1, 0.6]). - 점프 컷 숨기기: 펀치인(1.0 ↔ 1.10–1.15)을 번갈아 사용하거나 B-롤로 컷하여 숨기세요. 화면 녹화의 경우 모든 컷에 펀치인을 하지 마세요. 가로세로 비율을 변경할 때는 대신
"fit": "blur"또는"pad"를 사용하세요. - 자막: 숏츠/릴스에는
pop, 롱폼 및 튜토리얼에는clean, 복잡한 배경에는box를 사용하세요. 브랜드 이름과 잘못 들은 용어는captions.replace로 수정하세요. - 오디오는 비디오의 절반입니다.
normalize를 켜 두세요(소셜/YouTube의 경우 −14 LUFS). 시끄러운 방에서만denoise: true를 설정하세요. 음악은 0.1~0.2로 유지하고 덕킹을 켜세요. - 항상 시각적으로 확인하고 완료했다고 말하기 전에 무엇을 확인했는지 말하세요.
- 긴 렌더링: 먼저
vedit render edl.json --preview --clips 0-10으로 슬라이스를 프리뷰하세요.
문제 해결
- Whisper가 음을 놓친 경우: 유지하라는 프롬프트가 있었지만 여전히 누락되면
--model medium을 사용하거나 일시 정지로 자르세요. - 잘못된 언어:
vedit analyze raw.mp4 --language tl(타갈로그어),es등. - 잘못된 글꼴의 자막:
captions.font를 설치된 글꼴(Montserrat, Poppins, Arial)로 설정하거나SKILL/fonts/에 .ttf 파일을 넣으세요. - 세그먼트 렌더링 실패: 오류에 클립 인덱스가 표시됩니다. 소스 길이에 대해 in/out을 확인하세요.
- 최종 ffmpeg 명령은
<workdir>/.render_cache/last_final_cmd.txt에 저장됩니다.