独自のビデオ ファイル形式を作成しており、ファイル ヘッダーとフレーム ヘッダーを書き出したいと考えています。
現時点では、次のように定義されたプレースホルダーがあります。
byte[] fileHeader = new byte[FILE_HEADER_SIZE * sizeof(int)];
byte[] frameHeader = new byte[FRAME_HEADER_SIZE * sizeof(int)];
ファイルヘッダーに次を使用してそれらを書き出します。
fsVideoWriter.Write(fileHeader, 0, FILE_HEADER_SIZE);
フレームヘッダーの場合は次のとおりです。
fsVideoWriter.Write(frameHeader, 0, FRAME_HEADER_SIZE);
これらのヘッダーを実際に適切に使用する必要があるので、個別に必要な個々のフィールドで読みやすいかどうかわからないため、これがヘッダーを書き込む最も便利な方法であるかどうかはわかりませんヘッダーからの変数。
私は次のようなことをすることを考えました:
[StructLayout(LayoutKind.Sequential, Pack = 1)]
struct FileHeader
{
public int x;
public int y;
public int z;
// etc. etc.
}
ファイル形式が進化するにつれて簡単にアップグレードできるように定義したいと思います (つまり、バージョン番号を含めます)。これは、ファイル/フレーム ヘッダーを定義するための推奨される方法ですか? もしそうなら、.NET FileStream クラスを使用してどのように読み書きする必要がありますか? これが推奨される方法でない場合は、これを行う適切な方法を提案してください。誰かがこの種のことを処理する一般的なビデオ ファイル関連のクラスを既に作成している可能性があります。