IDEA版本:2020.2
LWJGL版本:3.2.3
JavaCV版本:1.5.4
通过JavaCV的FFmpegFrameGrabber解码视频在把每一帧是画面用LWJGL显示出来
其实没什么难度,就是把JavaCV的FFmpegFrameGrabber解码出来的Frame转成LWJGL可以显示的数据,通过测试发现frame.image[0]的数据可以直接给glTexImage2D进行加载,就是RGB值对不上,Frame的默认格式好像是BGR,只要在解码时设置解码格式就好了frameGrabber.setPixelFormat(avutil.AV_PIX_FMT_RGB24);
通过测试JavaCV我就想BufferedImage的数据是否也可以直接用LWJGL显示不用进行转换,最后发现只有TYPE_4BYTE_ABGR的数据是可以直接显示,只是LWJGL显示的是rgba格式的,所以在Shader里要改成out_Color = vec4(rgba.a,rgba.b,rgba.g,rgba.r);
OpenCV应该也是可以直接显示数据的