使用ffmpeg+mpp进行硬解码显示,用FFMPEG读取AVPacket,再使用MPP进行硬解码,将AVPacket转换成MppPacket以后进行硬解码得到MppFrame,如何将MppFrame转换成AVFrame呢?或者得到MppFrame以后如何显示,有哪些方法呢?
3条回答 默认 最新
- MarkHan_ 2023-06-19 18:05关注
SDL_Window* window = nullptr; SDL_Renderer* renderer = nullptr; SDL_Texture* texture = nullptr; // 初始化 SDL if (SDL_Init(SDL_INIT_VIDEO) < 0) { // 初始化失败,处理错误 } // 创建窗口 window = SDL_CreateWindow("MppFrame Display", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, avFrame->width, avFrame->height, SDL_WINDOW_SHOWN); if (!window) { // 窗口创建失败,处理错误 } // 创建渲染器 renderer = SDL_CreateRenderer(window, -1, 0); if (!renderer) { // 渲染器创建失败,处理错误 } // 创建纹理 texture = SDL_CreateTexture(renderer, SDL_PIXELFORMAT_IYUV, SDL_TEXTUREACCESS_STREAMING, avFrame->width, avFrame->height); if (!texture) { // 纹理创建失败,处理错误 } // 更新纹理数据 SDL_UpdateYUVTexture(texture, nullptr, avFrame->data[0], avFrame->linesize[0], avFrame->data[1], avFrame->linesize[1], avFrame->data[2], avFrame->linesize[2]); // 渲染纹理到窗口 SDL_RenderClear(renderer); SDL_RenderCopy(renderer, texture, nullptr, nullptr); SDL_RenderPresent(renderer); // 等待窗口关闭事件 SDL_Event event; while (SDL_WaitEvent(&event)) { if (event.type == SDL_QUIT) { break; } } // 释放资源 SDL_DestroyTexture(texture); SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit();
解决 1无用 1
悬赏问题
- ¥15 数据库原理及应用上机练习题
- ¥30 征集Python提取PDF文字属性的代码
- ¥15 如何联系真正的开发者而非公司
- ¥15 有偿求苍穹外卖环境配置
- ¥15 代码在keil5里变成了这样怎么办啊,文件图像也变了,
- ¥20 Ue4.26打包win64bit报错,如何解决?(语言-c++)
- ¥15 clousx6整点报时指令怎么写
- ¥30 远程帮我安装软件及库文件
- ¥15 关于#自动化#的问题:如何通过电脑控制多相机同步拍照或摄影(相机或者摄影模组数量大于60),并将所有采集的照片或视频以一定编码规则存放至规定电脑文件夹内
- ¥15 Arduino的wifi连接,如何关闭低功耗模式?