我正在本教程的帮助下编写一些代码,并使用 ffmpeg 和 SDL 的最新开发库。我被困在必须在屏幕上显示解码帧(AVFrame)的地方。我倾向于执行上述任务,即使用 SDL 2.0 的最新 API在屏幕上显示 AVFrame(在使用 SDL_Window 的同时使用渲染器和纹理)。坦率地说,我不是SDL_Renderer、SDL_Texture 以及与它们相关的功能方面的专家。但我正在阅读 SDL 2.0 官方网站上的文档并逐步完成它们。
有没有办法使用 SDL 2.0 API 执行以下操作:
将原生帧格式转换为YUV风格并显示出来。
(或者)
如果可能,显示框架,而无需将其从原生格式转换。
我想使用渲染器和纹理来完成上述操作。似乎没有一种简单的方法可以与他们合作。
谁能指导我完成上述任务的步骤?
PS:虽然我没有明确尝试过,但我遇到了一些通过将 AVFrame 格式(本机)转换为 RGB 在屏幕上显示 AVFrame 的方法。但我不希望将原生帧格式(主要是 YUV)转换为 RGB,因为它的计算成本很高。
格式之间的转换由 sws_scale() 完成