比较两个视频文件,找出哪个质量最好

pfa*_*con 41 video avi comparison

假设我在两个(或更多)文件中编码了相同的视频材料。我想在它们上运行一些实用程序,以明确指出哪个文件的质量“最好”。“Groundly”是指我想得到一份报告,将不同方面(例如视频分辨率、视频比特率、音频采样率、音频比特率等)一一比较,然后得到一个综合得分其中。

这与功能有关,但要使该实用程序真正可用,它应该是开源的和命令行的。

slh*_*hck 108

我从事视频质量研究,对于“哪个视频更好”这个问题,很难给出一个简单的答案。您想要的是一个程序,它可以为您提供视频的平均意见得分(MOS),即 1 到 5 之间或 0 到 100 之间的数字,它对应于人类感知的质量。

如果你想要实用的工具,你可以跳过接下来的部分。

介绍:为什么你不能简单地比较比特率/分辨率/等。

仅比较视频分辨率并不能说明质量。事实上,它可能完全具有误导性。700MB 大小的 1080p 电影翻录可能看起来比 700MB 的 720p 翻录更糟糕,因为对于前者,比特率太低,这会引入各种压缩伪影。

比较类似帧大小的比特率也是如此,因为不同的编码器实际上可以以较低的比特率提供更好的质量,反之亦然。例如,使用 XviD 生成的 720p 700MB rip 看起来比使用 x264 生成的 700MB rip 更糟糕,因为后者效率更高。

您还必须定义最终的“综合分数”(MOS)是如何由各个质量因素组成的。这在很大程度上取决于几件事,包括但不限于:

  • 您比较的视频类型(卡通、电影、新闻等)
  • 编码前的原始质量(你可以用高比特率编码一个坏文件,它不会让它变得更好)

这只是在谈论纯压缩质量。我们甚至没有谈论人类如何看待这些视频。假设您有一个朋友正在看电影,因为他或她喜欢清晰的细节和高分辨率。当他们看到低质量的翻录时,他们会比只是为了他们的内容看电影的朋友更挑剔。只要电影有趣或有趣,他们可能不会那么在意质量。

有不同类型的视频质量指标!

有几种所谓的视频质量指标,可以根据使用哪种信息来确定质量进行分类。原则上,非常简单地说,您区分以下几点:

  • 无参考指标– 您有一个视频作为输入,并希望获得质量分数。在您的情况下,您正在寻找无参考指标,因为您通常甚至没有原始视频。这样的指标将采用一个视频并输出一个质量分数。下面是一些NR 度量将检测到的问题的示例(例如模糊、块状)。

  • 完整参考指标– 您有一个原始视频和一个编码视频,并且想要一个质量分数。例如,您可以拍摄一部蓝光电影,然后从中创建两个翻录,并使用完整参考指标来估计质量损失和翻录。这将需要很长时间来计算,但它比 NR 指标更准确。

请注意,上述指标着眼于视频编码质量,但也有一些指标包含了视频流传输时的初始加载时间和停顿事件(例如ITU-T P.1203)等问题。

我可以使用哪些工具?

以下是可用于测试视频质量指标的现成工具列表:

现在有哪些指标?

PSNR、PSNR-HVS 和 PSNR-HVS-M

对于初学者来说,PSNR(峰值信噪比)是一种非常易于使用但有点糟糕的视频质量评估方法。对于大多数应用程序和快速诊断来说,它工作得相对较好,但它不能很好地估计人类如何感知质量。

PSNR 可以逐帧计算,然后您可以例如平均整个视频序列的 PSNR 以获得最终分数。PSNR 越高越好。ffmpeg 可用于计算 PSNR。

PSNR-HVS 和 PSNR-HVS-M 是 PSNR 的扩展,试图模拟人类的视觉感知,因此它们应该更准确。VQMTMSU可以计算两个视频之间的 PSNR、PSNR-HVS 和 PSNR-HVS-M。

SSIM、MS-SSIM

结构相似性(SSIM) 与 PSNR 一样容易计算,它提供更准确的结果,但仍以逐帧为基础。ffmpeg 可以计算 SSIM(使用此命令但替换psnrssim)。

您也可以使用VQMTMSU。这些工具还包括 MS-SSIM,它提供比 SSIM 更好(即更具代表性)的结果,以及一些其他衍生物。

结果应该类似于 PSNR。同样,您需要将参考与处理过的视频进行比较才能使其工作,并且两个视频的大小应该相同。

VMAF

Netflix 的Video Multi-Method Assessment Fusion是一套工具,用于根据一些现有指标计算视频质量,然后通过机器学习方法将其融合为 0 到 100 之间的最终分数。 Netflix在这里解释了整个事情

[VMAF] 通过组合多个基本质量指标来预测主观质量。基本原理是,每个基本指标在源内容特征、工件类型和失真程度方面可能有自己的优势和劣势。通过使用机器学习算法将基本指标“融合”到最终指标中——在我们的例子中,支持向量机 (SVM) 回归器——为每个基本指标分配权重,最终指标可以保留各个指标的所有优势,并提供更准确的最终分数。

您还可以使用ffmpeg来计算 VMAF 分数

质量管理

视频质量度量中得到了验证视频质量专家组(VQEG),是一个非常不错的全参考算法。您可以免费下载 VQM 或使用 MSU 的实现。

当您注册和下载时,您希望使用NTIA 通用模型具有可变帧延迟视频质量模型

国际电联 P.1204.3

这是基于比特流的视频质量评估的 ITU-T 标准。它是一种短期视频质量预测模型,它使用完整的比特流数据来估计片段级别(长度约为 10 秒的片段)的视频质量分数。

可以在 GitHub 上找到参考实现。

其他指标

  • PEVQ是 ITU-T J.246 下的标准化全参考度量。它针对多媒体信号,而不是高清视频。
  • VQuad-HD是另一种标准化为 ITU-T J.341 的全参考指标。由于它较新,因此更适合高清视频。

它们都是商业解决方案,您将找不到可供下载的软件。

还有一些关于无参考指标的 ITU 标准,例如ITU-T P.1201ITU-T P.1202,它们使用来自 IPTV 流的比特流的参数。ITU-T P.1203可用于自适应流媒体案例。


概括

如果您只是想比较简单的客观可衡量标准,例如:

  • 框架尺寸
  • 比特率
  • 每秒帧数
  • 视频分辨率

... 一个简单的调用就可ffprobe input.mp4以为您提供开始时所需的所有详细信息。然后,您可以在电子表格中对此进行总结。请注意,当您编码视频时,x264例如,如果需要,会将诸如 PSNR 之类的内容直接记录到文件中,以便您以后可以使用这些值。

至于如何权衡这些标准,您可能应该强调比特率——但前提是您知道编解码器是相同的。您通常可以说,当您有两个相同原件的编码,并且两个视频都使用 x264 时,比特率更高的那个会更好。更一般地,当您有两个具有相同比特率的视频时,您应该选择较低的分辨率,因为升级导致的降级不如低比特率导致的降级那么严重。

除非您对内容和各个编码设置有更多了解,否则无法根据比特率比较不同的编解码器。帧率也是一个非常主观的东西,如果它远低于 25 Hz,则应计入您的测量中。

总而言之,如果比特率是你唯一拥有的东西,那么强烈强调比特率。别忘了用你的眼睛,太:)

  • 很好,信息丰富的回复。尽管这不是一个直接的答案,但我喜欢看到人们花时间撰写此类信息丰富的材料。+1 (2认同)

jhu*_*lst 1

我不知道有任何工具可以为您提供最终建议或分数,但使用FFmpeg,您可以输出问题中列出的所有详细信息。

在命令行上, ffmpeg -i 将列出视频中的信息。从那里,您可以编写一个脚本来解析信息并根据您认为合适的情况对其进行加权。