Форум программистов, компьютерный форум CyberForum.ru

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
AynurSib23
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 3
#1

Как захватывать кадр из потока? - Windows Phone

27.07.2016, 13:57. Просмотров 719. Ответов 1

Здравствуйте.
Как захватывать кадр из видеопотока в WinRT? При этом этот кадр должен быть в одном из YUV форматов, желательно YUY2.
На данный момент я могу захватывать кадр несколькими способами:
  1. CapturePhotoToStream.
  2. GetPreviewFrameAsync.
При первом способе я получаю или BMP, или JPEG и т.д., и таким образом мне придется менять с RGB на YUY2 с просмотром всех пикселей. И это производится слишком долго. При втором способе я могу получить:
  1. SoftwareBitmap;
  2. Direct3DSurface.
При первом способе я могу получить SoftwareBitmap как в NV12, так и в YUY2. Но я не знаю, как проверить, работает ли это. То есть я могу сохранить байты, взятые из этого SoftwareBitmap, в .yuv файле, но я не могу открыть данное изображение.
А что делать с Direct3DSurface? Этот Surface всегда в YUY2. Так вот, как можно сохранить его в файл? В байты перевести именно его я не могу. Я могу получить байты лишь создав SoftwareBitmap из этого Surface, затем из созданного Bitmap могу получить байты. Вот код получения Direct3DSurface:
C#
1
2
3
4
5
6
7
8
try
{
    VideoFrame currentFrame = await this.mediaCapture.GetPreviewFrameAsync();
    _surface = currentFrame.Direct3DSurface;
    SoftwareBitmap softBitmap = await     SoftwareBitmap.CreateCopyFromSurfaceAsync(_surface);
    byte[] bytes = new byte[_surface.Description.Width * _surface.Description.Height * 2];
    softBitmap.CopyToBuffer(bytes.AsBuffer());
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
AynurSib23
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 3
01.08.2016, 14:32  [ТС]     Как захватывать кадр из потока? #2
Оказывается, выложенный ранее код работает.
Yandex
Объявления
01.08.2016, 14:32     Как захватывать кадр из потока?
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru