Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Video 如何使用ffmpeg计算压缩的VP8/VP9视频的ssim值?_Video_Ffmpeg_Vp8_Vp9 - Fatal编程技术网

Video 如何使用ffmpeg计算压缩的VP8/VP9视频的ssim值?

Video 如何使用ffmpeg计算压缩的VP8/VP9视频的ssim值?,video,ffmpeg,vp8,vp9,Video,Ffmpeg,Vp8,Vp9,我有一个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 -y -i hevc.mp4 -i vp8.webm -filter_complex "ssim" -f hev

我有一个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 -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
转换非常成功。但我通过以下FFmpeg命令计算的ssim值:

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 -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 4.0及更高版本的参考和比较文件执行SSIM:

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

要求将VMAF筛选器编译为FFMPEG


有关更多信息,请参阅SSIM上的FFMPEG文档部分:

参考视频应该是第二个输入。您的意思是我应该输入以下命令:FFMPEG-y-I vp8.webm-I hevc.mp4-filter\u complex“SSIM”-f hevc/dev/null?我试过了,结果是一样的。CRF越低,编码的分数越高吗?CRF越低,ssim越小。ssim值仍然较低(<0.99)。但我找到了另一种方法。VP9可以是无损的。因此,我将HEVC转换为VP9无损,然后将VP9无损转换为VP9(loosy,使用crf 18),并计算VP9无损和VP9(loosy)之间的ssim值,ssim值大于0.993,这是我期望的数字。但是VP8也有同样的问题,即使源是VP9无损而不是hevc。也许这是时间戳问题?源帧速率是常数吗?HEVC和WebM视频的像素格式是否相同?两种方法都可以尝试
setpts=PTS-STARTPTS