【发布时间】:2019-12-18 05:44:42
【问题描述】:
在 Bash 中, 我正在尝试将图像与 ffmpeg 中的帧匹配。我还想在找到匹配项时退出 ffmpeg 进程。这是当前代码的(简化版本):
ffmpeg --hide_banner -ss 0 -to 60 \
-i "video.mp4" -i "image.jpg" -filter_complex \
"blend=difference, blackframe" -f null - </dev/null 2>log.txt &
pid=$!
trap "kill $pid 2>/dev/null" EXIT
while kill -0 $pid 2>/dev/null; do
# (grep command to monitor log file)
# if grep finds blackframe match, return blackframe time
done
据我了解,如果视频实际上包含黑框,我会得到误报。我怎样才能有效地缓解这种情况?
虽然没有必要回答这个问题,但我想退出 ffmpeg 进程,而不必使用 grep 不断监控日志文件,而是使用纯 ffmpeg
编辑:我这样说是因为虽然我知道混合滤镜正在计算差异,但我在视频中的黑框上得到了误报,我不知道为什么。
编辑:此问题的一个可能解决方案是根本不使用黑框,而是使用 psnr (Peak Signal to Noise Ratio),但正常使用是逐帧比较两个视频,我不知道如何有效地使用它图像作为输入。
【问题讨论】: