ffmpeg 有个比较方便的计算 psnr ssim 的命令
ffmpeg -i main.mp4 -i ref.mp4 -lavfi psnr="stats_file=psnr.log" -f null -
ffmpeg -i main.mp4 -i ref.mp4 -lavfi ssim="stats_file=ssim.log" -f null -
但是在对比编码优化时,发现画质实际优化,但是 psnr 反而降低的情况。
跟开发沟通以后,是因为在编码策略中有可能包含自动降帧的情况,以上命令计算 psnr,ssim 的原理是逐帧计算,然后计算平均值,在自动降帧时,对比文件相比原始文件缺少对应帧,因此降低了最终数值。
最后在转码时加入命令直接计算出 psnr,ssim
# x264opts参数 属性中加入
ssim=1
#加入psnr参数
psnr
但是这种方式,如果控制不了命令行参数,只有原始文件和转码文件,会变得很难搞。
目前想法是,给原始视频的每个帧打上标记,过滤掉无法对应的帧,实践中( 具体还没有特别好的实践方法),不知道是否有现成可用的轮子
转载文章时务必注明原作者及原始链接,并注明「发表于 TesterHome 」,并不得对作品进行修改。
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
暂无回复。