可变帧率(或 VFR)是视频压缩中的一个术语,表示某些容器格式支持的功能,它允许帧率在视频播放期间主动更改,或完全放弃帧率的想法并为每帧设置单独的时间码.
所以我理解这个概念。但这会带来无数问题,并且大多数信息板都是存根:
都是十进制的fps vfr;整数fps可以是vfr吗?还是特定于视频的制作方式,例如当您使用 OBS 录制屏幕并将 fps 设置为 30 时,得到的小数点为 29.777?vfr 真的只存在于现实生活中录制的视频中,而 3d/2d 动画就没有 vfr 吗?我看不出小数与定义有什么关系,任何整数值也可以适合它。我知道您可以在 ffmpeg 中使用 -vfrdet 来判断某些东西是否是 vfr ......但是如果所有 vfr 都是十进制的,那有什么意义呢,为什么不直接检查 fps。
如果您以相同的 fps 重新编码 vfr 视频,输出是否仍会保持相同的速度和帧数,或者是否会有某种不同于恒定 fps 的数据丢失(编解码器质量损失之外)?vfr 视频的播放是否显示所有帧或是否倾向于跳过帧(假设硬件工作正常)?
为什么视频编辑器不“全部”支持非整数 fps 值?我的意思是任何我可以用整数的分数表示的东西,都应该可以作为 fps 输入设置 imo 使用……否则这会破坏“视频编辑”的意义。这些所谓的满载视频编辑器将您限制为仅 5 个预设 fps 即 (30/60/24/23.97/25) 的原因究竟是什么。我更加困惑,因为一些视频编辑器,虽然他们说他们支持 60fps,但仅支持 60fps 时间线编辑......并且输出的支持 fps 值被列为(在你导出之前!)为 59.94,我看到官方教程视频告诉我和每个人都认为 59.94 与 60 相同。我不确定这是否与 vfr 或其他有关。
vfr 的 fps 值是否只是整个视频的平均 fps?或者它是一些更先进的平均/计算方法?在 vfr 视频中列出单个“平均”fps 的作用是什么?定义表明视频独立于任何一个 fps……是否有某种特殊的数据包告诉视频播放器以某种方式播放视频,以便某些部分以所需的方式更快/更慢?从技术上讲,vfr 不能意味着视频的开始以 60 fps 播放,最后 10 秒以 5 fps 播放吗?视频播放器怎么会知道以 60 fps 的速度开始播放……而以 5fps 的速度结束……如果它只有 1 个数字可以关闭。
Are all decimal fps vfr; can integer fps be vfr?
不,每秒的小数帧数仍然可以保持不变。例如,NTSC(美国电视标准)是每秒 29.97(通常表示为 30000/1001)帧的恒定帧速率。
Does vfr really only exist on real-life recorded video, but 3d/2d animation wouldn't have vfr?
内容无关紧要。创建动画时往往会考虑到特定的帧速率。但没有理由必须如此。
I don't see what being a decimal has to do with the definition
没有什么。
why not just check the fps instead.
什么是“检查 fps”这甚至意味着什么(见第 4 点)
If you re-encode vfr video at the same fps,
这完全取决于您如何编码以及您用于编码的工具如何工作。大多数工具将通过不修改帧速率的输出中的任何内容(除非您告诉它)
Does playback of a vfr video show ALL the frames or does it tend to skip frames
取决于设备。例如,如果您的电视是 60Hz 并且您编码 61 fps,则它不能显示每一帧,但是如果内容平均为 60Fps,但它突发到 62,则电视可能会均匀地展开帧并显示它们,或者它可能会丢弃两个帧,然后重复 2 帧。每个显示器都是不同的,并且没有关于它应该做什么的规则。
Why do video editors not 'all' support non-integer fps values?
您需要询问这些工具的创建者。除了懒惰、成本或简单性之外,没有其他理由会阻止任何工具中的此类功能。
为了扩展简单点,在许多情况下,用户要求的帧速率是不可能的。例如,RTMP 使用 1khz 时钟,这意味着即使 30fps CFR 也是不可能的(30 不均分成 1000,它变成 30 fps AFR,其中三分之二的帧长为 33ms,三分之一长为 34ms),如果 UI 的比率为用户可以输入他们想要的任何帧速率值,但由于他们选择的视频格式的限制,他们通常会得到意想不到的结果。
telling me and everyone that 59.94 is the same as 60
这绝对不是一回事。在大多数情况下,这无关紧要,而对于互联网视频,这也无关紧要,但对于某些广播电视工作流程,帧速率通常必须准确,以使不同的设备协同工作。Is the fps value of a vfr just the average fps across the entire video?
关于如何计算平均帧率没有标准。软件我只是从标题中读取一个值,它可能会计算前几秒的平均值,也可能会计算整个文件的帧速率。每个工具的工作方式都不同。
What is even the role of having a singular listed 'average' fps in a vfr video?
方便。
is there some kind of special data packet that tells the video player to playback the video in a certain way such that some parts are faster/slower in the desired fashion?
不,每一帧都有一个与之关联的时间戳。播放器只显示一帧,直到显示下一帧。它在每一帧上加速和减速。
Can't vfr technically mean the start of a video plays at 60 fps and the last 10 seconds play at 5 fps?
是的
How would a video player know to play the start at 60 fps...and the end at 5fps...if it only has 1 number to go off of.
它没有1个号码可以关闭。每帧有 1 个数字。