基于最新的ffmpeg5.0库+QT yuv转rgb图片查看器

本文档介绍如何下载最新版FFmpeg库,并在Qt环境中建立工程,配置编译器,链接库,处理头文件。接着详细阐述了关键的YUV到RGB转换函数`yuvToRgb`的实现,以及重绘事件`paintEvent`的处理。通过递归读取YUV文件并双击显示图像,展示了实际运行效果。作者因工作需要,为方便查看YUV格式图片而编写此程序,解决了现有应用的不便。

一、官网下载ffmpeg库

1.点击Windows图标下面的第一个库连接
官网地址:https://ffmpeg.org/download.html
库地址:https://www.gyan.dev/ffmpeg/builds/
请添加图片描述
2.选择发行版本库,这里我选择的是共享库5.0
请添加图片描述
3.解压后如下图所示,bin文件夹带有官方发行版本运行库xx.dll,lib文件夹带有我们所使用的开发库

请添加图片描述
请添加图片描述
请添加图片描述

二、建立QT工程

1.你可以和我一样,亦可以自行选择工程
请添加图片描述
2.pro工程套件配置,编译器选择64位的编译器,当然你也可以选择32位的编译器MinGw
请添加图片描述
3.pro文件链接ffmpeg库,注意,库有64位的,也有32位的,对应自己QT的MinGw的位数
在这里插入图片描述
4.包含头文件,由于ffmpeg库是由c语言编写,所以头文件声明为 extern "c”
在这里插入图片描述

三、编程

1.头文件

class MyTest : public QMainWindow
{
   
   
    Q_OBJECT

public:
    MyTest(QWidget *parent = nullptr);
    ~MyTest();

    void readDir(QString _dirname);
    void readFile(QString file_path);
    void readUiArg();
    void setUiArg();
    void yuvToRgb(void* str,AVPixelFormat yuv_fmt,uint32_t str_w, uint32_t str_h);
    void showImag(QString file_path);
protected:
    void paintEvent(QPaintEvent *event);

private slots:
    void slotGetOneFrame(QImage img);
    void slotBtnClicked();

    void on_listWidget_file_itemDoubleClicked(QListWidgetItem *item
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值