Я пытаюсь извлечь кадры из видео и преобразовать их в байтовые массивы (или аналогичный читаемый формат).Конечная цель - уметь сравнивать разные кадры.
Я использую библиотеку DirectShow и начал с их примера DxScan (часть их стандартных примеров, которые вы можете найти здесь: (http://sourceforge.net/projects/directshownet/files/DirectShowSamples/2010-February/)
В методе BufferCB я добавил это:
unsafe int ISampleGrabberCB.BufferCB( double SampleTime, IntPtr pBuffer, int BufferLen )
{
Bitmap v;
v = new Bitmap(m_videoWidth, m_videoHeight, m_stride,PixelFormat.Format32bppArgb, pBuffer);
MemoryStream buf = new MemoryStream();
v.Save(buf, ImageFormat.Bmp);
byte[] currentImage = buf.GetBuffer();
...
Проблема в том, что после вызова метода v.save код переходит наверх, а не продолжает. Таким образом, мой байтовый массив остаетсяпусто.
Как я могу решить эту проблему? Или есть лучший способ получить отдельные байты?
Thx