AIの勉強を始めて17日目の超初心者です。
どうしても作りたいシステムがあり、ドキュメントも仕様書も一切ない防犯カメラの独自規格バイナリデータ(.dat)をバイナリエディタで睨みつけるところから開発をスタートしました。
iMac M4でコードを書き、ルート化したPixel 6a(Android 16 / Termux環境)の実機で、動画チャンクと隠されたGPSデータをオンデマンドで切り出して、OpenStreetMapと完全連動させてブラウザで再生するフォレンシックビューアー(Python http.server)を力技で構築しました。
しかし、最後の「詰め」の部分でどうしても私の知識では突破できない深刻なボトルネックに直面しています。
【現在の致命的な課題:音声の繋がり(バッファ遅延)】
マルチRIFF物理スキャン方式で b"LIST" や b"movi" から音声ブロック(02wb)を抽出する際、先頭のメタデータ8バイトをバイパスして「プチプチ雑音」を根絶することには成功しました。
しかし、FFmpegでストリーム(フロント/リア映像)と再結合(Mux)してブラウザにストリーム配信(302 Range対応)する際、音声の繋ぎ目でバッファが詰まり、わずかな音飛びや音ズレが徐々に発生してしまいます。
ネイティブサンプリングレート(22050Hz/Mono)には完全一致させているのですが、オンデマンド抽出時のファイルシークの遅延か、FFmpegのパイプ・バッファ制御の知見が足りず、 timeline sync がブレてしまいます。
文法もめちゃくちゃでグローバル変数を乱用した荒削りなコードですが、コアとなるリバースエンジニアリングのロジックは実装済みです。
低レイヤ、FFmpegのパイプ制御、ストリーミングに強い「神エンジニア」の先輩方、どうか力を貸してください。
コードの全貌と、詳細な技術的ボトルネックはGitHubのIssueにまとめてあります。Pull Requestやアドバイスをマジでお待ちしています!