2

我正在使用 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 立即写入快照而不等待下一个快照?感谢您的任何帮助,您可以提供。

4

0 回答 0