Оценка оставшегося времени записи видео - PullRequest
2 голосов
/ 07 января 2010

Я занимаюсь разработкой программного обеспечения, которое записывает видео из живого источника в файлы WMV (с использованием сжатия WMV1).

Я пытаюсь дать приблизительную оценку оставшегося времени записи на основе свободного места на жестком диске. Я не могу просто основать размер выходного файла на скорости передачи кодека, к сожалению, поскольку сжатие видео означает, что размер вывода сильно варьируется в зависимости от сложности изображения.

Есть мысли?

К вашему сведению, я использую C # и DirectShow.

Ответы [ 2 ]

1 голос
/ 07 января 2010

Это действительно хороший вопрос. К сожалению, нет надежного способа сделать это, но у вас есть два основных варианта:

  1. Предварительно вычислите среднее пространство, используемое за данную единицу времени при данной скорости передачи данных, на основе экспериментов или данных от поставщика кодеков.
  2. Начните с использования метода # 1, но затем также создайте механизм для определения среднего пространства, используемого во время данной записи, разделив пространство, используемое в данный момент файлом, от общего времени записи. Затем используйте этот показатель, чтобы определить оставшееся время.

Вариант 1 - это быстрый и простой способ начать работу. Вариант 2 требует немного больше программирования, но ваша оценка будет значительно более точной. В конце концов, сжатие в этих случаях основано на том, что вы записываете. Запись сплошного зеленого экрана в течение 1 часа занимает значительно меньше диска, чем запись движущегося фона с постоянно меняющимся передним планом или, возможно, последовательностью фракталов. Там нет никакого способа сделать хорошую оценку заранее.

0 голосов
/ 07 января 2010

Вы можете оценить размер сжатия в будущем только по коэффициентам сжатия, полученным за последние x секунд. Не иметь слишком большое значение или слишком маленькое.

Слишком малый период времени будет означать, что время может дико измениться [в зависимости от количества движения в видео], а слишком длительное время будет означать, что время будет очень неточным.

Я предполагаю, что время в 30 секунд может обеспечить разумную степень точности

...