cut_report.md
strict_cut_proposal report
- input:
_quality_audit/generated/25-video-editing-director/work/transcript_corrected.json - mode:
rough - word-level usable:
True - units: 126
- cuts: 1
- total cut: 0.34 sec
- removed filler units: 0
- weak filler candidates: 0
- retake review candidates: 0
Cut Samples
- 3.05 - 3.39 / gap gap=0.44s
Weak Filler Candidates
Retake Review Candidates
edit-brief.md
編集ブリーフ — 動画アーカイブ編集(講師指定・実動画ラン)
本ランは講師指定の実映像(画面録画ツールでの収録)を編集した実出力。合成サンプルは置き換え済み。
1. 案件概要
- 素材(講師提供・読み取り):
~/Documents/recordings/sample-screen-recording.mp4(114MB・1026x720@30fps・174.6秒・音声あり) - 内容: サンプルスクール 会員サイト(AI社員育成スクール)を本人がフェイスカム付きで画面録画した紹介ウォークスルー
- 採用区間: 100s〜126s(26秒)= 「配布プロンプト」紹介ページめぐり(公開マーケ情報のみの安全区間)
- 編集ゴール: 無音を締め、word-level 同期字幕を焼き込み、左上に章ラベル(STEP/章バッジ)を載せた視聴用クリップを実出力
2. 最重要・機密チェック(配布安全)
- 画面録画のため全長を 14 フレーム抽出して目視確認。
- 0〜約155秒 = 会員サイトのウォークスルー → 公開マーケ情報のみ(顧客名/売上/PW/メール無し)= 安全。
- 約155秒〜末尾 = Discord コミュニティ画面に受講生のハンドル・発言・課金プラン(Basic/Premium)が映る = 個人情報。配布不可。
- 対応: Discord 区間を完全に回避し、安全な会員サイト区間(100-126s)だけを素材に採用。edited.mp4 に機密フレームは一切含まない。詳細は qa.md。
3. このランで実際にやったこと(実出力)
- engine 同梱の本物スクリプトで一気通貫、最終 mp4 を実レンダー。
- whisper(small・word_timestamps True・condition_on_previous_text False・hallucination_silence_threshold 1.0)で 実音声を word-level 文字起こし(126 word)
correct_transcript.py → 用語校正(Skills/memory 等の辞書適用・本区間ヒット 0)strict_cut_proposal.py(rough)→ 0.44秒の無音 1 箇所をカットbuild_subs.py → word-level 同期字幕 7件(remap 後タイムライン)build_ass.py → 焼き込み用 ASS(白文字ブランドグラデ縁)build_chapter_pngs.py → 左上 STEP/章バッジ PNG(ブランド 4色グラデ帯)build_se.py + mix_se_track.py → SE をミックス(opening 決定ボタン)- ffmpeg-full でカット適用+左上ラベル overlay+ASS 字幕焼き込み+SE ミックス →
output/edited.mp4 - source 26.0秒 → edited 25.67秒(無音 0.34秒カット)
4. 編集方針(内部品質基準準拠)
- strict cut: フィラー+無音を除去(本区間は流暢でフィラー 0、無音 0.44秒×1 のみ)
- 字幕: word-level 同期(文字数比例配分は禁止)。1行16字・最大2行。固有名詞(AI社員 / GitHub 等)は分断しない
- テロップ: デフォルト=白文字ブランドグラデ縁(#7b6ce0 内縁・黒外縁・下中央)
- 左上ラベル: STEP バッジ(紺)+章タイトル(ブランド 4色グラデ帯)+副題(紺)
- SE: 字幕スタイル切替時のみ発火+オープニング決定ボタン+区切り swish(本区間は単一文脈のため opening のみ発火)
5. 実行パイプライン(engine/scripts)
- whisper → audio.json(word-level)
correct_transcript.py → transcript_corrected.jsonstrict_cut_proposal.py → cuts.json + cleaned transcript + cut_report.mdbuild_subs.py → subs.json(word-level 同期・スタイル付与)build_ass.py → subs.ass(ブランドグラデ縁)build_chapter_pngs.py → chapters/section_01.png(左上ラベル)build_se.py → se.json → mix_se_track.py → se_track.wav- ffmpeg-full: keep-segment trim/concat + overlay(章PNG) + subtitles(ASS) + amix(SE) → edited.mp4
6. 確認すべき未確定事項(人間へ)
- BGM トラックと正規 SE 音源ライブラリのパス(配布版に同梱なし → 本ランは CC0 自家生成トーンで代替)
- 章ラベル文言(「配布プロンプト紹介 / サンプルスクール 会員サイトめぐり」を仮置き)
- 公開先(YouTube 等)・サムネ — 外部公開は人間承認後
7. 承認ゲート
- 動画の公開・配信・限定共有リンク化は、人間(講師)の承認前で停止する。本成果物は編集済みクリップまで。
final-check.md
最終チェック — 動画アーカイブ編集(講師指定・実動画ラン)
engine 出力(work/cuts.json / subs.json / subs.ass / se.json / chapters/)と 実レンダー済み output/edited.mp4 + screenshots/ を根拠に確認。
A. 機密チェック(最重要)
- [x] 画面録画の全長 14 フレームを抽出し目視
- [x] 0〜約155秒(会員サイト walkthrough)= 公開マーケ情報のみ=安全と判定
- [x] 約155秒〜末尾(Discord 画面に受講生ハンドル・発言・課金プラン)= 個人情報=配布不可と判定 → 区間回避
- [x] edited.mp4 は安全区間 100-126s のみで構成。機密フレームは含まない(screenshots 5枚で再確認)
B. カット(strict cut)
- [x] whisper word-level 文字起こし(126 word)を strict_cut_proposal(rough)に投入
- [x] 無音短縮: 0.44秒の gap を 1 箇所カット(3.05-3.39 / cut-list.csv)
- [x] フィラー: 本区間は流暢で 0 件(架空挿入はしない)
- [x] カット適用後の実尺: source 26.0秒 → edited 25.67秒(ffprobe で確認)
C. 字幕(word-level 同期)
- [x] 字幕時刻が whisper word 境界 → remap で一致 = 比例配分でない
- [x] 1行16字以内・最大2行
- [x] 固有名詞分断なし(AI社員 / GitHub 保持)
- [x] 字幕の重なり 0 件(最低0.05秒ギャップ)
- [x] スタイルは文脈単位で固定(本区間は単一文脈=デフォルト一本)
- [x] ASS を edited.mp4 に焼き込み済み・screenshots 5枚で日本語表示を目視確認(白文字+#7b6ce0紫縁)
D. テロップ/章ラベル
- [x] デフォルト=白文字ブランドグラデ縁
- [x] 左上 章ラベル PNG(build_chapter_pngs.py)を生成し overlay で常時表示(STEP 01/01 / 配布プロンプト紹介 / サンプルスクール 会員サイトめぐり)。全 screenshots で目視確認
E. SE / 音量
- [x] SE はオープニング決定ボタンが発火(se.json: opening×1)。本区間は単一文脈のため style-SE / swish は仕様どおり非発火
- [x]
mix_se_track.py で SE を 1 本の WAV(25.56s, peak 0.100)に合成し、ffmpeg amix で SE volume 0.45 でミックス済み - [ ] BGM は未付与(配布版に BGM 同梱なし)。BGM volume 0.025 ミックスのコマンドは qa.md
F. 描画・結合
- [x] ffmpeg-full で keep-segment trim/concat + 左上ラベル overlay + 字幕焼き込み(ASS) + SE ミックス → edited.mp4 を実出力
- [x] edited.mp4 を 5 フレーム抽出して字幕同期・左上ラベル・機密無しを目視確認(screenshots/)
- [ ] Remotion テロップ動画レンダー(npm install 必須・本ランは省略、字幕は ASS 焼き込みで代替)
G. 安全・承認
- [x] 個人情報・実顧客データなし(採用区間は公開マーケ情報のみ・Discord 区間を回避)
- [x] SE は CC0 自家生成トーン。鍵・トークン・大容量メディアは不同梱
- [x] 素材は講師提供の実映像を読み取りのみ(元ファイルは改変していない)
- [ ] 公開・配信・限定共有リンク化は 人間承認前で停止(本成果物は編集済みクリップまで)
残課題(人間へ)
- BGM/正規 SE 音源ライブラリのパス供給(本ランは CC0 代替)
- 章ラベル文言の確定(現状は仮置き)
- 他区間(基礎編/中級編 等の会員サイトページ)も使う場合は同パイプラインで追加可能
subtitle-rules.md
字幕ルール — 動画アーカイブ編集(講師指定・実動画ラン)
本ルールは engine(build_subs.py / build_ass.py)が講師指定の実映像に対して適用した挙動を、人間がレビューできる形に書き起こしたもの。生成された work/subs.json と焼き込み済み output/edited.mp4 + screenshots/ を根拠とする。
1. 時刻同期は word-level(文字数比例配分は禁止)
- 字幕時刻は whisper の word-level timestamp(words[].start / words[].end)から決定。
- 実証: whisper を
--word_timestamps True で実行し 126 word を取得。build_subs.py の remap_time() でカット後タイムラインへ写像。比例配分でない。 - 例: 字幕「ください あとは 講義で配布している 特別な」(0.78s〜)は実発話の word 境界に一致(screenshots/edited_1.5s.jpg)。
2. 1行16字・最大2行
- 1行は基本16字。固有名詞を含む行のみ20字まで許容(分断防止)。
- 実証: 全7字幕とも2行以内。長い文脈は自然な助詞/文節境界で2行に分割。
3. 固有名詞・複合語を分断しない
- 「AI社員」「GitHub」等は途中改行・途中分割しない。
- 実証: 「AI社員作るためとか」「GitHub」が改行で割れず保持(screenshots/edited_6s.jpg / 16s.jpg)。
4. 文脈単位=1スタイル固定
- 句点 / 文末マーカー / 0.45秒以上のポーズ / カット境界で文脈を区切る。
- 本区間は流暢な一続きの説明のため全体が単一文脈。スタイルはデフォルト固定。
5. テロップスタイル
- デフォルト: 白文字ブランドグラデ縁(内縁 #7b6ce0・黒外縁シャドウ・下中央)。
- 実証(subs.json): 白文字ブランドグラデ縁=7(全件)。本区間に強調キーワードが無いためデフォルト一本。screenshots で紫縁の白文字を目視確認。
6. エフェクトは文脈の先頭サブのみ
- BlurIn / SlideUp 等は context_head=True の字幕のみ付与。スケール変動系(PopBounce 等)は不使用。
- 本区間はデフォルトスタイルのためエフェクト無し(チカチカ防止)。
7. 重なり禁止・尺制限
- 前字幕 end は次字幕 start を超えない(最低0.05秒ギャップ)。MIN/MAX 尺制限あり。
- 実証: 7字幕で重なり 0 件。
8. 焼き込み用 ASS
build_ass.py が subs.json → subs.ass を生成。フォント Hiragino Sans GB W6 88px、MarginV 50。- ブランドグラデ縁は ASS OutlineColour
&H00E06C7B(= #7b6ce0)。 - 実証: 7 dialogue events → ffmpeg
subtitles= フィルタで edited.mp4 に焼き込み済み。screenshots/ で日本語が正しく表示(フォント欠落なし)。
9. 左上 章ラベル(STEP/章バッジ)
build_chapter_pngs.py が sections.json → section_01.png を生成(ブランド 4色グラデ帯のタイトル+紺の STEP/副題バー)。- ffmpeg overlay で左上(x=24,y=20・幅520px に縮小)に常時表示。
- 実証: 全 screenshots に「STEP 01/01 / 配布プロンプト紹介 / サンプルスクール 会員サイトめぐり」が表示。
株式会社アイウエオ / AIO Marketing OS(架空シナリオ)向けに生成した成果物サンプル。実在の個人情報・口座・連絡先は含みません(example.com のみ)。