|
公司有一个项目需要编写在framebuffer模式下运行的可以播放视频的qt-embedded应用程序,我对qt,ffmpeg,sdl都比较熟悉。知道如何在用sdl播放ffmpeg解码后的帧。
所以现在有两种方案,一种是把sdl嵌入到qt应用程序(在同一个界面里),还有一种就是把ffmpeg解码的帧直接用qt显示出来.个人比较倾向于用第二种方案去解决问题。
目前我只能走到这一步:
把帧转化为YUV格式后存放在pict中- AVPicture pict;
- // Convert the image into YUV format that SDL uses
- img_convert(&pict, PIX_FMT_YUV420P, (AVPicture *)pFrame, pCodecCtx->pix_fmt, pCodecCtx->width, pCodecCtx->height);SDL_UnlockYUVOverlay(bmp);
复制代码
AVPicture的结构体里的内容是这样的,但是我不懂里面装的数据的含义,只知道里面是图片格式的二进制数据 - typdef struct AVPicture {
- unit8_t *data[4];
- int linesize[4];
- } AVPicture;
复制代码
下面如果使用sdl的话,可以用函数SDL_DisplayYUVOverlay就可以显示这个帧了,但是我不知道用qt如何显示。请问realtang和其他大虾能提供一些帮助吗?谢谢 |
|