手动计算emgu视频大小

时间:2016-10-17 12:49:48

标签: video emgucv

我正在使用emgu来保存未压缩的视频。 VideoWriter("video.avi", 0, (int)FrameRate, frameSize, true); 0值表示已保存的视频将被解压缩,请参阅here。此外,FrameRate aws设置为30。 存储的Mat文件为:var mat = new Mat(480, 640, Emgu.CV.CvEnum.DepthType.Cv8U, 3)。对于13994帧的存储视频,属性窗口显示:9.29 GB (6,449,164,288 bytes)(窗口)。现在我想手动验证视频大小:

640*480*3*13994= 12,896,870,400 bytes,窗口属性的两倍返回。

请你详细说明一下吗?

MediaInfo信息

General
Complete name                            : name.avi
Format                                   : AVI
Format/Info                              : Audio Video Interleave
Format profile                           : OpenDML
File size                                : 6.01 GiB
Duration                                 : 7 min 46 s
Overall bit rate                         : 111 Mb/s
Writing application                      : Lavf56.36.100

Video
ID                                       : 0
Format                                   : YUV
Codec ID                                 : I420
Codec ID/Info                            : 8 bit Y plane followed by 8 bit 2x2 subsampled U and V planes.
Duration                                 : 7 min 46 s
Bit rate                                 : 111 Mb/s
Width                                    : 640 pixels
Height                                   : 480 pixels
Display aspect ratio                     : 4:3
Frame rate                               : 30.000 FPS
Compression mode                         : Lossless
Bits/(Pixel*Frame)                       : 12.000
Stream size                              : 6.01 GiB (100%)

谢谢你。

1 个答案:

答案 0 :(得分:1)

我会在今晚稍后调查一下,但是现在可以确认emgu每帧使用4个字节(32位整数),即使你的像素类型是24位RGB吗? / p>

Formula = Width * Height * 3 (rgb) * 21658 (frames) * 4 (ie: 32bit Int) / 8 (bits per byte)

使用上面的公式我可以得到一个接近的数字......

640 * 480 * 3 * 13994 * 4 / 8 = 6,448,435,200

结果:

on disk size    : 6 449 164 288 bytes (Windows) 
calculated size : 6 448 435 200 bytes (Formula) 
remainder size  :       729 088 bytes (possible AVI Header size as bytes?)

暂时只是一个快速的,因为我不想涉及比特率等事情。通常文件大小给出比特率,反之亦然。但是根据你的估计,在文件生成之前你不会知道实际的比特率,所以上面是我最好的猜测,直到我能正确地思考它...

PS:MediaInfo可以显示标题大小(以字节为单位)以确认最后剩余大小号。