NV21 формат преобразования байтов в mp4 - PullRequest
0 голосов
/ 14 декабря 2018

enter image description here Я получаю эту черную рамку из видео формата h264, я получаю поток данных с камеры с байтовым форматом NV21это формат .mp4, как я могу это сделать, как конвертировать в формат mp4 это?

private CameraProxy.CameraDataCallBack callBack = new CameraProxy.CameraDataCallBack() {

    @Override
    public void onDataBack(byte[] data, long length) {
        // TODO Auto-generated method stub
        Log.i(TAG, "length . " + length);

      //NV21 -> yuvImage -> jpeg -> bitmap
        YuvImage yuvImage = new YuvImage(data, ImageFormat.NV21, realPreviewSize.getWidth(), realPreviewSize.getHeight(), null);
        ByteArrayOutputStream os = new ByteArrayOutputStream();
        yuvImage.compressToJpeg(new Rect(0, 0, realPreviewSize.getWidth(), realPreviewSize.getHeight()), 100, os);
        byte[] jpegByteArray = os.toByteArray();
        Bitmap bitmap = BitmapFactory.decodeByteArray(jpegByteArray, 0, jpegByteArray.length);
        try {
            fos = new FileOutputStream(photo);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        bitmap.compress(Bitmap.CompressFormat.PNG, 100, fos);
        try {
            fos.close();
           Bitmap img = BitmapFactory.decodeFile(photo.getAbsolutePath());
           runOnUiThread(new Runnable() {
               @Override
               public void run() {
                   im.setImageBitmap(img);
               }
           });

        } catch (IOException e) {
            e.printStackTrace();
        }

    }
};
...