如何在给定帧速率、分辨率和每个像素的颜色编码的情况下计算视频大小?

How to calculate video size given framerate, resolution and color encoding per pixel?

我需要找到一个视频大小为 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 秒内传输此文件带宽必须达到的最低速度。

你的计算是正确的。这个数字看起来很大,因为这是原始视频的大小。大多数视频都经过压缩以减少占用 space。压缩后视频的大小取决于为压缩选择的设置,例如编解码器和可接受的 quality/information 损失。

Note: I will need this to know what minimal speed a bandwidth must have to transfer this file in 12 seconds.

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

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

假设没有压缩...

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

将大小从字节转换为千兆字节:
在计算机系统中:
1 KByte = 1024 Bytes
1 MByte = 1024 KByte
1 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 bits/sec (不是 2^30 bits/sec)。
627056640000 bits/sec 等于 627056640000/10^9 Gbit/sec 等于 627.0566 Gbit/sec

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