2010-01-18 4 views
0

(Извините за мой английский, это урод из Лос-Анджелеса) Я пытаюсь закончить процесс trascoding в VB6.0, я работаю с ffmpeg, его очень хорошим транскодиром, чтобы закончить проект я хочу прогресс бара для процесса trascoding но это так очень трудно, сначала я должен понять, как программа может рассчитать время, оставшееся до процесса, если у меня есть входыРасчет битовой скорости

  • Средних Bitrate скорость
  • кадров
  • Начальный размер файла.

Я пытаюсь: Размер файла (KB)/Средний битрейт Kb/s.

Теоретически это должно работать, но рассчитанное время оно очень мало, чем обрабатывается в реальном времени. У кого-то есть представление об этом, какова формула (отрезанная), чтобы вычислить время, оставшееся в процессе trascoding. в этой замечательной сети я нахожу много ответов на mys projects.

+0

Лос-Анджелес? Это объясняет некоторые вещи. – JMD

+0

Не используйте обратно апострофы, это не интересно. –

+0

Простите всех так же, как я изучаю программирование, я учусь говорить и писать по-английски, спасибо за понимание, что я живу в Лос-Анджелесе, но я из Аргентины ... – Geovanny1974

ответ

1

Битрейт не поможет вам в расчете прогресса.

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

0

Общее решение для «оставшегося времени», учитывая:

  • Ряд total_units, что означает размер, количество единиц и т.д., чтобы быть обработаны
  • Ряд units_processed, который представляет, сколько M, есть были обработаны до сих пор
  • Ряд start_seconds, что дает время в секундах с момента начала операции

является:

seconds_elapsed = current time - start time 
seconds_per_unit = seconds_elapsed/units_processed 
units_left = total_units - units_processed 
seconds_remaining = unit_left/seconds_per_unit 

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