我有一个特定的FLV(VP6 / LAME)文件,由BITMAPINFOHEADER
结构报告为400 x 171像素,并由许多FLV元数据编辑器(如RichFLV)验证。
然而,当使用ISampleGrabber
从中获取样本时,得到的样本(每像素3个字节)只有204,000字节(400 x 170 x 3)而不是205,200字节(400 x 171 x 3)正如我所料。
由于我试图将400 x 170的数据仅推送到400 x 171 Bitmap
对象的构造函数中,因此它变得非常不安并导致A / V异常。
我可以通过破解来检测“接近但不完全符合预期”的样本量,但我真的很想知道1px的垂直高度在这个过程中的位置。我的猜测是一个狡猾的过滤器,它不支持宽度/高度的奇数值并且正在删除它,但我不确定一种简单的方法来检查它。
任何人都知道会发生什么以及如何验证它?
(PS:我不是一个优秀的C / C ++开发人员,所以请不要过多使用它的解决方案)
答案 0 :(得分:0)
我最好的猜测是一个狡猾/错误的FLV过滤器。尝试使用其他FLV过滤器时会发生什么?其他FLV文件是否报告不正确的视频尺寸?