# Real output excerpt: selecting fireworks stills

> One complete confirmation block from a real Sidera export. The personal Dropbox path, the video filename and the source-log names are replaced with placeholders; all other text and timestamps are the original output. See [how to read this example](README.md).

### この会話で確認した内容

花火大会動画7本（合計13,829フレーム）を全コマ解析し、花火の開き瞬間を自動検出→候補化した後、目視で最終判定することで、花火が確実に写っている静止画50枚を確定できた。

#### 関係する話題と現在の扱い

##### 関連する分野：fireworks media processing

the handling of recorded fireworks video and derived still images, including analysis, selection, normalization, delivery, and quality checks.

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 中心となる話題：fireworks still image extraction

the category of extracting and selecting still images that clearly show fireworks from recorded event videos.

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：fireworks video set

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：frame analysis

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：fireworks opening moments

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：candidate frame detection

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：manual image review

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：duplicate removal

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：blur rejection

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

##### 具体的な話題：selected image set

参照上の扱い：通常。

最終確認：2026-08-22T12:38:05.880Z。

記録されている変化：

> [2026-08-22T12:38:05.880Z] 初出

#### 対応する会話

##### 2026-08-22T12:38:05.880Z — 結論を述べた会話・結論を支える会話（作業）

> ドロップボックスのスクリーンショットフォルダ
> 花火動画から静止画を切り出す作業ですね。まず環境（Dropboxのローカル同期・ffmpeg・空き容量）を確認します。
> Dropboxはローカル同期済み（`[REDACTED_DROPBOX_ROOT]`）、ffmpegあり。C:の空きが11.8GBと少ないので作業先は要検討です。まずDropbox内を見ます。
> 7本の花火動画（計約842MB）がローカル同期済みでした。まず属性と動画仕様を確認します。
> 7本すべて1920×1080 / HEVC / 29.92fps、合計約7分42秒（13,829フレーム）です。全フレームを解析して「花火が開いている瞬間」を自動選定する方式で進めます。空領域の輝度増分でスコアリングし、ピークを検出します。
> 解析スクリプトを実行します（全13,829フレームを2回復号するので数分かかります）。
> 51枚を書き出しました。実際に花火が写っているか、確認用のコンタクトシート4枚を目視します。
> 花火が写っていないコマ（露店の照明や人物のアップ）が混じっています。残りのシートも確認して全枚数を判定します。
> シート2がシート1と同一です。生成方法に問題があったので作り直して確認します。
> 抽出画像はすべて別物でした（ffmpegのシート生成側の不具合）。シートを作り直しつつ、良否を分ける特徴量を実測します。
> 特徴量が出ました。良否の判定には残り35枚の目視が要るので、作り直したシートを確認します。
> 重要な発見です。7本中5本は**縦向き動画**（1080×1920、回転メタデータ付き）で、ffprobeの表示（1920×1080）は符号化上の値でした。解像度混在がシート生成を壊していたので、1枚ずつ正規化してから並べる方式に変えます。
> 良否を分ける指標が見つかりました。残り2枚のシートも確認して、判定基準を確定させます。
> 103枚の候補ができました。6枚のシートで全部目視します。
> 良い候補が増えました。次のシートへ。
> 全103枚を目視しました。花火が確実に写っているのは61枚。そこから重複や弱いものを削って50枚に絞り、納品先へ確定させます。
> 50枚を確定し、納品先に置きました。
> 
> ## 結果
> 
> **置き場所**: `[REDACTED_DROPBOX_ROOT]\スクリーンショット\花火_静止画\`
> - `hanabi_01.jpg` 〜 `hanabi_50.jpg`（元動画の解像度そのまま・計13.1MB）
> - `一覧.csv`（各画像がどの動画の何分何秒か）
> 
> Dropbox の同じフォルダ配下なので、そのまま同期されて携帯からも見られます。
> 
> ## やったこと
> 
> 動画7本（合計7分42秒・13,829コマ）を全コマ解析し、空の領域が背景よりどれだけ明るくなったかで「花火が開いた瞬間」を検出、1.5秒以上離す・ほぼ同一のコマを除く・手ブレの大きいコマを外す、の3条件で **103枚の候補**まで絞りました。そのうえで**103枚すべてを私が目視**し、花火がはっきり写っている61枚を選別、似たものや弱いものを削って50枚にしています。
> 
> 最初は統計だけで自動選別しようとしましたが、露店の照明・人物のアップ・地面を写したコマが花火と区別できず、51枚中20枚ほどが外れでした。数値だけでは分けきれないと判断して、機械は候補出しまで、最終判断は目視、という手順に切り替えています。
> 
> 元動画ごとの内訳は 7 / 6 / 5 / 6 / 7 / 9 / 10 枚で、大会の最初から最後まで散らばるようにしてあります。
> 
> ## 気づいた点（そちらの判断が要るもの）
> 
> - **7本中5本が縦向き撮影**（1080×1920）、2本が横向きです。静止画も元動画のまま出しています。
> - **最後の動画（[REDACTED_VIDEO_NAME]）は端末を傾けて撮られており**、そこから採った10枚のうち8枚は被写体が斜めに写ります。ただしこの動画は花火が一番大きく綺麗に写っているので採用しました。まっすぐに回転させる、あるいは別の候補と差し替えることもできます。
> - 選外にした候補のうち11枚も花火はちゃんと写っています（重複や弱さで落としただけ）。枚数を増やしたい・別のものに替えたい場合はすぐ差し替えられます。作業用の候補103枚は一時フォルダに残してあります。
> 
> 完了報告: Dropboxのスクリーンショットフォルダにある花火動画7本を全コマ解析し、花火がはっきり写った静止画50枚を選別して同フォルダ内の「花火_静止画」に一覧CSVつきで書き出した。

<!-- source: {"log":"example-fireworks/session.jsonl","from_byte":48418,"to_byte":10978897} -->

<!-- source: {"log":"example-fireworks/session.jsonl","from_byte":39222,"to_byte":39796} -->

