|
本帖最后由 appleUncle 于 2020-5-14 09:41 编辑
我用的RK3399Pro入门教程(10)RTSP推流介绍中的rtsp推流代码,fedora系统。按照教程做的,推流拉流都很正常,调用RGA转格式,其中YUYV转NV12也是正常的,但是RGB24转NV12出现图像底部有2行像素数据乱码的情况(RGB24是opencv Mat cv8uc3的格式),具体见下图。我试过用RGA将YUYV转成RGB24是正常的,就是将RGB24转NV12出现2行像素乱码,感觉是RGA库转改格式的时候图像底部没有处理好?下图左边是正常RGB24图片,右边是RGB24转NV12后再转回RGB24的图片
下图是填充的纯黑RGB24图片转成NV12推流出去之后接收到的样子
注意底部有2行像素乱码
代码如下:
- int frame_size = 640 * 480 * 1.5*sizeof(unsigned char);
- unsigned char *frame_nv12 = NULL;
- frame_nv12 = (unsigned char *)malloc(frame_size);
- cv::Mat tmp= output.clone();
- RockchipRga *rga;
- rga = RgaCreate();
- rga->ops->initCtx(rga);
- rga->ops->setDstBufferPtr(rga, frame_nv12);
- rga->ops->setSrcBufferPtr(rga,(unsigned char *)tmp.data);
- rga->ops->setDstFormat(rga, V4L2_PIX_FMT_NV12, 640, 480);
- rga->ops->setSrcFormat(rga, V4L2_PIX_FMT_RGB24, 640, 480);
- rga->ops->setRotate(rga, RGA_ROTATE_NONE);
- rga->ops->go(rga);
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|