为什么 Handbrake 状态栏中的 FPS 相对于输出视频的 FPS 如此低?

为什么 Handbrake 状态栏中的 FPS 相对于输出视频的 FPS 如此低?

我正在使用 Handbrake 重新编码 MKV 视频,目的是减少大约一百兆字节,以使其保持在 FAT32 的 4.2GB 文件大小限制以下。

在编码过程中,Handbrake 的状态栏显示帧速率为 1.2,平均帧速率为 1.7,这低得可笑:

Handbroke 编码

但是,当我使用 MPC-HCCtrlJ在输出文件上显示帧时(通过暂停编码作业并播放部分编码的文件),它显示的帧速率以更正常的 FPS 速度波动:

MPC-HC 显示 FPS 为 23-35

Handbrake 编码时状态栏中显示的帧率与输出视频的帧率有何关系?为什么这么低?我认为状态栏中显示的 FPS 只是性能指标,与输出质量没有直接关系,对吗?

答案1

编码视频的值与播放视频的值不同。

例如,视频用于播放每秒 24 帧(电影)、25 帧(PAL)、29.97 帧(NTSC)。

但创建一秒的视频流可能比创建一秒的视频流消耗更多的处理器时间。因此,要创建一秒的视频流,一秒钟的视频,可能需要在 CPU 上花费几秒钟的编码时间。因此编码的 FPS 可能低于播放的 FPS,您可能会发现需要 10 个小时才能编码一部 1 分 30 秒的电影。

如果您使用类似的旧编解码器对电影进行编码MJPEG,那么您获得的 FPS 可能会高于播放时的 FPS。

编码 FPS 与播放 FPS 独立。

我是否可以正确地认为状态中显示的 FPS 只是一种性能衡量标准,并且与输出质量没有直接关系?

不完全是。显示的 FPS 是衡量编码视频,视频的输出 FPS 是固定的。但编码质量越高,通常需要的时间越长(质量也越好)。播放的 FPS 是恒定的 - 这并不奇怪,正如所希望的那样。

答案2

对视频进行编码通常比播放视频需要更多的计算资源,并且不受视频播放速度的限制。

根据处理器的速度,编码可能比实际播放速度更快或更慢,而这正是手刹所展示的性能。

它是每秒处理的帧数,而不是实际的播放速度。

答案3

视频本身的 FPS 显示在顶部栏中,靠近源面板,并详细说明您尝试编码的视频的各种设置(分辨率、FPS、音频/字幕轨道数)。底部状态栏中显示的 FPS 是 Handbrake 每秒编码到新视频文件的帧数,并且会根据计算机速度、源分辨率和您选择的编码设置而有很大差异。

附注:您还使用了“安慰剂”编码器预设,该预设的设计速度非常慢,并且“安慰剂”和“非常慢”模式之间的编码速度差异仍然非常显著,而文件大小的差异可以忽略不计。

当您使用 CRF 质量设置(“恒定质量”,右上角的滑块)时,视频的质量已经确定,并且“编码器预设”(滑块,左下角)将确定压缩视频以减小文件大小所需的工作量,并且与该过程所需的时间直接相关。“非常慢”是推荐的最大速度,因为“安慰剂”就是这样;一种几乎没有实际效果的密集过程。

您还可以使用预设滑块下方的“编码器调谐”下拉菜单来帮助它更好地工作,这样它就可以使用各种技巧来帮助压缩不同类型的视频。通常,“胶片”适用于任何真人或 CG,“动画”适用于 2D 动画(单元动画或动漫),而“颗粒”有助于在颗粒状源中保留颗粒细节。YMMV,但使用它们没有坏处,而且它们通常会带来更好的处理效果。

相关内容