2017-08-09 10 views
1

私はffmpegを使用してオンラインビデオストリームからスクリーンショットを取得しています。私は複数のタイムラインを探したい。私は、コマンドを求めることにより、1枚のスクリーンショットをキャプチャするために、次のコマンドを使用しました: 午後12時02分10秒-i "ストリームURL" -frames -ssのffmpeg:V 1 out1.jpg特定のシーク時間でffmpegを使用してオンラインビデオストリームから複数のスクリーンショットをキャプチャする方法

をどのように私ができます複数のシーク時間で複数のスクリーンショットを撮る私は解決策を探しましたが成功しませんでした。 のffmpegの-noaccurate_seek夜12時01分10秒-ss -i "ストリームURL" -map 0::V:0 -vframes 1 -fを

私は次のように複数のスクリーンショットを撮るには、次のコマンドを使用しましたMPEG午後12時02分10秒-i "ストリームURL" -map 1 -ss "親指/ output_01.jpg":V:0 -vframes 1 -f MPEG "サム/ output_02.jpg"

ありますseekコマンドを使用して同じ入力からスクリーンショットを生成する方法はありますか?それをもっと速くするには?複数の入力をスキップする方法(-iパラメータ)私も他のコマンドで試してみましたが、それらはもっと遅くなります。誰でも助けてくれますか?

答えて

1

フレームを抽出する任意のシークポイントの数を指定するのが簡単な方法はありません(similar question here)。

ただし、指定した方法で検索するのは非常に高速です。代わりに、複雑なコマンドを構築する、あなただけ(あなたはすでにそれを行っていない場合)を使用してYouTubeのビデオをダウンロードして、このようなコマンドを生成できます。JPGのエクスポートが低品質につながる可能性がある

ffmpeg -ss 00:01:10 -i input -frames:v 1 out1.jpg 
ffmpeg -ss 00:02:05 -i input -frames:v 1 out2.jpg 
ffmpeg -ss 00:03:20 -i input -frames:v 1 out3.jpg 

注意を。 PNGを使用することをお勧めします。後で他のプログラムで処理できるロスレスフレームが表示されます(サイズ変更や圧縮など)。

あなたが定期的からフレームを取得したい場合は、フレームレートを落とすためにfpsフィルタを使用します。

ffmpeg -i input -filter:v fps=1/60 out%02d.jpg 

この意志出力フレーム毎分(毎分秒= 1つのフレームあたり1/60フレーム) 2つのゼロ詰め数字を出力番号として使用します。入力ファイルの前に-ssオプションを指定することで、開始点をさらにオフセットすることができます。

+0

はい、わかりましたが、この方法で別のプロセスが実行されます。定期的な間隔でフレームを取得するにはシークしませんので、スクリーンショットを生成するのに時間が必要です。ローカルビデオの場合は問題ありませんが、ストリーミングリンクやオンラインビデオからスクリーンショットを生成する際に問題があります。スクリーンショットを撮りたいだけのビデオをダウンロードしたくない場合は、オンラインビデオ/ストリーミングリンクのために速くするオプションはありますか? –

関連する問題