2010-01-07 76 views
2

我正在开发一款软件,将视频从实时源录制到WMV文件(使用WMV1压缩)。估计剩余的视频录制时间

我试图根据存储硬盘上剩余的空间提供剩余录制时间的粗略估计。不幸的是,我不能简单地将输出文件大小作为编解码器的比特率,因为视频压缩意味着输出大小根据图像的复杂程度而变化很大。

有什么想法?

仅供参考我正在使用C#和DirectShow。

回答

1

这是一个非常好的问题。不幸的是,有没有这样做的最好方法,但你有两个基本的选择:提前

  1. 计算在给定的比特率每给定的时间单位的平均使用空间的基础上,从编解码器的实验或数据供应商。
  2. 从技术#1开始,然后创建一种机制,用于通过将当前正在使用的空间除以总记录时间来确定给定记录过程中使用的平均空间。然后,使用此度量来确定剩余时间量。

选项1是一种快速简单的入门方法。选项2需要更多的编程,但您的估计将更准确。毕竟,这些实例中的压缩是基于您正在录制的内容。录制一个坚实的绿色屏幕1小时比使用连续变化的前景录制移动背景要少得多,或者可能是分形序列。提前做好估计是没有办法的。

0

您只能使用最近x秒内收到的压缩率来估计未来的压缩大小。不要太大,或者太小。

时间太短意味着时间可能会大幅改变(取决于视频中的运动量),太长的时间意味着时间会非常不准确。

我猜测30秒的时间可以提供合理的准确度