- 実装
- 実装計画時点でスレッド分割を考慮する(Rustの非同期処理を活用)
- 一回目作業時、外部OBSなどで画面録画を行う
- 録画ファイルを読み込みスクショとスクショ1:1対応の比較評価用データを作成、これをキャプチャリストとする
- 二回目作業前、キャプチャエントリのデータに基づいてスクショを配置
- 二回目作業時、適宜画面をスクショと比較して評価する。これがメインループ
- 評価から数十秒前までの画面のみを比較
- ここネック、10秒60fpsでも600枚比較することになる
- 10fpsに減らして比較を軽量化
- SRTストリーム出力側の設定と関係なく減らす
- 減らす数値は設定可能
- 軽量な比較アルゴリズムを使用する
- 比較方法はユーザーが選べるようにする
- まずaHashのみ実装(Rustのimage crateを使用)
- 画面の比較評価にはOBS連携を使用
- 二回目作業時、SRTストリームをOBSから出力
- SRTストリームをTauriバックエンド(Rust)で取得、これをスクショと比較する画面とする
- 外部ffmpegプロセスを使用してSRTストリームからフレームを抽出
- プロトタイプ段階では外部ffmpeg、最適化時にffmpeg-nextへ移行を検討
- KISS、YAGNI、DRY、リーダブルコードを念頭に、常にシンプルを意識する