代码之家  ›  专栏  ›  技术社区  ›  Alistair Evans

估计剩余视频录制时间

  •  2
  • Alistair Evans  · 技术社区  · 15 年前

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

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

    有什么想法吗?

    仅供参考,我正在使用C_和DirectShow。

    2 回复  |  直到 15 年前
        1
  •  1
  •   David Pfeffer    15 年前

    这是一个很好的问题。不幸的是,没有确定的方法可以做到这一点,但您有两个基本的选择:

    1. 根据来自编解码器提供程序的实验或数据,提前计算给定比特率下每个给定时间单位使用的平均空间。
    2. 首先使用技术1,然后通过将当前使用的空间除以文件与总录制时间,创建一种机制来确定给定录制期间使用的平均空间。然后,使用这个指标来确定剩余的时间量。

    选项1是一种快速简单的入门方法。选项2需要更多的编程,但是您的估计会更加准确。毕竟,这些实例中的压缩是基于您所记录的内容。记录一个绿色的固体屏幕1小时所需的磁盘比记录一个不断变化的前景或分形序列的移动背景所需的磁盘要少得多。没有办法提前做好估计。

        2
  •  0
  •   Kurru    15 年前

    您只能通过使用最近X秒内收到的压缩率来估计未来的压缩大小。不要让它的值太大或太小。

    时间段过小意味着时间可能会发生剧烈变化(取决于视频中的运动量),时间过长意味着时间将非常不准确。

    我想30秒的时间可以提供一个合理的准确度