2010-01-07 3 views
2

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

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

Любые мысли?

FYI Я использую C# и DirectShow.

ответ

1

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

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

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

0

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

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

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

Смежные вопросы