mexicat/pdoom-video

Code-rendered music video for "I'm Upping My P(doom)"

해결하는 문제

노래의 시간에 따라 모든 프레임이 결정적으로 생성되는, 코드 기반의 절차적 뮤직 비디오 제작 시스템을 제공합니다. 이를 통해 실시간 브라우저 미리보기와 고해상도 오프라인 내보내기(최대 4K60)가 동일하게 유지됩니다.

작동 방식

이 프로젝트는 오디오 분석과 TypeScript/three.js 렌더러를 결합합니다:

  • 오디오 분석: Python 도구(Demucs, Whisper, CTC 강제 정렬 사용)가 노래를 분석하여 단어 수준의 가사 타이밍과 오디오 데이터(BPM, 비트, 온셋, 음량 엔벨로프)를 생성합니다.
  • 렌더링 엔진: three.js, Bun, Vite로 구축된 TypeScript 기반 엔진이 가사 줄과 비트 그리드에 고정된 타임라인을 기반으로 장면을 렌더링합니다. 블룸, 헐레이션, 그레인 같은 후처리 효과를 포함합니다.
  • 내보내기 파이프라인: 헤드리스 Chrome 인스턴스(Playwright 사용)가 프레임을 렌더링하고, WebSocket을 통해 ffmpeg로 스트리밍하여 최종 비디오를 인코딩합니다. 움직임 강도에 따라 서브 프레임을 적응적으로 샘플링하는 정교한 모션 블러 시스템을 갖추고 있습니다.

대상 사용자

절차적 아트, 동기화된 오디오-비주얼라이제이션, 고충실도 코드 기반 비디오 제작에 관심이 있는 디지털 아티스트, 크리에이티브 코더, 개발자.

주요 특징

  • 결정적 렌더링: 라이브 브라우저 미리보기와 최종 4K 내보내기 간의 일관성을 보장합니다.
  • 적응형 모션 블러: 32x32 타일당 서브 프레임 수를 조정하여 빠른 움직임 중에도 시각적 품질을 유지하면서 렌더링 속도를 최적화하는 샘플링 시스템.
  • 자동 오디오 동기화: 정밀한 단어 동기화 가라오케 타이포그래피를 위한 스템 분리 및 강제 정렬 통합 파이프라인.
  • 고해상도 지원: 모든 레이어와 셰이더가 업스케일링 없이 물리적 해상도로 렌더링되는 네이티브 4K 렌더링.

요약

오디오 분석과 three.js를 사용하여 결정적이고 단어 동기화된 비주얼을 4K60으로 내보낼 수 있는 절차적 코드 기반 뮤직 비디오 시스템.

제목

결정적 프레임과 적응형 모션 블러를 갖춘 절차적 코드 기반 뮤직 비디오 엔진

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트