【问题标题】:Video bitrate and file size calculation视频比特率和文件大小计算
【发布时间】:2012-02-14 09:58:48
【问题描述】:

伙计们,

我试图了解视频比特率、图像大小、编解码器和文件大小之间的关系。例如,如果我有一部电影,其图像为 1920*1080 像素,比特率为 24 MBPS,长度为 2 小时,使用的编解码器为 H.264,我如何估算文件大小?

我们暂时可以忽略音频。

任何指针都将不胜感激。

问候,
彼得

【问题讨论】:

    标签: video h.264 video-encoding


    【解决方案1】:

    你有比特率和长度,所以你可以简单地将它们相乘:

    24 MBPS * 2 小时 * 60 分钟/小时 * 60 秒/分钟 = 172,800 MB

    如果您的 MB 是“兆位”而不是“兆字节”,则除以 8 得到 21,600 兆字节或 ~21.6 GB。

    【讨论】:

    • 感谢您的帮助。这确实是我最初的计算,但我不明白的是编解码器如何适应这个等式。我想像 H.264 这样的编码器在压缩方面比其他编码器更好。我听说 MJPEG2000 的压缩效果更好。我不明白的另一件事是电影的初始大​​小是如何形成的。我想 1920x1080 尺寸与 720p 相比会占用更多空间。
    • 这将取决于你如何告诉压缩器完成它的工作,以及视频的内容。如果您告诉压缩器为您的 720p 素材使用 24 MBPS,您最终会得到一个相同大小的文件。如果您的帧尺寸较小,您通常可以将 24 MBPS 降低到同样小的值并获得相同的质量水平。由于 1920x1080 大约是 1280x720 面积的两倍,因此您可以将 720p 素材压缩到 12 MBPS 并获得大致相同的质量。
    • 顺便说一句,如果这个答案有用,请检查左侧的绿色复选标记!
    【解决方案2】:

    我以不同的方式做到了。我想出了如何计算每张图片大小的比特率,以便始终为 2 小时的电影获得最佳效果。

    每秒帧数。 -30

    res.width -1920

    res.height -1080

    Gop 大小 -12

    帧/秒 by Gopsize (30/12=2,5)

    一帧像素(1920*1080=2.073.600)

    以帧/秒为单位的像素(2.073.600*30=62.208.000)

    需要的最大比特率(62.208.000/2,5=24.883.200) -24000 - 24Mb/s

    70% 的比特率丢失 (24.883.200/0,7=17.418.240) - 17000 - 17Mb/s 对于丢失 70% 的 720i,文件大小将等于 10Gb

    对于 40% 的损失,给 4Gb 和分辨率为 720-480 且纵横比为 3/4 的屏幕,这将为 70% 提供 3.7Gb 和 40% 为 1.4Gb

    【讨论】:

    • 读到这里,我其实觉得“损失70%”是不正确的。反过来说,30%的损失。在您的示例中,较高的损失会导致较小的文件大小,这是不正确的。
    • 好像不太对劲。例如,如果 gop 大小为 2(每第二帧是关键帧),它将是 30/2 = 15。它实际上会产生比 gop 大小为 12 时更低的比特率。我错过了什么吗?跨度>
    【解决方案3】:

    对于音频文件:文件大小 (bit) = bit_depth (b) * sample_rate (hz) * number_of_channel * time (second)

    对于视频文件:文件大小(位)= 每秒帧数 (fps) * 每帧像素数(=宽*高)* 位深 (b) * 时间(秒)

    【讨论】:

      【解决方案4】:

      这里有两种流行的在线服务,用于根据视频尺寸和 FPS 计算推荐的比特率

      https://streamfrogs.com/bitrate-calculator(抽搐)

      https://bitratecalc.com

      通过纯粹的猜测和祝福他们使用的公式是

      (width x height) / 1000 * fps * bits per pixel
      

      其中bits per pixel (BPP) 是以下值之一(或 0.06 和 0.16 范围内的任何值)

      0.06 (lowest quality allowed by twitch)
      0.08 (the bitratecalc "low" quality approximately)
      0.1 (recommended by twitch - the sweet spot)
      0.15 (the bitratecalc "high" quality exactly)
      0.16 (highest quality allowed by twitch)
      

      这里有一个权衡。如果 BPP 太低,质量就会很差。如果 BPP 太高,您将获得太多缓冲。我不知道我是如何解决这个问题的 - 感谢我的国王 J-e^s^u-s 的协助:D

      基于

      https://developer.apple.com/documentation/http_live_streaming/hls_authoring_specification_for_apple_devices#2969491

      应用此公式,Apple 使用的 BPP 似乎约为 0.1(低)和 0.13(高)

      请注意,twitch 建议比特率不应超过 6000kbps,尽管它们在某些情况下允许 8500kbps

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-09-01
        • 1970-01-01
        • 2020-03-31
        • 1970-01-01
        • 1970-01-01
        • 2015-06-12
        • 2019-09-08
        • 2011-04-08
        相关资源
        最近更新 更多