4

このコマンドを使用して、ビデオから一連の画像を抽出し、それらをビデオの視覚的な時間枠として表現しています。

ffmpeg -i inputfile.mp4 -r 1 -t 12 image-%d.jpeg

私のビデオのほとんどは mp4 形式です。画像を正常に抽出できますが、抽出に時間がかかりすぎます。

画像抽出の時間を短縮する方法はありますか?

編集: MP4 形式でエンコードされた 15 秒の長いビデオから 8 つのサムネイルを取得するのに 60 秒かかります。Galaxy Nexus(Android Phone)でこの操作を行っています。操作の速度を向上させる方法はありますか? 〜10秒以内です。

4

2 に答える 2

4

うーん、「遅い」と定義してください:)これを実行したところ、標準のマシンでは4秒かかりました。それをスピードアップする方法があるかもしれませんが、ffmpegはMP4パケット構造(GOP)をデコードし、フレームを抽出してJPG画像を保存する必要があります-4秒は私には合理的に見えます。コマンドラインに改善の余地はほとんどありません。

ffmpeg -i inputfile.mp4 -r 1 -an -t 12 -s 512x288 -vsync 1 -threads 4 image-%d.jpeg

threadsandパラメータを-s試してみてください(これはターゲット画像のサイズを定義します-プロセスを高速化することはありませんが、ソース画像のサイズを維持したくない場合は、追加の手順を節約できます)。

また、プラットフォームに一致するffmpegビルドがあることを確認してください。速度には大きな違いがあります。残念ながら、ここで一般的なアドバイスをすることはできません。あなたのシナリオでは、ffmpegソースを自分でコンパイルすることをお勧めします。

于 2012-08-23T15:15:55.730 に答える
1

ここでhttps://stackoverflow.com/a/18539500/2563051はこれのドラマです:))

-ss パラメータは -i の前に指定する必要があります。

ffmpeg -ss 00:03:00 -i Underworld.Awakening.avi -frames:v 1 out1.jpg

この例では、ムービーの開始から約 3 分後に 1 つのイメージ フレーム (out1.jpg) が生成されます。入力はキーフレームを使用して解析されますが、これは非常に高速です。欠点は、必ずしも指定された時間 (00:03:00) に配置されているとは限らないキーフレームでシークも終了するため、シークが期待どおりに正確に行われないことです。

于 2019-07-17T04:47:05.933 に答える