これは、以前に投稿した質問のフォローアップ質問です [〜#〜] here [〜#〜] 。したがって、基本的にFFmpegを使用して、適切なscenecut
しきい値を選択した後にシーンを検出し、各シーンから1つの代表的なフレームを取得しようとしています。
現在、以下のシーン検出コマンドは、検出されたシーンをディスクに保存しますが、残念ながら長い時間がかかります。
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