Java tutorial
//package com.java2s; public class Main { public static byte[] NV21toYUV420PackedPlanar(byte[] input, byte[] output, int width, int height) { /* * COLOR_FormatYUV420Planar is I420 which is like YV12, but with U and V reversed. * So we just have to reverse U and V. */ final int frameSize = width * height; final int qFrameSize = frameSize / 4; System.arraycopy(input, 0, output, 0, frameSize); // Y for (int i = 0; i < qFrameSize; i++) { output[frameSize + i + qFrameSize] = input[frameSize + i * 2 + 1]; // Cb (U) output[frameSize + i] = input[frameSize + i * 2]; // Cr (V) } return output; } }