这是我之前发布的问题的后续问题这里。所以基本上使用 FFmpeg,我尝试在选择一个好的scenecut
阈值后检测场景,并从每个场景中抓取一个代表性帧。
现在,我们已经有了下面的场景检测命令,将检测到的场景保存在磁盘上,不幸的是这需要很长时间:
ffmpeg -y -i myVideo.mp4 -vf yadif \
-c:v libx264 -profile:v high -preset:v fast \
-x264opts min-keyint=15:keyint=1000:scenecut=20 -b:v 2000k \
-c:a aac -b:a 128k \
-f segment -segment_format mp4 -segment_time 0.01 -segment_format_options movflags=faststart \
/home/1/output%05d.mp4
我的最终目标是识别场景,并仅保存该场景中的一帧作为图像(例如该场景的中间帧),而不是编码并保存整个场景视频。有没有快速的方法来实现这一点?
答案1
这应该可以获取镜头的第一帧。
ffmpeg -i video.mp4 -filter:v "select=gt(scene\,0.5)" -vsync vfr output/frame%d.jpg