FFmpeg 场景检测和场景剪切

FFmpeg 场景检测和场景剪切

这是我之前发布的问题的后续问题这里。所以基本上使用 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 

相关内容