0

我有一个特定的 FLV (VP6/LAME) 文件,它是 400 x 171 像素,由BITMAPINFOHEADER结构报告并由许多 FLV 元数据编辑器(如 RichFLV)验证。

但是,当使用ISampleGrabber生成的样本(每像素 3 个字节)从中获取样本时,只有 204,000 字节(400 x 170 x 3),而不是我期望的 205,200 字节(400 x 171 x 3)。

当我试图仅将 400 x 170 的数据推送到 400 x 171Bitmap对象的构造函数中时,它变得相当不安并导致 A/V 异常。

我可以破解它来检测“接近但不完全符合预期”的样本大小,但我真的很想知道 1px 的垂直高度在这个过程中去了哪里。我的猜测是一个狡猾的过滤器,它不支持宽度/高度的奇数值并且正在删除它,但我不确定检查这个的简单方法。

有人知道会发生什么以及如何验证吗?

(PS:我不是一个好的C/C++开发者,所以请不要涉及过度使用它的解决方案)

4

1 回答 1

0

我最好的猜测是一个狡猾/有缺陷的 FLV 过滤器。当您尝试不同的 FLV 过滤器时会发生什么?其他 FLV 文件是否报告不正确的视频尺寸?

于 2009-08-29T03:32:47.203 回答