ai21.net
言語

トーキングヘッド動画のモーショングラフィックス編集

トーキングヘッド動画のモーショングラフィックス編集 — 1

プロンプト

Edit my talking-head video into a polished YouTube video with explanatory motion graphics.

INPUT
- Raw video: <path/to/raw.mp4>. Speech is Portuguese; don't translate.
- Target: at most <6:30>. Style: premium, clean, editorial ("Anthropic/Apple level").
- End card: subscribe + follow me on X (<https://x.com/handle>) + "comment what you want to see next".
- Never cover my face. Never show where I live.

STACK
- Remotion (https://remotion.dev/) for the composition, ffmpeg for cuts and encoding, Python for analysis.
- Transcribe with word timestamps using ElevenLabs Scribe. It has precise word boundaries and marks fillers like "hã"/"é".
- If you use Whisper instead: its word ends stretch over pauses, so refine every cut point with the audio energy.

1) PLAN THE CUT
- Make an indexed transcript (word index → text, start, end).
- Choose keep-ranges by word index. Remove fillers, false starts, repeated sentences and weak tangents until it fits the target.
- Put the strongest line (2–4 s) at the very start as a cold-open hook.

2) CUT, FRAME-ACCURATE AND IN SYNC
- Cut points:
- Cut in the silence between words, never inside a word.
- Keep ~50 ms before the first word and ~60 ms after the last word (~160 ms if it ends a sentence).
- Silences inside kept ranges:
- Detect them with a 10 ms RMS envelope. A threshold around −38 dBFS worked here; measure your own noise floor first.
- Shorten any pause over 0.32 s to 0.22 s (0.36 s after a sentence ends).
- Round every boundary to whole frames (30 fps) and merge touching segments.
- Video: ffmpeg split → trim(start_frame, end_frame) → concat, plus a light grade (hqdn3d, eq, colorbalance, unsharp) → intermediate at CRF 14.
- Audio: cut the same boundaries in numpy with 8 ms fades and no overlap. A/V stays in sync.
- QA: re-transcribe the cut and diff it against the intended text. Fix leaked fragments and clipped word starts, then repeat until clean.

3) FACE TRACK
- Detect the face every 0.2 s (Apple Vision or MediaPipe).
- Smooth with a moving average inside each cut segment, never across a jump cut.
- Use it to frame the camera and to place graphics on the side away from the face.

4) DESIGN SYSTEM
- One palette: dark warm stage #14120F, ivory "paper" #F1ECE2, one accent (clay #D97A4E).
- Fonts: Fraunces (serif display), Inter Tight (UI), JetBrains Mono (labels). Add subtle grain and soft glows.
- No gradient text, no neon.
- Camera layout modes, morphing between them in ~0.7 s (cubic in-out):
- full frame;
- split left/right: rounded camera card 856×936, face at 42% of its height, graphics on the other half;
- PIP: 256 px circle over a full-screen paper sheet, for chapter moments.

5) BEAT SHEET (JSON)
- Give every sentence group a visual, cued to word start times in the cut timeline:
- lower third (name/role);
- big numbers with count-up;
- lists that reveal on each spoken item;
- SVG diagrams that draw on;
- timeline, before→after, comparison cards, quotes;
- arrows annotating objects in the room.
- Structure: cold open with kinetic captions → 1.5 s title card → content → end card (CTAs plus a portrait still).

6) BUILD IN REMOTION
- One composition, 1920×1080 at 30 fps. Put `<OffthreadVideo>` (muted) inside a container whose rect and transform come from the layout keyframes plus the face track.
- Each graphic is a `<Sequence>` component. Drive reveals with useCurrentFrame + interpolate/spring (opacity, translateY, blur).
- SVG draw-on: animate strokeDashoffset using the real path length.
- Jump cuts: alternate zoom 1.0 ↔ 1.075 around the face when the picture jumps. Add a 1–2% slow breathing zoom elsewhere and a punch-in on punchlines.
- Deterministic only: no Math.random.
- Check key frames with `npx remotion still`: face uncovered, no clipped text, nothing appearing before its cue.

7) SOUND
- Voice: highpass 80 Hz, light denoise, −2.5 dB at 280 Hz, +2 dB at 3.6 kHz, de-ess, 3:1 compressor.
- Music: royalty-free lo-fi (e.g. Mixkit). Change track per section with 4 s crossfades.
- Duck 9–12 dB under the voice in the speech band, keeping the lows.
- Louder only on the title and end cards.
- SFX: very subtle whooshes on layout changes, pops on reveals, ticks on counters.
- Master: two-pass loudnorm to −14 LUFS, true peak −1.5.

8) RENDER, VERIFY, DELIVER
- Encode: H.264 CRF 16, AAC 320k, BT.709, +faststart.
- Verify:
- duration within the target, −14 LUFS;
- no frozen stretch over 0.3 s;
- a 40-frame contact sheet;
- re-transcribe the final mix: at least 95% of words should match, so the music isn't masking the voice.
- Deliver the MP4, an .srt from the word timings (max 42 chars per line, 2 lines), and YouTube chapters (first at 0:00, each at least 10 s).

RULES
- Show numbers and claims exactly as I say them.
- Check names and spellings on the web before they go on screen.
- No invented stats or testimonials.
- Short, concrete on-screen copy with no AI clichés.
- Don't publish anything without my OK.

日本語訳

トーキングヘッド動画を、解説用モーショングラフィックス付きの洗練された YouTube 動画に編集してください。

入力
- 生動画:<path/to/raw.mp4>。音声はポルトガル語なので、翻訳しないでください。
- 目標:最大 <6:30>。スタイル:プレミアムでクリーン、エディトリアル(「Anthropic/Apple レベル」)。
- エンドカード:登録 + X でフォロー(<https://x.com/handle>)+ "comment what you want to see next"。
- 私の顔を決して隠さないでください。私の住んでいる場所を決して映さないでください。

スタック
- コンポジションには Remotion(https://remotion.dev/)、カットとエンコードには ffmpeg、解析には Python。
- ElevenLabs Scribe を使って、単語タイムスタンプ付きで文字起こししてください。単語境界が正確で、「hã」や「é」のようなフィラーもマークします。
- 代わりに Whisper を使う場合:単語の終端がポーズにまで伸びるため、すべてのカットポイントを音声のエネルギーで調整してください。

1) カットの計画
- インデックス付きの文字起こしを作成します(単語インデックス → テキスト、開始、終了)。
- 単語インデックスで保持範囲を選びます。フィラー、言い直し、繰り返された文、弱い脱線を削除し、目標時間に収めます。
- 最も強い一文(2〜4 秒)を冒頭に置き、コールドオープンのフックにします。

2) カット:フレーム精度と同期
- カットポイント:
- 単語と単語の間の無音でカットし、単語の途中では決してカットしないでください。
- 最初の単語の前に約 50 ms、最後の単語の後に約 60 ms を残します(文末の場合は約 160 ms)。
- 保持範囲内の無音:
- 10 ms の RMS エンベロープで検出します。ここでは −38 dBFS 付近のしきい値が機能しました。まず自分のノイズフロアを測定してください。
- 0.32 秒を超えるポーズは 0.22 秒に短縮します(文の終わりでは 0.36 秒)。
- すべての境界をフレーム単位(30 fps)に丸め、接しているセグメントを結合します。
- 映像:ffmpeg split → trim(start_frame, end_frame) → concat、さらに軽いグレーディング(hqdn3d、eq、colorbalance、unsharp)→ CRF 14 の中間ファイル。
- 音声:numpy で同じ境界をカットし、8 ms のフェードをかけ、オーバーラップさせません。A/V は同期を保ちます。
- QA:カット後に再文字起こしし、意図したテキストと差分を取ります。漏れた断片や切れた単語の頭を修正し、クリーンになるまで繰り返します。

3) 顔トラッキング
- 0.2 秒ごとに顔を検出します(Apple Vision または MediaPipe)。
- 各カットセグメント内で移動平均を使って平滑化し、ジャンプカットをまたいで平滑化しないでください。
- これを使ってカメラをフレーミングし、顔から離れた側にグラフィックスを配置します。

4) デザインシステム
- パレットはひとつ:暗く暖かなステージ #14120F、アイボリーの「紙」#F1ECE2、アクセントをひとつ(クレイ #D97A4E)。
- フォント:Fraunces(セリフディスプレイ)、Inter Tight(UI)、JetBrains Mono(ラベル)。繊細なグレインと柔らかなグローを加えます。
- グラデーションのテキストは禁止、ネオンも禁止。
- カメラレイアウトモード。約 0.7 秒でモード間をモーフィングします(cubic in-out):
- フルフレーム。
- 左右分割:角丸のカメラカード 856×936、顔はその高さの 42% の位置、もう半分にグラフィックス。
- PIP:全画面のペーパーシートの上に 256 px の円、チャプターの瞬間に。

5) ビートシート(JSON)
- 文のグループごとにビジュアルを与え、カットタイムライン上の単語開始時刻にキューを合わせます:
- ローワーサード(名前/役割)。
- カウントアップ付きの大きな数字。
- 話された項目ごとに現れるリスト。
- 描画される SVG 図。
- タイムライン、before→after、比較カード、引用。
- 部屋の中の物体に注釈を付ける矢印。
- 構成:キネティックキャプションのコールドオープン → 1.5 秒のタイトルカード → コンテンツ → エンドカード(CTA とポートレートのスチル)。

6) Remotion でのビルド
- コンポジションはひとつ、1920×1080、30 fps。`<OffthreadVideo>`(ミュート)を、矩形とトランスフォームがレイアウトキーフレームと顔トラックから決まるコンテナの中に置きます。
- 各グラフィックは `<Sequence>` コンポーネントです。useCurrentFrame + interpolate/spring(opacity、translateY、blur)で表示を駆動します。
- SVG の描画:実際のパス長を使って strokeDashoffset をアニメーションします。
- ジャンプカット:絵が跳ぶときは顔の周りでズーム 1.0 ↔ 1.075 を交互に。それ以外の場所には 1〜2% のゆっくりした呼吸のようなズームを、オチの部分にはパンチインを加えます。
- 決定論的であること:Math.random は使わないでください。
- キーフレームは `npx remotion still` で確認します。顔が隠れていない、テキストが切れていない、キューより前に何も現れていないこと。

7) サウンド
- ボイス:80 Hz のハイパス、軽いノイズ除去、280 Hz で −2.5 dB、3.6 kHz で +2 dB、ディエッサー、3:1 のコンプレッサー。
- 音楽:ロイヤリティフリーの lo-fi(例:Mixkit)。セクションごとに 4 秒のクロスフェードで曲を切り替えます。
- 声の下、会話帯域で 9〜12 dB ダッキングし、低域は残します。
- 音量を上げるのはタイトルとエンドカードのみ。
- SFX:レイアウト変更時のごく控えめなウシュ、表示時のポップ、カウンターのティック。
- マスター:ツーパスの loudnorm で −14 LUFS、トゥルーピーク −1.5。

8) レンダリング、検証、納品
- エンコード:H.264 CRF 16、AAC 320k、BT.709、+faststart。
- 検証:
- 尺が目標内、−14 LUFS。
- 0.3 秒を超える静止区間がない。
- 40 フレームのコンタクトシート。
- 最終ミックスを再文字起こし:単語の少なくとも 95% が一致すること(音楽が声をマスクしていないこと)。
- MP4、単語タイミングから作った .srt(各行最大 42 文字、2 行まで)、YouTube チャプター(最初は 0:00、各 10 秒以上)を納品してください。

ルール
- 数字と主張は、私が言ったとおりに正確に表示してください。
- 名前と綴りは、画面に出す前にウェブで確認してください。
- 統計や推薦の声をでっち上げないでください。
- 画面上のコピーは短く具体的に、AI っぽい決まり文句はなし。
- 私の OK なしに何も公開しないでください。

出典

原作者
condzxyz
公開日
2026-10-12(由推文 ID 反解)
原典
元の投稿を見る ↗
収録元
zhuyansen/awesome-opus-5.5-video · 2109454493415023080 · ライセンス未表明