使用 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快速搜寻。

相关内容