ビデオ編集比較 は何をしますか?
単一のV1比較モード「original-vs-final-source-time」をレンダリングします。
左パネルは元の映像を連続して再生します。右パネルは実際の最終納品ピクセルを元のソースのタイムラインにマッピングして投影します。削除された範囲は黒く表示され、保持された最終範囲は元のソースの長さに引き伸ばされ、オーディオは元のソースからコピーされます。
依存関係
ffmpeg/ffprobe がPATHに存在し、PythonとPillowが必要です。メディアを処理する前にこれらを確認してください。
入力
work/timeline.json: 正規のクロノロジカルなソースからプログラムへのマッピングinput/original-video.mp4: 元のソースfinal/final-video.mp4: 選択されたすべての編集後の実際の納品成果物
カットプランや中間レンダリングと比較しないでください。最終ピクセルが必要な理由は、レビューにグレードやカードが含まれるためです。
レンダリング
python scripts/make_compare.py TIMELINE.json SOURCE.mp4 FINAL.mp4 OUT.mp4 [--filter-only]
プロジェクト例:
python skills/video-edit-compare/scripts/make_compare.py `
work/timeline.json `
input/original-video.mp4 `
final/final-video.mp4 `
review/04-edit-compare/original-vs-final-source-time.mp4
スクリプトは常に永続的な work/edit-compare/compare-plan.json を書き出します。PILラベル画像と生成されたフィルターグラフは使い捨ての work/cache/ 下に書き出します。--filter-only を指定すると、プランと検査可能なキャッシュファイルを作成し、動画のレンダリングは行いません。
マッピングルール
- ソースクリップは時系列順、重複なし、単一ソースであること。
- 各クリップの
program_rangeを最終動画からトリミングします。 - クリップの速度で引き伸ばし、その
source_rangeの長さを復元します。 - ソースタイムのギャップごとに黒を挿入します。
- 元のオーディオは再タイミングせずにマッピングします。
- 各パートの開始フレームと終了フレームは、その絶対的なソースタイム境界から導出し、そのフレーム数にトリミングして、タイムラインの有理数FPSでPTSを再構築します。各パートの長さを独立して丸めてはいけません。累積的なconcatの丸めによりソースタイムのずれが発生します。
順序変更、重複、重なり、非線形速度、または複数ソースのタイムラインはV1ではサポートされておらず、検証に失敗する必要があります。
検証
レンダリング後、スクリプトは完全な出力を自動的にチェックします:
- 長さが
source_duration_sと1フレーム以内で一致すること。 - 出力幅がソース幅の2倍であること。
- 削除された範囲のすべてのサンプルが右側で黒であること。
- 保持された範囲のサンプルが対応する最終プログラムフレームと一致すること。
- 元のオーディオが連続しており、ソースクロック上にあること。
成功すると review/04-edit-comparison-summary.md に合格検証結果が書き込まれます。work/project.json が存在する場合は、original-vs-final-source-time レビューノードも追加または更新し、based_on に正確なアクティブ操作リビジョンを記録し、START-HERE.md を更新します。別のチェックマニフェストは作成しないでください。
この比較はレビュー成果物であり、デフォルトのプレビューではありません。最終レンダリングが存在した後に生成してください。