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レンダリング。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト