如何根据给定的帧率,分辨率和每个像素的颜色编码来计算视频大小?

问题描述 投票:0回答:2

我需要找到一个视频大小的文件大小,该视频大小为1小时45分钟,每个像素24位彩色编码,分辨率为1920x1080。

所以我的计算是这样的:

Total Pixels = 1920 * 1080 = 2073600

Size of Each Frame = Total Pixels * 24 bit = 2073600 * 24 = 49 766 400 bits

Video Length = 1 hour and 45 minutes = 105 minutes = 6300 seconds

Video Size = Framerate * Size of Each frame * Video Length 
           = 24 * 49766400 * 6300 = ‭7 524 679 680 000 bits

我不知道如何表达从比特到千兆字节的转换,但我只是使用转换器检查了千兆字节的视频大小,它给了我875.99 GB的结果。这似乎不对,所以我在这里问是否错过了一些计算。

注意:我将需要知道带宽在12秒内传输此文件所必须具有的最小速度。

video bandwidth
2个回答
1
投票

您的数学是正确的。这个数字似乎很大,因为这是原始视频的大小。大多数视频被压缩以占用更少的空间。压缩后的视频大小取决于为压缩选择的设置,例如编解码器和可接受的质量/信息丢失。

注意:我将需要知道带宽必须达到的最低速度必须在12秒内传输此文件。

不能这样工作,因为文件大小和带宽都是可配置的变量。您正在尝试求解方程X = A * B,其中X和A都未知,并且正在尝试求解B。

如果知道带宽,则将压缩率设置为匹配,如果知道文件大小,则购买所需的带宽。一个值需要固定。


1
投票

假设没有压缩...

将大小形式的位转换为字节:7524679680000 bits等于7524679680000/8字节= 940584960000 Bytes

将大小从字节转换为千兆字节:在计算机系统中:1 KByte = 1024 Bytes1 MByte = 1024 KByte1 GByte = 1024 MByte = 1024*1024*1024 Bytes = 2^30 Bytes

[940584960000 Bytes等于940584960000/2^30 GB等于875.988 GB

[计算所需带宽(不压缩):bandwidth = size / time = 7524679680000[bits]/12[sec] = 627056640000 bits/sec

[从bits/sec转换为Gbit/sec:注意:带宽通常以每秒Giga bit(而不是每秒Giga Byte)为单位。根据Wikipedia's Data-rate units page,Gbit / s为10 ^ 9位/秒(不是2 ^ 30位/秒)。627056640000 bits/sec等于627056640000/10^9 Gbit/sec等于627.0566 Gbit/sec

嗯...使用当前技术,即使RAM带宽也太低(假设您有2TB RAM,并且您尝试将数据复制到RAM中,这将花费超过12秒的时间)。

© www.soinside.com 2019 - 2024. All rights reserved.