Используйте DirectShow для записи в AVI из источника, отличного от DirectShow - PullRequest
1 голос
/ 03 февраля 2012

Это может быть глупый вопрос, но мне трудно осмыслить, что мне нужно сделать здесь ... В прошлом я использовал DirectShow для подключения к камере и захвата AVI с использованием фильтра источника, AVIMux, фильтр сжатия, запустить график и т. д ... кусок пирога.В этом конкретном случае я получаю уведомление, когда мой драйвер камеры, отличный от DirectShow, имеет готовый буфер.Я получаю уведомление, а затем иду и беру BYTE * и отображаю его с помощью GDI.Теперь мне также нужно создать AVI с этими буферами.Концептуально для меня имеет смысл использовать что-то вроде vfw и записывать в поток AVI каждый раз, когда я получаю буфер, конечно, vfw - старая технология, и у меня также были некоторые проблемы, заставляющие это работать (как я писал в другом форуме),Как я могу вставить эти буферы в DirectShow AVI Mux и записать в файл?Должен ли я создать свой собственный фильтр исходного кода для получения этих буферов, а затем добавить свой фильтр исходного кода и avi mux на график фильтра?Спасибо за любые советы

1 Ответ

2 голосов
/ 03 февраля 2012

Итак, у вас есть BYTE* с данными видеокадра.Это очень близко к тому, что вы предполагали.Вы можете использовать VFW AVIFileOpen и друзей для записи в файл AVI или добавить данные в конвейер DirectShow.Чтобы сделать последнее, вы обычно делаете свой PushSource -подобный фильтр и отправляете видеокадры оттуда (через AVI Mux в File Writer).

...