比特率计算

时间:2010-01-18 20:59:06

标签: vb6 ffmpeg bitrate

(我的英语的借口,我是来自洛杉矶的怪胎) 我正在尝试在VB6.0中完成一个trascoding过程,我正在使用ffmpeg,它是一个非常好的转码器,完成项目我想要一个进度条用于转码过程但是它非常难,首先我需要明白,如果我有输入,程序如何计算剩余的时间

  • 平均比特率
  • 帧率
  • 启动文件大小。

我正在尝试:文件大小(KB)/平均比特率Kb / s。

理论上这必须起作用,但计算的时间比实际处理的时间小。有人对此有任何想法,计算转码过程剩余时间的公式(剪切)是什么。在这个精彩的网页上,我找到了很多关于mys项目的答案..

2 个答案:

答案 0 :(得分:1)

比特率无法帮助您计算进度。

如果你有文件长度(以秒为单位)和帧速率,并且ffmpeg输出它现在处理的帧,你可以计算出大概的时间。

答案 1 :(得分:0)

“剩余时间”的一般解决方案,给出:

  • 表示要处理的尺寸,单位数量等的数字total_units
  • 一个数字units_processed,表示到目前为止已经处理了多少个
  • 一个数字start_seconds,给出时间,以操作开始后的秒数为单位

是:

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

当处理每个单元的时间几乎相同时,或者至少当时间/单位与经过的时间几乎没有相关性时,该算法的效果最佳。如果时间/单位随着经过的时间而变化,它会在冰上发臭。

相关问题