0

我已经构建了一个 AVI M-jpeg 编码器,它基本上构建了一个包含所有信息的 AVI Riff 标头。

我在规范中指定的视频流的末尾添加了一个帧索引。

索引构建如下:

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 文件违反了对齐规则:每个块必须从偶数字节开始。

在每个奇数长度的帧之后添加一个零字节,并相应地更新索引。标头中的块大小仍然应该是奇数,以告知数据的真实大小,但所有偏移量都应该是偶数。

于 2013-06-15T23:09:09.023 回答