我已经构建了一个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秒,它就会失败。这对我来说没有任何意义,因为算法是相同的,无论写入多少帧。
答案 0 :(得分:1)
您的AVI文件违反了对齐规则:每个块必须以偶数字节开始。
在每个奇数帧后添加一个零字节,并相应地更新索引。标题中的块大小仍然应该是奇数来表示数据的真实大小,但所有偏移量应该是偶数。