(我的英语的借口,我是来自洛杉矶的怪胎) 我正在尝试在VB6.0中完成一个trascoding过程,我正在使用ffmpeg,它是一个非常好的转码器,完成项目我想要一个进度条用于转码过程但是它非常难,首先我需要明白,如果我有输入,程序如何计算剩余的时间
我正在尝试:文件大小(KB)/平均比特率Kb / s。
理论上这必须起作用,但计算的时间比实际处理的时间小。有人对此有任何想法,计算转码过程剩余时间的公式(剪切)是什么。在这个精彩的网页上,我找到了很多关于mys项目的答案..
答案 0 :(得分:1)
比特率无法帮助您计算进度。
如果你有文件长度(以秒为单位)和帧速率,并且ffmpeg输出它现在处理的帧,你可以计算出大概的时间。
答案 1 :(得分:0)
“剩余时间”的一般解决方案,给出:
是:
seconds_elapsed = current time - start time
seconds_per_unit = seconds_elapsed / units_processed
units_left = total_units - units_processed
seconds_remaining = unit_left / seconds_per_unit
当处理每个单元的时间几乎相同时,或者至少当时间/单位与经过的时间几乎没有相关性时,该算法的效果最佳。如果时间/单位随着经过的时间而变化,它会在冰上发臭。