FilmForge Deliver
映画が完成するとは、すべてのバージョンが意図された場所で再生され、正しく測定され、全プロダクションが一つのフォルダに収まり、欠落がないことを証明できる状態を指します。このスキルは、デリバラブルマトリックスからデリバラブルを作成し、それぞれをチェックし、archive.py でプロダクションをクローズします。
パス:scripts/、templates/、config/ は、このスキル内のフォルダです(ロード時に表示されるベースディレクトリ)。./install.sh によって配置されます。リポジトリのクローンから作業する場合、これらはルートの tools/、templates/、config/ です。
ステップ 1. デリバラブルマトリックス(templates/delivery-checklist.md)
プロダクションにコピーし、その映画にない項目を削除します。すべての映画デリバラブルは1つのマスターから作成され、エディターまたはコンポジターから、プレビューと同じショットリスト、ペインティング、ミックスで3840x2160でエクスポートされ、ffmpegでエンコードされます。
| デリバラブル | 作成元 | 設定 |
|---|---|---|
| 4Kマスター | エディターの4Kエクスポート | 3840x2160、ショットリストのfps;HEVC Main via VAAPI(hevc_vaapi)定数QP 18、BT.709タグ付け、その後 -c copy -tag:v hvc1 でリマックスしAppleプレーヤーで認識可能に。VAAPIなしの場合はH.264(libx264、preset medium、CRF 18、yuv420p);AAC 320k;+faststart |
| 公開用1080p | マスター | Lanczosで1920x1080にリサイズ、libx264 preset slow、CRF 16、High profile、yuv420p;ミックスを-14 LUFS、-1.5 dBTPに2パスリニアラウドネスノーマライズ;AAC 320k;+faststart |
| 携帯用コピー | 公開用コピー | Lanczosで1280x720にリサイズ、軽度ノイズ除去(hqdn3d=1.2:1.2:3:3)、libx264 900k(maxrate 1400k、buffer 2800k)、AAC 128k;チャットで送信可能なサイズ |
| カバー | マスター | 最も強いフレームを3~4枚、4K PNG、および公開用JPG;電話サイズでも判読可能 |
正確なffmpegコマンド:references/deliverables.md。1つのスクリプトにまとめ、変更があればすべてのデリバラブルを再構築します。
映画に書籍やエクストラがある場合:音楽付きのピクチャーブック(4Kおよび1080p動画)、印刷用PDF、音楽に合わせてページをめくるインタラクティブなウェブブック、ローカライズ版(各言語ごとに独自の4K、1080p、携帯電話用動画、各行を読み手が再設定・チェック、機械設定未レビューは不可)、メイキング(PDF+携帯電話用PDF)。詳細:references/deliverables.md。
ステップ 2. すべてのデリバラブルをチェック
ファイル自体を測定し、タイムラインは測定しないでください。
- ストリーム: コーデック、サイズ、ピクセルフォーマット、フレームレート、コーデックタグ(HEVCマスターは
hvc1)、オーディオレートとチャンネル数、長さ、サイズ、ビットレート(ffprobe)。 - ラウドネス: 統合ラウドネス、レンジ、トゥルーピーク(EBU R128、ffmpegの
ebur128フィルター)。マスターはミックスをそのまま保持;公開用コピーと携帯電話用コピーは約-14 LUFSである必要があります。 - ストーリーヒットでの同期: 各ヒットに対して、0.5秒以内の最大の画像変化と最も強い音のオンセット、およびそれらの間のミリ秒差。画像変化はffmpegのシーンスコアから、オンセットは
beatmap.pyを映画独自のオーディオで実行して取得。目標:1フレーム(24fpsで42ミリ秒)以下、カットがヒットに重なる場合。カットがないヒットはギャップを報告;ショットリストと照合します。 - 終端: 最初と最後のフレーム(意図的に黒かタイトル)。
- コンタクトシート: 完成した映画の2秒ごとのフレーム、端から端まで確認。
- 一度視聴: ターゲット画面で音声付きで最初から最後まで視聴し、サインオフ前に確認。
各チェックのコマンド:references/deliverables.md(Checks)。
PDFの場合:2つのリーダーで開き、各見開きを確認、フォントが埋め込まれていること、画像が印刷解像度であることを確認。
ステップ 3. アーカイブとその証明
映画制作に使用したすべてのものを1つのプロダクションフォルダに格納:production.yaml、ストーリーファイル、プロンプト、すべてのペインティングとバージョン、シート、スコアとその測定、コード、ミックス、デリバラブル、レッスン。
python3 scripts/archive.py build <film> --require deliverables.txt \
--require-shotlist <film>/shotlist.yaml --paintings <film>/art/film \
--exclude "code/.venv/=rebuilt from requirements.txt"
python3 scripts/archive.py verify <film>
build は各ファイルを <film>/MANIFEST.sha256 にハッシュ化(プレーンな sha256sum -c 形式。ツールが廃れても証明が残る)し、manifest.json を書き込みます。ファイル数、バイト数、タイプ別ファイル、意図的に除外したものとその理由(キャッシュ、仮想環境、4k/ アップスケールフォルダなど)、必要なデリバラブルと不足しているもの、ペインティングがないショット、マニフェスト自体のダイジェスト。すべての必須パターンが一致し、ペインティングのあるすべてのショットにペインティングがある場合のみ COMPLETE と報告します。verify は後ですべてを再ハッシュし、ファイルの欠落や変更があると失敗します(マニフェストの編集も)。
同じツールで小さなパックも証明できます。The Lantern Moth の archive-required.txt は、ペインティングにクレジットを使う前にプリプロダクションパックが保持すべきものをリストし、archive.py build を --require archive-required.txt でサンプルフォルダに対して実行すると、10個のパターンすべてが存在し COMPLETE と報告されます。
コピー: バックアップや移動をバイト単位で証明:python3 scripts/archive.py compare <film> <copy>。これにより、すべてのファイルのSHA-256リストをソースとコピーの両方で作成し、コピーログを手動で行う作業を1コマンドで実行します。
アーカイブに短いREADMEを書く:各フォルダの内容、意図的に除外したもの、完成した作品の場所。
ステップ 4. クローズ
production.py signoff deliver --by <you> --note "<watched the master on the TV; checks pass>"、その後 advance でレトロスペクティブに進みます(forge-director)。
出力
film/にすべてのデリバラブル、<Title>_4K.mp4、<Title>_1080p.mp4、<Title>_phone.mp4、covers/として配置- レポート内のチェック数値(サイズ、ラウドネス、各ヒットでの同期オフセット)
MANIFEST.sha256、manifest.json、アーカイブREADME
ゲートチェックリスト
- マトリックス内のすべてのデリバラブルが存在し、チェックに合格
- すべてのストーリーヒットでの同期が1フレーム以内
- ターゲット画面で音声付きで視聴済み
-
archive.py build:COMPLETE;archive.py verify:OK - すべてのコピーが
archive.py compareで証明済み - サインオフ済み
修復テーブル
| 症状 | 修正方法 |
|---|---|
| AppleデバイスがHEVCマスターを拒否 | hvc1 タグがない:ffmpeg -i in.mp4 -c copy -tag:v hvc1 out.mp4 でリマックス |
| HEVCマスターがデコードできない | VAAPIエンコード中に hvc1 が書き込まれた:タグなしでエンコードし、その後 -c copy -tag:v hvc1 でリマックス |
| TVがWi-Fiでカクつく | ビットレートが高すぎる(ffprobe で表示):より高いQP(小さいファイル)でマスターを再エンコード |
| HEVCが必要だがVAAPIエンコーダーがない | ffmpeg -h encoder=hevc_vaapi と ls /dev/dri でマシンの対応を確認;それ以外はH.264マスターを提供 |
| 公開プラットフォームが拒否またはクリッピング | ノーマライズされていない:2パスコピー(-14 LUFS、-1.5 dBTP、リニア)を公開し、マスターは使用しない |
| 携帯電話用コピーが大きすぎて送信不可 | 公開用コピーからより低い -b:v(references/deliverables.md)で再エンコード、または短縮;720pを維持 |
| verifyがCHANGEDと報告 | 配布済みファイルが編集された:証明済みコピーから復元するか、再構築して再サインオフ |
| buildがINCOMPLETEと報告 | 必要なデリバラブルまたはペインティングが不足:作成するか、理由を付けてリストから意図的に削除 |
リファレンス
references/deliverables.md:ffmpegコマンド、チェック、書籍、エディション、カバーの完全な詳細