android - 如何通过libyuv将NV21格式的android相机预览数据转换为i420?

标签 android android-camera libyuv

我通过以下方式接收 NV21 格式的预览数据:

public void onPreviewFrame(byte[] data, Camera camera)

我想通过libyuvdata 转换为I420 格式.看来 include/libyuv/convert.h 中的 NV21ToI420ConvertToI420 是我需要的。

// Convert NV21 to I420.
LIBYUV_API
int NV21ToI420(const uint8* src_y, int src_stride_y,
           const uint8* src_vu, int src_stride_vu,
           uint8* dst_y, int dst_stride_y,
           uint8* dst_u, int dst_stride_u,
           uint8* dst_v, int dst_stride_v,
           int width, int height);


// Convert camera sample to I420 with cropping, rotation and vertical flip.
LIBYUV_API
int ConvertToI420(const uint8* src_frame, size_t src_size,
              uint8* dst_y, int dst_stride_y,
              uint8* dst_u, int dst_stride_u,
              uint8* dst_v, int dst_stride_v,
              int crop_x, int crop_y,
              int src_width, int src_height,
              int dst_width, int dst_height,
              enum RotationMode rotation,
              uint32 format);

有没有一些例子可以做到这一点?

最佳答案

最后,我找到了一个演示:

https://github.com/zenith22/libyuvDemo.git

希望对您有所帮助!

更新:

我添加了一个项目:

https://github.com/jpxiong/NV21CameraPreviewToI420Demo.git

更多详情,请阅读README.md

关于android - 如何通过libyuv将NV21格式的android相机预览数据转换为i420?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32963581/

相关文章:

android - Android 中 Textview 的最大行数限制?

java - 如何镜像显示OpenCV JavaCameraView前置摄像头(Android)?

c - 如何通过 libyuv::I420Scale 为 android 前置摄像头实现 Mirror?

android - 使用 libyuv 库缩放 YUV 图像时的问题

java - 将图像从一个 ImageButton 传输到另一个

java - 更改位置设置

android - 如何解决android studio中的gradle冲突?

android - 相机 - 开始录制视频后预览更改

Android,操纵相机预览帧

android - 将YUV420Sp图像逆时针旋转90度