Mat转AVFrame

Mat转AVFrame

void MainWindow::saveFrame_YUV_ToFile(cv::Mat frame)
{
    int w = 640;
    int h = 480;
    int bufLen = w*h*3/2;
    unsigned char* pYuvBuf = new unsigned char[bufLen];

    FILE* pFileOut = fopen("/home/yuv_temp.yuv", "a+");
    if(!pFileOut){
        ptf_err("error-----------------------");
        return;
    }

    cv::Mat yuvFrame;
    cv::cvtColor(frame, yuvFrame, cv::COLOR_RGB2YUV_I420);
    memcpy(pYuvBuf, yuvFrame.data, bufLen*sizeof(unsigned char));

    fwrite(pYuvBuf, bufLen*sizeof(unsigned char), 1, pFileOut);

    fclose(pFileOut);
    delete[] pYuvBuf;
}

你可能感兴趣的:(OpenCV,rk3588,c++,开发语言,opencv,计算机视觉,音视频)