300行代码实现FFMpeg+CUDA+OpenGL的硬解码+渲染全流程

使用FFMpeg进行H264的解码,在本人之前的多篇博客都有所提及:

https://blog.csdn.net/weixinhum/article/details/37731011

https://blog.csdn.net/weixinhum/article/details/95207671

https://blog.csdn.net/weixinhum/article/details/95479565

然而这些博客没有实现我心目中最理想的解码和渲染模式,即:

  1. 可轻松跨平台
  2. 调用GPU解码核心(而非CPU软件)解码
  3. 解码后可直接在GPU上进行渲染(不拷贝回CPU)
  4. 代码非常简洁。

为了达到上面所述的目标,本人尝试了非常多的操作。因为要跨平台(Windows+Linux),所以不能使用dx系列接口(如dxva2等是Windows独占的接口)的方案,这直接就堵死了最好实现的一个路径。而更加严重的问题在于只有dx系列的接口兼容了AMD和英伟达的显卡(毕竟Windows用户量摆在那里),其他的接口都是厂商独有的,如英伟达的CUDA。因此,如果要跨平台使用一套代码,基本上就只能认厂商了(这里说基本上,而没说完全,是因为Vulkan应该可以做到&#x

你可能感兴趣的:(FFmpeg学习和实战,ffmpeg,音视频)