Получить необработанные данные из org.bytedeco.javacv.Frame - PullRequest
0 голосов
/ 03 мая 2018

Я хочу получить необработанные данные из javacv Frame.

Я использую FFmpegFrmaeFilter, чтобы вращать предварительный просмотр камеры Android. Итак, я вытаскиваю Frame из FFmpegFrameFilter и затем предоставляю конвертированный byte[] в MediaCodec.

Но при этом я получаю неправильные данные (зеленая картинка). Я беру необработанные данные из Frame.Image[0].array();

Есть ли другой способ получения необработанных данных из фрейма, который я могу передать Mediacodec.

1 Ответ

0 голосов
/ 03 мая 2018

Зеленая картинка, скорее всего, означает, что вы пропускаете нули для цветовых составляющих изображения. Камера Android обычно генерирует изображения YUV 420, где у вас есть массив яркости ширина * высота (Y), за которым следуют U и V, ширина / 2 * высота / 2 каждое.

FFmpegFrameFilter понимает различные форматы кадров, но это также зависит от некоторой эвристики , которая выводит формат входного пикселя из Frame параметров.

MediaCodec может принимать кадры в гибком формате YUV 420 , но вы несете ответственность за правильную настройку Изображение .

...