0

基本的にすべての情報を含む AVI Riff ヘッダーを構築する AVI M-jpeg エンコーダーを構築しました。

仕様で指定されているように、ビデオ ストリームの最後にフレーム インデックスを追加しています。

インデックスは次のように構築されます。

idx1[Size]、そして00dc[0x10,0x00,0x00,0x00][Offset from frame X][Size from frame X]最後まで。他の AVI ファイルと比較しましたが、すべて同じです。そのため、ソフトウェアが AVI ファイルのインデックスを見つけられない、または検索しない場所を理解できません。また、各タグのバイト長が適切であることも何度か確認しました。ちなみに、各オフセットにはパディングがあり、長さはjpegのみのサイズです。

現在レンダリングされているファイルを添付しました: movie.avi

私は一日中、自分のインデックスの問題を突き止めようとしました。AVIの仕様は本当にシンプルなので、机に頭をぶつけています。

[編集]

ビデオが 1 秒を超えるとすぐに失敗します。フレームがいくつ書き込まれても、アルゴリズムは同じであるため、現時点では意味がありません。

4

1 に答える 1

1

あなたの AVI ファイルは整列規則に違反しています: すべてのチャンクは偶数バイトで開始する必要があります。

奇数長のフレームごとに 0 バイトを追加し、それに応じてインデックスを更新します。ヘッダーのチャンク サイズは、データの実際のサイズを示すためにまだ奇数である必要がありますが、すべてのオフセットは偶数である必要があります。

于 2013-06-15T23:09:09.023 に答える