有谁知道如何将 Intel Media SDK(版本:Media SDK 2010)H.264 视频帧解码输出 NV12 格式转换为 RGB888(RGB24)位转换?
基本上媒体 SDK 解码器输出将是 NV12 格式,渲染需要 RGB24 位格式,所以如果有任何转换代码可用于转换 NV12-->RGB24 将对我们有很大帮助。
有谁知道如何将 Intel Media SDK(版本:Media SDK 2010)H.264 视频帧解码输出 NV12 格式转换为 RGB888(RGB24)位转换?
基本上媒体 SDK 解码器输出将是 NV12 格式,渲染需要 RGB24 位格式,所以如果有任何转换代码可用于转换 NV12-->RGB24 将对我们有很大帮助。
查看YUV 到 RGB 转换,然后您可以使用有关YUV 像素格式的信息(链接指向 NV12)作为第一个链接的输入并进行转换。
查看此代码:https ://github.com/andrechen/yuv2rgb 虽然它适用于 NV21,但唯一的区别是 UV (VU) 字节的顺序。您需要做的就是颠倒顺序(loadvu 函数):
static void loadvu(int& U, int& V, unsigned char const* &uv) {
U = (*uv++) - 128;
V = (*uv++) - 128;
}