我从输入流(mxf或mov)获取生成的mp4视频流,在执行此操作时,我使用-psnr
作为H264参数。结果是约。 40或41。
然后我将输入和输出与psnr(或ssim)过滤器进行比较。结果约。 20或21.这是一个很大的区别。有没有人知道这种差异的原因?
注意:ssim结果类似。首先是~0.97,第二个是~0.83
ffmpeg -i input.mov -codec:v libx264 -psnr -f mp4 output.mp4
PSNR (~40)
ffmpeg -i output.mp4 -i input.mov -filter_complex psnr -f mp4 /dev/null
PSNR (~20)
ffmpeg -i input.mov -codec:v libx264 -ssim -f mp4 output.mp4
SSIM (~0.98...)
ffmpeg -i output.mp4 -i input.mov -filter_complex ssim -f mp4 /dev/null
PSNR (~0.83...)
答案 0 :(得分:0)
这是ffmpeg psnr过滤器模型的问题。即使我们在ref和dis流之间对齐时间戳和帧速率,我们也将获得不同的psnr&ssim值。 以下是我这边的测试结果,一个来自libx264日志输出,另一个是由ffmpeg psnr过滤器计算的。
libx264日志内容:
[libx264 @ 0x4840c20] PSNR平均值Y:32.345 U:39.530 V:39.383平均:33.687 全局:33.326 kb / s:943.62
ffmpeg psnr过滤器测试结果:
[Parsed_psnr_0 @ 0x33b41e0] PSNR y:32.067442 u:39.500521 v:39.372329 平均:33.447532分钟:31.125177最大:37.774371
有时,我们使用第三部分工具来计算psnr&ssim值,并应确保测试工具相同。