libyuv提供的ConvertToI420函数可实现裁剪、旋转和垂直翻转功能,结果为I420,即yuv420p,使用示例如下。
libyuv::ConvertToI420(videoData, srcWidth * srcHeight * 3 / 2,
dstFrame, dstWidth,
dstFrame + dstWidth * dstHeight, dstWidth / 2,
dstFrame + dstWidth * dstHeight * 5 / 4, dstWidth / 2,
100, 100, // 以左上角为原点,裁剪起始点
srcWidth, srcHeight,
dstWidth, dstHeight,
libyuv::kRotate0,
libyuv::FOURCC_I420);
值得注意的是,libyuv做视频裁剪时,cropXY只能是偶数,否则会出现颜色出错现象。
网友评论