回答:
ビデオフィルターを-skip_frame
必要とせずに、これをより簡単に使用できselect
ます。
ffmpeg -skip_frame nokey -i 2.flv -vsync 0 -r 30 -f image2 thumbnails-%02d.jpeg
-threads 1
デフォルトと比較して、必ずを使用してください。-threads auto
これにより、cropdetect
フィルターグラフ(ffmpeg -threads 1 -skip_frame nokey -i input.mkv -filter:v select='not(mod(n\,20))',cropdetect -an -f null /dev/null
)がシステムで2倍高速になります(60秒から30秒まで)。
-threads 1
は、それ以外の場合、出力キーフレームのシーケンスが順不同で発行される可能性があるためです。この問題に対処するなんらかの事後的な方法がある場合は、マルチスレッドを維持できます。また、を使用している場合でも、 順序が狂ったキーフレームを取得することは可能であるように見え-threads 1
ますが、この場合、このような場合はすべて、h264デコーダーエラーが伴う/フラグが付いているようですillegal short term buffer state detected
。
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I),scale=73x41" \
-vsync vfr -qscale:v 2 thumbnails-%02d.jpeg
いくつかのヒント:
フィルターは-i
出力オプションであるため、オプションの前に配置しないでください。コマンドをどこから取得したかはわかりPICT_TYPE_I
ませんが、存在しませんI
。
でscale
、置き換えることができるフィルタ73
や41
など:フィルターを持つように自動的に幅や高さは縦横比を維持するために計算しますscale=73:-1
かscale=-1:41
。これにより、「強制」スケーリングによって生じる可能性のある引き伸ばしやつぶしが防止されます。
出力品質は-qscale:v
(またはエイリアス-q:v
)で制御できます。有効範囲は2〜31のリニアスケールで、値が小さいほど品質が高くなります。
ffmpeg
入力がそれを古くする可能性があることを私に告げる前にあなたがフィルターを許可すること。ご使用のオペレーティングシステム用の最近の静的ビルドをダウンロードするか、上記が機能しない場合はコンパイルガイドに従って自分でビルドします。
ffmpeg -i 2.flv -vf "select=eq(pict_type\,I)" -vsync vfr frame-%02d.png
このエラーの場合:
オプションvf(ビデオフィルターの設定)を入力URL 1508.mp4に適用することはできません-入力オプションを出力ファイルに適用しようとしている、またはその逆です。このオプションを、それが属するファイルの前に移動します。入力ファイル1508.mp4の解析オプションエラー。入力ファイルを開くときにエラーが発生しました:無効な引数
あなたはこれを行うことができます:
ffmpeg -i 263.mp4 -vf select=eq(pict_type\,PICT_TYPE_I) -vsync 2 -s 480x320 -r 24 -f image2 thumbnails-%05d.jpeg
== --------------------------------------------
事前に「-i」パラメータ