SDカードの循環バッファに連続ビデオをキャプチャして、ユーザーがイベントが発生した後にイベントをキャプチャできるようにするための最良の方法(もしあれば...)を探しています。
標準のビデオ録画 API を使用すると、ファイルに直接書き込むことができ、制限 (ユーザーが設定した、または SD カードの容量) に達すると、録画を停止して再開する必要があります。これにより、記録が実行されていない最大 2 秒間のウィンドウが作成されます。これは、DailyRoads Voyager のようないくつかの既存のアプリが既に行っていることです。重要なものを見逃す可能性を最小限に抑えるために、分割時間を 10 分などの長い時間に設定できますが、この時間間隔の終わり近くにイベントが発生した場合、最初の 9 分間を何も保存しないため、スペースが無駄になります。
したがって、現時点での私の考えは次のとおりです。バッファーとして機能する大きなファイルを用意します。フレームをキャプチャして自分でファイルに保存し、最後に折り返すために見つけたコードを使用します。ユーザーが一部を保持したい場合は、バッファー内の先頭と末尾へのポインターでマークします。保持対象としてマークされた領域をスキップして、以前と同様に記録を続行できます。
録音が停止した後、またはバックグラウンド スレッドで (電話/カードの速度に応じて) その間に、マークされた領域を別のファイルにコピーし、上書き保護を削除します。
上記の詳細を気にしない場合の主な質問: Android SDK で個々のフレームをビデオ ファイルに変換する方法が見つからないようです。出来ますか?そうでない場合、これを行うことができるネイティブコードのライブラリはありますか?
非圧縮フレームの大きなバッファについてはあまり気にしませんが、エクスポートされたビデオは Android に適した形式で圧縮する必要があります。しかし、バッファを圧縮する方法があれば、それについて聞きたいです。
ありがとうございました。