【问题标题】:How to use ffmpeg to calculate the ssim value of compressed VP8/VP9 video?如何使用ffmpeg计算压缩VP8/VP9视频的ssim值?
【发布时间】:2016-06-02 20:49:13
【问题描述】:

我有一个 HEVC 视频。我使用下面的 FFmpeg 命令将其转换为 VP8 和 VP9:

ffmpeg -i ./hevc.mp4 -vcodec libvpx -crf 18 -b:v 0 -speed 1 ./vp8.webm

ffmpeg -i ./hevc.mp4 -vcodec libvpx-vp9 -crf 18 -b:v 0 -speed 1 ./vp9.webm

转换非常成功。但是我通过下面的 FFmpeg 命令计算的 ssim 值:

ffmpeg -y -i hevc.mp4 -i vp8.webm -filter_complex "ssim" -f hevc /dev/null

ffmpeg -y -i hevc.mp4 -i vp9.webm -filter_complex "ssim" -f hevc /dev/null

VP8 和 VP9 视频的 ssim 值均小于0.99。这些都是我没想到的糟糕结果。

如果我将 HEVC 视频转换为 x264,ssim 值将是正常的。

我的命令有问题吗?

【问题讨论】:

  • 参考视频应该是第二个输入。
  • 你的意思是我应该输入这样的命令 ffmpeg -y -i vp8.webm -i hevc.mp4 -filter_complex "ssim" -f hevc /dev/null ?我试过了,还是一样。
  • CRF 较低的编码是否显示较高的分数?
  • ssim 在 CRF 较低的情况下变得非常小。 ssim 值仍然很低(
  • 源帧率是否恒定? HEVC 和 WebM 视频的像素格式是否相同?两者都试试setpts=PTS-STARTPTS

标签: video ffmpeg vp8 vp9


【解决方案1】:

仅对 FFMPEG 4.0 及更高版本的参考和比较文件执行 SSIM:

ffmpeg -i test.mp4 -i reference.mp4 -lavfi libvmaf="[0:v][1:v]ssim" -f null -

需要将 VMAF 过滤器编译成 FFMPEG。

有关更多信息,请参阅 SSIM 上的 FFMPEG 文档部分:https://ffmpeg.org/ffmpeg-filters.html#ssim

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-05-28
    • 1970-01-01
    • 2021-02-27
    • 2014-07-02
    • 2020-11-23
    • 2017-12-04
    • 2013-12-29
    • 2017-03-02
    相关资源
    最近更新 更多