Video DirectShow:BitMapInfo标头和ISampleGrabber返回不同的大小
我有一个特定的FLV(VP6/LAME)文件,它是400 x 171像素,由Video DirectShow:BitMapInfo标头和ISampleGrabber返回不同的大小,video,directshow,Video,Directshow,我有一个特定的FLV(VP6/LAME)文件,它是400 x 171像素,由BitMapInfo Header结构报告,并由许多FLV元数据编辑器(如RichFLV)验证 但是,当使用ISampleGrabber从中获取样本时,结果样本(每像素3个字节)仅为204000字节(400 x 170 x 3),而不是我预期的205200字节(400 x 171 x 3) 当我试图将400 x 170的数据推入400 x 171Bitmap对象的构造函数时,它变得相当混乱,并导致a/V异常 我可以通过这
BitMapInfo Header
结构报告,并由许多FLV元数据编辑器(如RichFLV)验证
但是,当使用ISampleGrabber
从中获取样本时,结果样本(每像素3个字节)仅为204000字节(400 x 170 x 3),而不是我预期的205200字节(400 x 171 x 3)
当我试图将400 x 170的数据推入400 x 171Bitmap
对象的构造函数时,它变得相当混乱,并导致a/V异常
我可以通过这个来检测“接近但不完全如预期”的样本大小,但我真的很想知道在这个过程中1px的垂直高度到哪里去了。我猜是一个狡猾的过滤器,它不支持宽度/高度的奇数值,正在删除它,但我不确定是否有一个简单的方法来检查它
有人知道会发生什么事以及如何验证吗
(注:我不是一名优秀的C/C++开发人员,因此请不要使用过度使用它的解决方案)我最好的猜测是一个狡猾/有缺陷的FLV过滤器。当您尝试不同的FLV过滤器时会发生什么?其他FLV文件是否报告不正确的视频尺寸?哪个过滤器用于解码FLV?好了,没有本地的。我们使用的是CCCP的一部分。