我正在使用FFMPEG从directshow设备(这里是VGA2USB适配器)捕获实时流。
我需要在场景更改上生成快照,我可以使用以下命令行进行快照:
ffmpeg -v verbose -r 20 -f dshow -rtbufsize 2000M -i "video=VGA2USB V2U115452" -s 1024x768 -pix_fmt yuv420p -filter:v yadif=2:0:0 -vcodec mjpeg -muxdelay 0.1 -f image2 -vf select='gt(scene\,0.1)' -vsync vfr "c:\tmp\image%3d.jpg"
此命令行生成快照,但它们已“延迟”。我的意思是,当使用过滤器检测到场景更改时,先前的快照将写入jpg文件中,并且当前保留在“缓冲区”中(或者不管它是什么)。
如果我尝试每5秒生成一个快照(使用-vf fps = fps = 1/5选项),第一个快照将在第5秒写入硬盘。
如何强制FFMPEG立即写入快照而不是等待下一个快照? 感谢您提供的任何帮助。