Чтение из открытого файла AVI - PullRequest
0 голосов
/ 13 июля 2011

Я разрабатываю программу, которая будет записывать видео с карты, совместимой с DirectShow, в файл AVI.Вполне возможно, что файл AVI будет записан в течение нескольких часов.Есть ли способ воспроизвести видео из файла, пока он еще записывается?Если да, могу ли я определить начальную и конечную точки в файле, который будет содержать мой клип?После того, как я воспроизведу клип, я больше не буду его использовать, поэтому мне не нужно будет сохранять его как новый файл AVI.Будет ли сохранение отдельных снимков кадров лучшим способом для этого?

1 Ответ

1 голос
/ 14 июля 2011

Есть две проблемы.Во-первых, индексная таблица записывается в файл только тогда, когда график останавливается (это верно для AVI и MP4).Другое - программа чтения файлов открывает файлы с помощью FILE_SHARE_READ.

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

Альтернативы: вы можете захватить файл по секциям, используя что-то вроде GMFBridge, чтобы переключиться на новый выходной файл без остановки графика.Тогда вы можете получить доступ к предыдущим выходным файлам, но не к текущему.Или вы можете использовать неиндексированный формат, такой как mpeg-2 PS.

G

...