FFMpeg估计执行时间

时间:2017-06-14 11:31:55

标签: android ffmpeg

我在我的项目中使用FFmpegAndroid库来叠加视频。

ffmpeg进程位于服务中,我想向用户显示一个进度通知,以确定进程的进度。

我已经查看了ffmpeg的输出,但没有任何内容指定估计的持续时间。 也许有可能通过输出中显示的其他参数来计算它,例如 fps,比特率或速度,但我没有线索..

有什么想法吗?

2 个答案:

答案 0 :(得分:2)

为此目的,您可以使用此命令FFProbe

ffprobe -v error -show_entries format=duration -of default=noprint_wrappers=1:nokey=1 example.mp4

输出将在几秒钟内完成:

enter image description here

因此,为了显示视频处理的进度,首先使用FFProbe来获取视频长度,然后在FFMpeg处理处理时,您可以根据FFMpeg进度输出计算剩余时间。

答案 1 :(得分:0)

计算进度的方法首先是获取视频时长:

可以使用ffmpeg以及android本机类完成,如MediaMetadataRetriever,如here所述。

在我们进入onProgress回调ffmpeg执行视频时,即:

frame=  171 fps= 27 q=29.0 size=      43kB time=00:00:04.06 bitrate=  87.5kbits/s dup=12 drop=9 speed=0.651x

我们能够获得执行的进度百分比。