使用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
然而这些博客没有实现我心目中最理想的解码和渲染模式,即:
- 可轻松跨平台
- 调用GPU解码核心(而非CPU软件)解码
- 解码后可直接在GPU上进行渲染(不拷贝回CPU)
- 代码非常简洁。
为了达到上面所述的目标,本人尝试了非常多的操作。因为要跨平台(Windows+Linux),所以不能使用dx系列接口(如dxva2等是Windows独占的接口)的方案,这直接就堵死了最好实现的一个路径。而更加严重的问题在于只有dx系列的接口兼容了AMD和英伟达的显卡(毕竟Windows用户量摆在那里),其他的接口都是厂商独有的,如英伟达的CUDA。因此,如果要跨平台使用一套代码,基本上就只能认厂商了(这里说基本上,而没说完全,是因为Vulkan应该可以做到&#x