Communitygithub.com

vstoos/vlog-film

원본 여행/차량 브이로그 영상(HLG 10비트 HDR)을 완성된 유튜브 영화로 편집합니다. 티저, 음성 점프컷, 음악 삽입, 자막, 경로 지도, 번호판 블러, 음성 레벨링, 챕터, 썸네일, 다국어 자막 및 사용자 목소리 더빙 트랙을 제공합니다.

vlog-film란 무엇인가요?

이 스킬은 사용자가 촬영한 원본 여행/차량 브이로그 영상(HLG 10비트 HDR)을 완성된 유튜브 영화로 편집하는 자동화 파이프라인입니다. 티저, 음성 점프컷, 음악 아래 도로 장면 삽입, 자막, 경로 지도, 번호판 블러, 음성 레벨링, 챕터, 썸네일, 다국어 자막 및 사용자 목소리 클론 더빙 오디오 트랙을 제공합니다. 이 파이프라인은 'Yaris farewell'(24분, 우크라이나어 음성, iPhone + Sony 대시캠) 영화를 기반으로 구축되었으며, 완성된 편집의 최고 가이드는 `references/example_yaris.py` 프로젝트 파일입니다. 지원 플랫폼은 Claude Code, Cursor, Codex와 같은 AI 에이전트 도구이며, WhisperX 음성 인식, FFmpeg/melt 비디오 편집, Higgs TTS 3 음성 합성 등을 사용합니다. 사용자는 영상 파일 폴더를 제공하면 스킬이 자동으로 분석, 편집, 렌더링, 리뷰 반복을 수행하여 최종 결과물을 제공합니다.

지원 대상~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/vstoos/vlog-film/tree/HEAD

즐겨 사용하는 AI에게 물어보기

이 에이전트 스킬이 미리 로드된 새 채팅을 엽니다.

문서

브이로그 영화

사용자의 영상 폴더를 완성된 유튜브 영화로 만들고, 사용자의 피드백에 따라 반복해서 수정합니다. 이 파이프라인은 'Yaris farewell'(24분, 우크라이나어 음성, iPhone + Sony 대시캠)을 기반으로 구축되었습니다. references/example_yaris.py는 해당 영화의 완전한 프로젝트 파일로, 완성된 편집이 어떤 모습인지 보여주는 최고의 가이드입니다.

시작하기 전에

  • 설정. <skill>/config.json에 머신의 경로(ffmpeg, melt, WhisperX가 있는 Python, 번호판 모델, 음악 폴더, 인코더, 음성 언어)가 저장됩니다. 파일이 없거나 도구가 없어 스크립트가 실패하면 python <skill>/setup/setup.py(확인만)를 실행하고 사용자에게 누락된 항목을 알립니다. 사용자 동의를 얻은 후 python <skill>/setup/setup.py --install을 실행하세요. 아래 모든 스크립트는 config.json의 Python("python")으로 실행하세요. WhisperX와 torch가 설치된 환경입니다.
  • 사용자. <skill>/user.md 파일이 있으면 읽으세요. 사용자가 누구인지, 어떤 언어로 답변할지, 그리고 고정된 선호사항이 명시되어 있습니다. 파일이 없으면 사용자의 언어로 답변하고, 답변은 짧게 유지하며, 영상 시간은 사용자가 확인할 부분에 대해 mm:ss 형식으로 표시하세요.
  • 아래 명령어에서 $K는 <skill>/scripts이고, python은 설정된 Python입니다.

프로젝트 구조

영상은 사용자가 넣어둔 곳에 그대로 둡니다. 최종 mp4, YouTube 설명, 썸네일, 자막도 사용자가 찾는 곳이므로 그곳에 저장합니다. 작업 파일은 프로젝트 폴더(예: C:/Data/<이름>-video/)에 저장됩니다.

<이름>-video/
  project.py        경로, EDL, HOOK, 음악, 프레이밍, make_stills()   (references/project_template.py 복사)
  transcripts/      transcribe_all.py의 <클립>.json
  film/             렌더링된 인서트, <클립>_blur.mov, <이름>.mlt, <이름>.mp4
  film_check/       콘택트 시트, 테스트 wav, 체크 프레임 (임시)
  edit_notes.md     사용자의 리뷰 노트와 각 항목에 대한 처리 내용
  subs/, thumbnail/, route/

워크플로우

1. 목록 작성

  1. python $K/scan_meta.py <영상> film_check/meta.json: 모든 파일의 시간, 길이, GPS 정보. 시간순으로 정렬하면 이야기 순서가 됩니다.
  2. 결정하기 전에 확인: 클립의 경우 python $K/contact_sheet.py <출력.png> 6 <클립...>, 사진의 경우 타일 시트; 이미지를 직접 보세요. 세로 클립(회전 -90/90), 번호판이 보이는 클립, 대시캠 파일, 화면 녹화를 기록하세요. 여행 날짜의 Tesla 대시캠/센트리 이벤트: references/teslacam.md(사건 찾기, teslacam_grade.py로 색상 보정).
  3. python $K/transcribe_all.py <영상> transcripts: 모든 말하는 클립의 단어 시간 기반 WhisperX 전사(재개 가능, 언어는 설정에서). 모두 읽으세요. 이것이 이야기의 원재료입니다.

2. 스토리 및 EDL

빌드하기 전에 사용자에게 몇 줄로 구조를 제안하세요: 티저, 파트, 어떤 사진/지도/스틸이 어떤 대화를 설명하는지. 일반적인 형태:

  • 티저 (HOOK): 여행 전반에서 가져온 4-6개의 짧고 강력한 문구, 각각 완전한 생각.
  • 타이틀 카드는 도로 영상 위에, 그 다음 말하기 블록은 4-10초의 음악 아래 도로 장면으로 구분.
  • 대화가 무언가를 언급할 때 인서트: 연료 이야기 시 영수증, 점검 이야기 시 점검대, 각 구간 시작 시 경로 지도.
  • 음성 위에 사진(b-roll, 전화 스크린샷, 화자가 계속 말하는 동안 자막): 말하는 클립에 burn_in.py로 삽입(말하는 동안에만 클립 표시). 세로 사진(스크린샷, 세로 클립, 세로 사진)은 얼굴 감지를 통해 화자의 얼굴 반대쪽 여유 공간에 전체 프레임 높이로 배치되어 얼굴이 가려지지 않도록 합니다. 전화의 시계와 버튼은 상하를 채웁니다. 가로 사진은 프레임을 덮습니다.
  • 도로 장면은 그 시점의 이야기에 필요한 것을 보여줘야 합니다("우리가 멈췄다" 전 주유소 진입로, 공항 장면 전 공항 주차장), 그냥 아무 고속도로가 아닙니다: 적절한 순간의 도로 클립 콘택트 시트를 확인하세요.
  • 엔드 카드: 도로 영상 위에 20초, 상단에 텍스트, 중간은 YouTube 끝 화면 타일용으로 비워둠; 사용자가 있다면 추천 링크.

references/project_template.py에서 project.py를 작성하세요; EDL 항목 종류, 자막, 음악 키 및 클립별 옵션은 거기에 문서화되어 있습니다. 말하기 범위는 전사 시간에서 가져옵니다.

3. 빌드 및 렌더링

python $K/blur_plates.py <영상> <프로젝트>/film [--faces] IMG_0089 ...   # 번호판; --faces: 사람도
python $K/burn_in.py film/IMG_0089_blur.mov film/IMG_0089_over.mov spec.json   # 음성 위에 사진 (있는 경우)
python $K/filmkit.py <프로젝트>/project.py                        # 인서트 렌더링, film/<이름>.mlt 작성
python $K/render_final.py <프로젝트>/film <이름> <영상>/<이름>_HLG.mp4   # 오래 걸림: 백그라운드 실행

무거운 GPU 작업(렌더링, WhisperX, 더빙) 전에 nvidia-smi를 실행하세요: 카드 번호는 세션마다 바뀌고 도구마다 다를 수 있으며, 다른 작업이 카드를 점유할 수 있습니다(references/lessons.md, "GPUs and hardware encoders"). filmkit.py --no-media는 .mlt만 다시 씁니다(몇 초). 렌더링은 음량, 길이, 코덱/HDR 태그 및 녹색 프레임 수를 출력합니다: 약 -14 LUFS, Main 10, arib-std-b67, bt2020, 녹색 0 예상.

4. 사용자에게 완료 알리기 전에 확인

EDL을 신뢰하지 말고 WhisperX로 듣기: 새로 추가되거나 변경된 모든 컷에 대해, 완성된 mp4에서 같은 초를 잘라내어 전사합니다(python $K/transcribe_window.py <wav> <오프셋>). 첫 번째 패스 전사는 종종 구절이 끝나는 위치(특히 숫자)에 대해 틀리므로, 그 전사를 기반으로 만든 컷은 끝을 잘라버립니다("не 144, а 147"에서 "а 147" 손실). 또한 인접 섹션의 음량을 측정하고(ffmpeg -ss A -t N -i film.mp4 -af ebur128 -f null -), 모든 새 인서트의 한 프레임을 확인하세요. 다른 함정과 그 해결책: references/lessons.md.

5. 리뷰 라운드

사용자가 시청하고 영상 시간과 함께 노트를 보냅니다. 각 노트에 대해:

  1. python $K/timeline.py film/<이름>.mlt 12:22 클립 이름과 소스 초를 알려줍니다.
  2. 소스 확인(윈도우 전사, 음량 측정, 프레임 확인). 실제로 무엇이 있는지 사용자에게 알리고, 원래 단어를 인용하세요. 사용자의 기억이 녹음과 다를 수 있습니다.
  3. EDL을 변경하고 edit_notes.md에 기록합니다(영상 시간, 클립 및 초, 언급된 내용, 변경 사항).

사용자가 아직 시청 중인 동안에는 노트를 모으고 재빌드하지 마세요. 마지막에 한 번 빌드하면 긴 렌더링을 줄일 수 있습니다. 빌드하라고 하면 한 번 재빌드하고, 단계 4처럼 변경된 모든 부분을 확인한 후 챕터를 업데이트합니다.

6. 최종 결과물

references/youtube.md: 챕터가 포함된 설명(timeline.py), 썸네일(make_thumb.py), 자막(완성된 영화에 make_subs.py를 실행하고 수동 수정, 큐별로 번역, onscreen_subs.py로 화면상 텍스트도 자체 큐로 번역), YouTube 자동 더빙. 사용자는 python $K/media_server.py --port 8765 <영상> <프로젝트>/film을 통해 휴대폰으로 렌더링을 볼 수 있습니다(LAN/VPN 전용; 읽기 전용; github.com/vstoos/media-server에도 있음).

7. 더빙 오디오 트랙

사용자가 읽는 대신 듣고 싶어하는 언어의 경우: references/dubbing.md. 음성은 Higgs TTS 3(2026.11.06 이후 기본값)이며, 해당 언어의 사용자 저장된 참조 음성(C:/Data/voices, - 전달)을 사용합니다. Higgs 트랙이 있는 모든 영화 설명에는 "Boson AI's Higgs Audio" 크레딧을 표시합니다. 자막은 dub.py gen을 통해 생성되고, dub_check.py가 테이크별로 모델의 결함을 잡아내며, dub_regen.py가 실패한 부분을 대체하고, dub.py mix가 트랙을 빌드하고 들어야 할 부분을 출력합니다. say.json에서 발음을 수정합니다. 무음 영상(대시캠 클립)에 대한 나레이션은 우크라이나어로 동일한 경로를 따르며, 자막으로 작성됩니다. 확인만으로 더빙이 완전히 깨끗하다고 판단하지 마세요: 사용자의 귀가 최종 단계입니다.

개인정보 보호

번호판: 사용자는 일반 교통 차량(폴란드; 떠다니는 박스가 도로 장면을 망침)의 번호판은 블러 처리하지 않습니다. 해당 운전자의 가능한 위반이나 아슬아슬한 상황을 보여주는 클립에서만 번호판을 블러 처리하여 영화가 개인에 대한 불만 제기에 사용될 수 없도록 합니다. 도로 장면은 프로젝트에서 CLIP_SRC를 통해 그대로 삽입됩니다. 직원, 행인, 어린이의 얼굴을 블러 처리합니다(blur_plates.py --faces; 프레임 확인, 자동차 페인트 반사가 속일 수 있음); 경로 지도는 공공 장소에서 시작하고, 사용자의 집에서는 절대 시작하지 않습니다. 요청하지 않는 한 다른 사람의 얼굴(특히 어린이)을 썸네일에 넣지 마세요.

참고 파일

  • references/project_template.py: 복사할 주석이 있는 프로젝트 파일; EDL 구문.
  • references/example_yaris.py: 완성된 Yaris 영화, 모든 기능 사용.
  • references/lessons.md: HDR, 오디오, 컷팅 및 프레이밍 함정과 해결책.
  • references/teslacam.md: Tesla 대시캠/센트리 클립(HW3): 저장된 이벤트에서 사건 찾기 및 색상 보정(scripts/teslacam_grade.py).
  • references/youtube.md: 설명, 챕터, 썸네일, 자막, 더빙, 끝 화면.
  • references/dubbing.md: 사용자의 클론 음성으로 오디오 트랙 만들기 및 자동 결함 검사.
  • references/example_make_route.py: Yaris 영화의 애니메이션 경로 지도(Sentinel-2 타일 + OSRM 도로); 새로운 여행에 맞게 상수(경계, 도시, 핀, 구간)를 조정하세요.

관련 스킬