ffmpeg による画像のエクスポートの高速化

ffmpeg による画像のエクスポートの高速化

私のアプリケーションでは、ユーザーは特定の位置 (media.currentPosition) に移動し、保存ボタンを押すと画像がエクスポートされます。これを実現するために使用している ffmpeg コマンドは次のとおりです。

"-i",Video.mp4,"-filter_complex","[1:v][0:v]scale2ref=iw:ih[ovr][base];[ovr]colorchannelmixer=aa=0.7[ovrl];[base][ovrl]overlay[v]","-map","[v]","-ss",GetPositionInVideo,"-vframes","1","-q:v","2", "-preset", "ultrafast",directoryToStore+"/"+"Image.jpg"};

これは Android アプリケーションなので、文字列配列になっています。コマンドは完璧に動作しますが、完了するまでに非常に時間がかかります。

私のログにはこれが繰り返し表示されます:

[Progress]: frame=    0 fps=0.0 q=0.0 size=N/A time=00:00:00.00 bitrate=N/A speed=   0x

フレームに到達するまで、次のように表示されます。

[Progress]: frame=    1 fps=0.0 q=2.0 Lsize=N/A time=00:00:00.04 bitrate=N/A speed=0.00151x  

その後、すぐに終了します。

つまり、ffmpeg は目的のフレームに到達するまで各フレームを処理し、その後それを処理すると考えられます。


私の質問:

ビデオから画像に 1 つのフレームをエクスポートする速度/処理時間を向上させる方法はありますか? - 不要なフレームをスキップして、ユーザーがエクスポートしたいフレームに直接移動するなどでしょうか?

答え1

"-ss",GetPositionInVideo,"-i",Video.mp4高速シークの場合は直前に移動します。

関連情報