video-framing は何をしますか?
このスキルはvideo-tightenの後に実行し(タイトンが作成するジャンプカットを隠します)、video-colorの前に実行します。このスキルの隣にresolve-bridgeスキルがインストールされている必要があります(../resolve-bridgeで見つけるか、RVS_BRIDGEを設定します)。さらに、ffmpeg、ffprobe、swift(macOSには標準搭載。Apple Visionが顔と手を測定します)が必要です。トランスクリプトにはuv(ローカルWhisper)またはRVS_TRANSCRIBE_CMDのトランスクライバーコマンドが必要です。トランスクリプションが失敗した場合、prepareは警告付きで続行し、トランスクリプトは不完全になります。
スクリプトはpython3 <このスキルのフォルダ>/scripts/framing.py <command> --workdir <folder>として実行します。コマンド:prepare、solve、apply、pushes。
スクリプトは測定と計算を行います。あなたが判断を下します(何が乱雑か、どのセットアップがプレーンか、どのラインにプッシュインが必要か)。承認を求めるために決して止まらないでください。 ユーザーは後で確認します。確信が持てない判断でも、最善の回答を提供してビルドを続行し、decisions.jsonのissuesリストに追加します(判断方法を参照)。applyはそれをチェックリストの問題に変換します。reasonフィールドはレポートにのみ含まれます。
ワークフロー
-
現在地の確認。
python3 <resolve-bridge>/scripts/rvs.py --workdir <folder> status。まだ何もトラッキングされていない場合は、最初にタイムラインを採用します(resolve-bridgeを参照)。 -
準備。 Resolveでは何も変更しません。
python3 scripts/framing.py prepare --workdir <folder>Resolveが開いていて、トラッキングされているタイムラインにまだ記録されていない手動編集がある場合、
prepareは最初にそれらをresolve-bridgeを介して新しいバージョン(manual、「フレーミング前の手動編集」)として記録し、その旨を通知します。ユーザーに伝えてください。Resolveが開いていて、そのスケーリングモードがapplyを拒否する場合(タイムラインへの影響を参照)、prepareは開始時に警告を表示するので、長時間の実行前にユーザーが変更できます。オンカメラのアイテムを見つけ、それらをカメラセットアップにグループ化し、顔、目、体、手を測定し(毎秒約4サンプル)、以下を書き込みます。
generated/framing/setups/<id>.jpg:各セットアップにつき1枚のスチル画像(ラベル付き10%グリッド、両軸とも0.0~1.0)。.edit/framing/transcript.md:MM:SS.ss-MM:SS.ss <setup> <text>、タイムライン時間で、カメラ上で聞こえた文ごとに1行。各オンカメラピースには、独自のソース範囲内の単語のみが含まれます(Whisperからの単語時間)。これにより、ピース間で単語が繰り返されることはなく、時間は最初と最後の単語の時間です。プッシュイン範囲はこれらの行から直接選択します。.edit/framing/decisions.json:各セットアップが空のテンプレート(再実行では、アイテムが変更されていないセットアップの決定は保持されます)、予算とスチルを含むcontext.json。
最初の
prepareは遅いです。 測定にはソース1秒あたり約1.5秒かかり、Whisperはソースファイルごとに1回実行されます。バックグラウンドで実行し、5分の動画では数十分かかることを想定してください。アイテムおよびソースごとに進行状況を1行出力します(フラッシュされるため、リダイレクトされたログにも表示されます)。以降の実行はキャッシュされ高速です。スキルの更新により測定方法が変更された場合、再度測定が行われます。セットアップごとに1行(アイテム、ズーム予算、スチル)と、すでに手動フレーミングが適用されているアイテムの数を出力します。これらはそのまま残され、そのリストは
context.jsonとREPORT.mdにあります。 -
判断。 すべてのセットアップスチルを確認し、
decisions.jsonに記入します(判断方法を参照)。次に、プッシュインラインを選択します。 -
解決。 Resolveでは何も変更せず、決して接続しないドライランです。常にトラッキングされた状態の現在のバージョンの記録された計画(resolve-bridgeを通じて採用されたタイムライン)から動作するため、最後に記録されたバージョン以降にResolveで行われた手動編集は含まれません。
prepareとapplyは最初にそれらを記録します。python3 scripts/framing.py solve --workdir <folder>generated/framing/REPORT.md、セットアップごとのsetups/<id>_before_after.jpg、フラグ付きアイテムごとのflags/<n>.jpg、および.edit/framing/solution.jsonを書き込みます。無効なdecisions.json(ラベルがない、ボックスが0..1の範囲外)がある場合、理由を示して終了コード2で停止します。 -
自分でプレビューを確認。 すべてのビフォー/アフター画像とフラグ画像を開きます。各プレビューは1フレーム(セットアップの最初のアイテム、またはフラグ付きアイテムの中間フレーム)を示します。別のアイテムや別の瞬間のジェスチャーは含まれていないため、セットアップのプレビューだけでなく、フラグ付きアイテムのすべてのプレビューを確認し、フラグテキストを読んでください。フレームの下の方に手がある場合(レンズに向かって伸ばしている、下端近くでジェスチャーしている)、表示されている1フレームが問題なくても、`