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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Windows Phone Захват и передача/сохранение звука, получаемого с микрофона http://www.cyberforum.ru/windows-phone-dev/thread1785914.html
Здравствуйте. Передо мной стоит такая задача: мне нужно брать звук из микрофона и передавать его. На данный момент я могу захватывать звук двумя способами: С помощью mediacapture; С помощью...
Windows Phone Трудности с настройкой TexBox Делаю приложение для Windows Phone 7, в приложении есть три TextBoxа, в которые вводятся числа, в том числе и дробные, при нажатии на кнопку программа обсчитывает их взаимоотношение и выдает ответ.... http://www.cyberforum.ru/windows-phone-dev/thread1785142.html
Windows Phone Программное изменение цвета grid
привет подскажите как можно изменить цвет grid программно
Windows Phone Счетчик времени для плеера
Помоги создать счетчик времени для плеера. Типа после 00:60, должна появиться первая минута, а секунды идти с начала (01:00), но у меня просто продолжаются идти секунды (60, 61, 62 и т.д.), как это...
Windows Phone При выборе видео приложение вылетает http://www.cyberforum.ru/windows-phone-dev/thread1783271.html
private void Video_Click(object sender, RoutedEventArgs e) { FileOpenPicker filePicker = new FileOpenPicker(); filePicker.SuggestedStartLocation =...
Windows Phone Как достучаться до listview? Создал я Hub примерно такой: <Hub x:Name="Hub" x:Uid="Hub" Margin="0,76,0,0"> <HubSection x:Uid="HubSection1" Header="Карта" FontSize="20"> <DataTemplate> ... подробнее

Показать сообщение отдельно
AynurSib23
0 / 0 / 0
Регистрация: 26.07.2016
Сообщений: 3

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

27.07.2016, 13:57. Просмотров 878. Ответов 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());
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru