Потеря кадров при записи в файл с помощью DirectShow - PullRequest
0 голосов
/ 25 июня 2018

Наше приложение записывает несжатые видеокадры в файл avi.В случае недостаточной производительности кадры сбрасываются (вероятно, Avi Muxer).Это не может быть исправлено, конечно.Но наша проблема в том, что мы не нашли способ проинформировать пользователя об этом.Мы измеряем частоту кадров, которую мы посылаем в Avi Muxer, и это правильно.Но с недостаточной производительностью записи мы можем видеть, что потерянные кадры в записанном avi-файле.Кто-нибудь знает, как измерить количество записанных кадров в файл avi?

Я нашел соответствующий вопрос здесь , но это не дало мне ответа.

Ответы [ 2 ]

0 голосов
/ 25 июня 2018

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

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

0 голосов
/ 25 июня 2018

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

Таким образом, вы можете проверить свой фильтр захвата видео с помощью IAMDroppedFrames и узнать статистику сброса при захвате.

Далее вы можете проверить отметки временивидеокадры перед AVI Mux и интерпретировать необычные промежутки времени пропущенных кадров.Это можно сделать с помощью любого пользовательского фильтра, который у вас уже есть в конвейере, и если у вас его нет, вы можете добавить экземпляр Sample Grabber, просто чтобы следить за потоковым контентом.

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

...