zoukankan      html  css  js  c++  java
  • 第43月第28天 libyuv裁剪

    1.

    NV21转化为I420

      对于如何获取Camera返回的YUV数据,不是本篇文章的重点,不了解的请自行百度谷歌。因为Camera返回的YUV数据只能是NV21和YV12两种,而libyuv的缩放旋转镜像的操作需要的是I420的数据格式,那么第一步就是将NV21(例子中Camera返回数据格式设置的是NV21)转化为I420了。方法如下:

    #include "libyuv.h"
    void nv21ToI420(jbyte *src_nv21_data, jint width, jint height, jbyte *src_i420_data) {
        jint src_y_size = width * height;
        jint src_u_size = (width >> 1) * (height >> 1);
    
        jbyte *src_nv21_y_data = src_nv21_data;
        jbyte *src_nv21_vu_data = src_nv21_data + src_y_size;
    
        jbyte *src_i420_y_data = src_i420_data;
        jbyte *src_i420_u_data = src_i420_data + src_y_size;
        jbyte *src_i420_v_data = src_i420_data + src_y_size + src_u_size;
    
    
        libyuv::NV21ToI420((const uint8 *) src_nv21_y_data, width,
                           (const uint8 *) src_nv21_vu_data, width,
                           (uint8 *) src_i420_y_data, width,
                           (uint8 *) src_i420_u_data, width >> 1,
                           (uint8 *) src_i420_v_data, width >> 1,
                           width, height);
    }

    https://www.jianshu.com/p/bd0feaf4c0f9

    2.

    NTESYUVConverter

    + (NTESI420Frame *)pixelBufferToI420:(CVImageBufferRef)pixelBuffer

                               withCrop:(float)cropRatio

                               targetSize:(CGSize)size

                         andOrientation:(NTESVideoPackOrientation)orientation

     




  • 相关阅读:
    两台centos,用yum install 安装,一台成功,一台失败
    django 删除默认app
    FFmpeg
    安装nginx
    django markdown格式化变量
    安装python3.8
    安装 docker
    Centos7 安装selenium webdriver环境
    收集网页数据方法
    logstash 6.3.2下载地址
  • 原文地址:https://www.cnblogs.com/javastart/p/12795935.html
Copyright © 2011-2022 走看看