gpt4 book ai didi

ffmpeg psnr 计算默默地包含一个额外的帧

转载 作者:行者123 更新时间:2023-12-04 23:12:05 30 4
gpt4 key购买 nike

我正在尝试确定两个图像序列的 K 帧之间的 PSNR。
我得到不正确的答案。
我发现使用 stats_file=- psnr 的选项正在分析一个额外的帧(有时超出视频的结尾)。
有什么办法可以避免这种无关的框架?
这是一个例子:

ffmpeg -f lavfi -i testsrc=duration=10:size=160x120:rate=1 v1.%03d.png
ffmpeg -f lavfi -i testsrc=duration=10:size=160x120:rate=1 v2.%03d.png
cp v1.001.png v2.004.png # make the fourth frame differ

# We want the average PSNR over the first 3 frames; it should be infinity.
ffmpeg -i v1.%03d.png -i v2.%03d.png -frames:v 3 -lavfi "psnr=stats_file=-" -f null -
及其输出:
n:1 mse_avg:0.00 mse_r:0.00 mse_g:0.00 mse_b:0.00 psnr_avg:inf psnr_r:inf psnr_g:inf psnr_b:inf 
n:2 mse_avg:0.00 mse_r:0.00 mse_g:0.00 mse_b:0.00 psnr_avg:inf psnr_r:inf psnr_g:inf psnr_b:inf
n:3 mse_avg:0.00 mse_r:0.00 mse_g:0.00 mse_b:0.00 psnr_avg:inf psnr_r:inf psnr_g:inf psnr_b:inf
n:4 mse_avg:6936.69 mse_r:6839.88 mse_g:6839.78 mse_b:7130.40 psnr_avg:9.72 psnr_r:9.78 psnr_g:9.78 psnr_b:9.60
frame= 3 fps=0.0 q=-0.0 Lsize=N/A time=00:00:00.12 bitrate=N/A speed=41.3x
video:2kB audio:0kB subtitle:0kB other streams:0kB global headers:0kB muxing overhead: unknown
[Parsed_psnr_0 @ 0x55dfcbe1d280] PSNR r:15.800917 g:15.800984 b:15.620263 average:15.739882 min:9.719282 max:inf
即使我指定只使用 3 帧,它也包含了第四帧并报告了不正确的结果。
多亏了 stats_file我们看到包含第四帧。

最佳答案

-vframes-frames:v在输出帧被发送以进行编码之前对其进行评估并被强制执行,即过滤器图中不符合标准的第一帧导致 EOF,因此 PSNR 过滤器将处理一对额外的帧。预先修剪输入。
利用

ffmpeg -i v1.%03d.png -i v2.%03d.png -lavfi "[0]trim=end_frame=3[a];[1]trim=end_frame=3[b];[a][b]psnr=stats_file=-" -f null -

关于ffmpeg psnr 计算默默地包含一个额外的帧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64583718/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com