ビデオの最後のフレーム ( .mpg
、 、何でも) を取得して、それを画像ファイル ( 、 、何でも.avi
) にダンプしたいと思います。ツールチェーンは最新の Linuxコマンドラインなので、、、&cのようなものです。.jpg
.png
mencoder
transcode
ffmpeg
乾杯、ボブ。
ビデオの最後のフレーム ( .mpg
、 、何でも) を取得して、それを画像ファイル ( 、 、何でも.avi
) にダンプしたいと思います。ツールチェーンは最新の Linuxコマンドラインなので、、、&cのようなものです。.jpg
.png
mencoder
transcode
ffmpeg
乾杯、ボブ。
これは完全な解決策ではありませんが、正しい道に沿ってあなたを導きます。
ffprobe -show_streams IN.AVI
ビデオ入力のフレーム数を取得するために使用します。それで
ffmpeg -i IN.AVI -vf "select='eq(n,LAST_FRAME_INDEX)'" -vframes 1 LAST_FRAME.PNG
ここで、LAST_FRAME_INDEXは、フレーム数から1を引いた数(フレームはゼロインデックス)であり、最後のフレームを出力します。
ネルソンのソリューションを機能させることができませんでした。これは私にとってはうまくいきました。 https://gist.github.com/samelie/32ecbdd99e07b9d8806f
編集(リンクが消えた場合に備えて、ここにシェルスクリプトがあります—bobbogo):
#!/bin/bash
fn="$1"
of=`echo $1 | sed s/mp4/jpg/`
lf=`ffprobe -show_streams "$fn" 2> /dev/null | grep nb_frames | head -1 | cut -d \= -f 2`
rm -f "$of"
let "lf = $lf - 1"
ffmpeg -i $fn -vf select=\'eq\(n,$lf\) -vframes 1 $of
私が言及していないことの 1 つは、ファイルに重複が含まれている場合、予想されるフレーム カウントがオフになる可能性があることです。フレームをカウントする方法が原因で画像抽出コマンドが空に戻った場合、これが原因である可能性があります。
この問題を回避するための短いスクリプトを作成しました。ここに掲載されています。