gpt4 book ai didi

ffmpeg - 如何计算 ffmpeg 输出文件的大小?

转载 作者:行者123 更新时间:2023-12-04 20:53:24 24 4
gpt4 key购买 nike

我正在使用 ffmpeg 将家庭视频转换为 DVD 格式,并希望在转换之前计算输出文件大小。

我的输入文件的比特率为 7700 kbps,长度为 114 秒。音频比特率为 256 kbit(每秒?)输入文件为 77MB。为了获得这些信息,我跑了:
mplayer -vo null -ao null -frames 0 -identify input.MOD
所以理论上,输入文件应该(大致)具有以下文件大小:

((7700/8) * 114)/1024

即 (7700/8) 是千字节/秒,乘以 114 秒,然后转换为兆字节。这给了我 107MB,远远超出了我的 77。因此我对他的公式持怀疑态度。

也就是说,转换视频后:

ffmpeg -i input.MOD -y -target ntsc-dvd -sameq -aspect 4:3 output.mpg

这些数字似乎更有意义。比特率是 9000 kbps,应用上面的公式,我得到 125MB,我的实际输出文件大小是 126MB。

所以,两个问题:
  • 如何将音频比特率计入此计算?它是附加的(视频文件大小 + 音频文件大小)吗?
  • DVD 是否总是有 9000 千比特/秒的速率?这是DVD的定义吗?或者这可能会根据我的输入视频的视频质量而改变? “-target ntsc-dvd”对我的视频有什么保证?
  • 为什么我的输入文件不“匹配”计算,但输出文件呢?还有其他一些我没有考虑的变量吗?

  • 计算文件大小的正确方法是什么?

    最佳答案

    您必须记住的是,需要考虑的不同比特率测量方法很少:

  • 最大比特率 - 视频中 Action 最密集的片段的比特率
  • 平均(目标)比特率 - 使用公式
  • 精确计算的比特率
  • 速率控制(编码器对视频复杂性变化的 react 速度)

  • 有损视频编码通过消除人眼难以看到的特征来工作。这意味着,一个慢动作,一个说话的头,可以比旋转的全屏缩放/全景压缩得更远。

    为什么这有关系?标准确实指定了“最大”比特率是有原因的——这是播放器读取和解码符合标准的视频所需的速度。 DVD 的速度约为 9000kbps。

    最后,由于它是一种有损压缩,因此可以指定平均比特率。如果您需要在有限的空间或带宽中容纳内容(可能允许缓冲更密集的片段),则使用此选项。

    例如,您可以拥有最大比特率 7000kbps 和平均比特率 5500kbps 的视频。最后,速率控制是用于决定编码器应该分配多少“空间”给不同片段的算法。如果您进行多 channel 编码,您将重用之前 channel 中的这些信息 - 提高质量和比特率分布。

    关于ffmpeg - 如何计算 ffmpeg 输出文件的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7546345/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com