gpt4 book ai didi

ffmpeg - 使用 SDL 2.0 在屏幕上显示 AVFrame

转载 作者:行者123 更新时间:2023-12-02 19:28:12 25 4
gpt4 key购买 nike

我正在 this 的帮助下编写一些代码教程并使用最新的ffmpeg和SDL开发库。我陷入了必须在屏幕上显示解码帧(AVFrame)的地步。我倾向于使用最新的 SDL 2.0 API(使用渲染器和纹理以及 SDL_Window)来完成上述任务,在屏幕上显示 AVFrame。坦率地说,我不是 SDL_RendererSDL_Texture 以及与它们相关的函数的专家。但我正在阅读 SDL 2.0 官方网站上的文档并通过它们进行工作。

有没有办法使用 SDL 2.0 API 执行以下操作:

  • 将原生帧格式转换为YUV风格并显示。

    (或)

  • 如果可能,请显示该帧,而无需将其从 native 格式转换。

I want to do the above using Renderers and Textures. There doesn't seem to be an easy way to work with them.

任何人都可以指导我完成上述任务的步骤吗?

PS:虽然我没有明确尝试过,但我遇到了一些通过将 AVFrame 格式( native )转换为 RGB 来在屏幕上显示 AVFrame 的方法。但我不希望将 native 帧格式(主要是 YUV)转换为 RGB,因为它的计算成本很高。

格式之间的转换由 sws_scale() 完成

最佳答案

尝试 SDL2's YUV pixel formats 之一.

它们有几种平面和封装变体:

SDL_PIXELFORMAT_YV12: planar mode: Y + V + U (3 planes)

SDL_PIXELFORMAT_IYUV: planar mode: Y + U + V (3 planes)

SDL_PIXELFORMAT_YUY2: packed mode: Y0+U0+Y1+V0 (1 plane)

SDL_PIXELFORMAT_UYVY: packed mode: U0+Y0+V0+Y1 (1 plane)

SDL_PIXELFORMAT_YVYU: packed mode: Y0+V0+Y1+U0 (1 plane)

关于ffmpeg - 使用 SDL 2.0 在屏幕上显示 AVFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com