满足我的需求的MVP将会扫描视频,并在每次屏幕变化(新幻灯片出现)时(半)智能地提取整个屏幕。
理想的工具应该可以配置为仅拍摄所选区域的图片。
我找到了很多从视频中提取静态图像的方法,但没有找到针对幻灯片或其他内容的方法。
有任何想法吗?谢谢。
满足我的需求的MVP将会扫描视频,并在每次屏幕变化(新幻灯片出现)时(半)智能地提取整个屏幕。
理想的工具应该可以配置为仅拍摄所选区域的图片。
我找到了很多从视频中提取静态图像的方法,但没有找到针对幻灯片或其他内容的方法。
有任何想法吗?谢谢。
ffmpeg
工具可以通过对视频帧进行差异化处理来实现这一点。然而,为了使其正常工作,您需要拥有一个仅包含幻灯片的视频,或者如果视频中有移动物体(如人的摄像机),则需要裁剪整个视频帧的一部分,以便只显示幻灯片。否则,ffmpeg
可以捕获整个视频帧。
安装ffmpeg:
sudo apt install ffmpeg
然后,将差异化的帧捕获到extracted_imgs
文件夹中,以示例为例:
ffmpeg -i my_video.mp4 -filter_complex "select=gt(scene\,0.01)" "extracted_imgs/%04d.jpg" -vsync drop -vb 20M
0.01
更改为调整帧之间的差异,更敏感或更粗糙。
slide-extractor
的Python包,它可以完全实现您想要做的事情。您可以在此处查看它:https://pypi.org/project/slide-extractor/1.0.0。如果您想自己制作类似的东西,也可以从其源代码中获得灵感。 - Vivek Anand