Как справиться с видеопотоками DHAV (.dav)?C#

Место общения программистов C#
Ответить
Anonymous
 Как справиться с видеопотоками DHAV (.dav)?

Сообщение Anonymous »

У меня есть приложение WPF, где мне нужно обрабатывать dhav (.dav) видеопоток во время выполнения из цифрового видеорегистратора (DVR) . Я использую SDK, который можно найти здесь Dahua SDK Search < /p>

Код: Выделить всё

SDK: General_NetSDK_Eng_Win64_IS_V3.052.0000002.0.R.201103
Мне нужно обрабатывать каждый отдельный кадр из видеопотока, преобразовать его в растровое значение , а затем отображает его в управлении изображением WPF . Что -то вроде: Декодер MJPEG < /p>
Проблема в том, что я не могу найти никакой документации о том, как обрабатывать эти данные, и образцы из SDK также не показывают, что вместо этого они строятся с Winforms, и они только передают ручку окна в управлении Picture Box к функции экспортированного DLL, и «магически» показывает потоковое видео: < /p>

[DllImport(LIBRARYNETSDK)]
public static extern IntPtr CLIENT_RealPlayEx(IntPtr lLoginID, int nChannelID, IntPtr hWnd, EM_RealPlayType rType);
< /code>

uss: 'hwnd' param - это ручка окон для отображения видео в. и только тогда я могу преобразовать его в какой -то тип, который я могу обрабатывать. private void RealDataCallback(IntPtr lRealHandle, uint dwDataType, IntPtr pBuffer, uint dwBufSize, IntPtr param, IntPtr dwUser)
{
switch (dwDataType)
{
case 0: // original data
break;
case 1: // frame data
HandleFrameData(lRealHandle, dwDataType, pBuffer, dwBufSize, param, dwUser);
break;
case 2: // yuv data
break;
case 3: // pcm audio data
break;
}
}

private void HandleFrameData(IntPtr lRealHandle, uint dwDataType, IntPtr pBuffer, uint dwBufSize, IntPtr param, IntPtr dwUser)
{
// The pBuffer parameter format is DHAV (.dav)
byte[] buff = new byte[dwBufSize];
Marshal.Copy(pBuffer, buff, 0, (int)dwBufSize);

using (var ms = new MemoryStream(buff))
{
}
}
< /code>
Обновление < /h3>
Я могу преобразовать данные YUV, представленные в Funcion Callback в RGB, но это не идеальное решение. Было бы намного лучше (и быстрее), если бы я мог преобразовать исходные (.dav) данных. Любая помощь будет оценена.

Подробнее здесь: https://stackoverflow.com/questions/666 ... eo-streams
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»