估计剩余视频录制时间

时间:2010-01-07 15:14:05

标签: c# directshow video-recording

我正在开发一种软​​件,可以将视频从实时源录制到WMV文件(使用WMV1压缩)。

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

有什么想法吗?

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

2 个答案:

答案 0 :(得分:1)

这是一个非常好的问题。不幸的是,没有确定的方法,但你有两个基本选择:

  1. 根据来自编解码器提供商的实验或数据,提前计算给定比特率下每个给定时间单位使用的平均空间。
  2. 首先使用技术#1,然后创建一种机制,通过将当前使用的空间除以总记录时间来确定给定记录期间使用的平均空间。然后,使用此指标确定剩余时间。
  3. 选项1是一种快速简便的入门方式。选项2需要更多的编程,但您的估计将更加准确。毕竟,在这些情况下压缩是基于您正在录制的内容。将实心绿色屏幕记录1小时所花费的磁盘比记录具有不断变化的前景的移动背景或可能是分形序列要少得多。没有办法提前做出好的估计。

答案 1 :(得分:0)

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

时间太短意味着时间可能会发生巨大变化[取决于视频中的运动量],太长时间意味着时间会非常不准确。

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