17

ビデオの最後のフレーム ( .mpg、 、何でも) を取得して、それを画像ファイル ( 、 、何でも.avi) にダンプしたいと思います。ツールチェーンは最新の Linuxコマンドラインなので、、、&cのようなものです。.jpg.pngmencodertranscodeffmpeg

乾杯、ボブ。

4

5 に答える 5

23

これは完全な解決策ではありませんが、正しい道に沿ってあなたを導きます。

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を引いた数(フレームはゼロインデックス)であり、最後のフレームを出力します。

于 2011-11-03T23:53:04.397 に答える
2

ネルソンのソリューションを機能させることができませんでした。これは私にとってはうまくいきました。 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
于 2015-02-18T09:51:09.667 に答える
1

私が言及していないことの 1 つは、ファイルに重複が含まれている場合、予想されるフレーム カウントがオフになる可能性があることです。フレームをカウントする方法が原因で画像抽出コマンドが空に戻った場合、これが原因である可能性があります。

この問題を回避するための短いスクリプトを作成しました。ここに掲載されています。

于 2013-11-18T16:54:59.177 に答える