Я использую DirectShow для записи 1920x1080 60fps из avermedia live gamer portable 2 plus в файл avi. Когда я иду к воспроизведению файла, длина всегда больше, чем я записал. Например, запись 20 секунд, файл показывает 28 секунд.
Я пробовал события с метками времени, используя gettickcoun64, чтобы дать мне относительное истекшее время, и я также использовал функцию GetCurrentPosition AVIMUX IMediaSeeking. Оба хорошо коррелируют друг с другом и с фактическим прошедшим временем. Однако, когда я открываю файл после завершения записи, файл всегда кажется длиннее.
График фильтра очень прост, он включает только устройство захвата, устройство захвата звука, AVIMUX и средство записи файлов.
Я попытался удалить звук и получить тот же результат, 28 секунд вместо 20.
Если я уменьшу частоту кадров до 50 кадров в секунду, времена совпадут. Если я уменьшу размер изображения 1280 x 768 60 кадр / с, файлы не будут совпадать, похоже, что они связаны с файлом AVI и 60 кадр / с?
Интересно, что если я посмотрю на файл с MediaInfo, он скажет, что файл длится всего 20 секунд (что я и ожидал), но загружается в Windows Media Player или Directshow Player, и они говорят, 28 секунд.