使用 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

"-ss",GetPositionInVideo,直接轉到之前"-i",Video.mp4進行快速查找。

相關內容