Qt视频框架qtav构建编译使用

一:Qtav

1.首先说下:如果你的环境是下面网站中有的环境,你就可以直接使用,没必要重新编译构建。

直接下载作者编译好的,执行里面的脚本

2.我的环境是vs2013+qt5.7  环境恰恰和作者提供的环境不一样GG。我试者直接使用发现了很多编译链接问题,没办法重新编译qtav。


qtav的编译过程其实很简单:

  1. 下载 http://sourceforge.net/projects/qtav/files/depends/QtAV-depends-windows-x86%2Bx64.7z/download
  2. 下载后将里面的lib和include 下的文件放到你的qt环境中,我的qt目录是 C:\Qt\Qt5.7.0\5.7\msvc2013\ include里的放到该目录的include下,lib里的放到lib下。
  3. 下载qtav源码 ,我用git 
    git clone https://github.com/wang-bin/QtAV.git
    git submodule update --init
  4. 打开你git clone 下的目录 D:\QtAV 打开QtAV.pro

5.单击右键,执行qmake。

编译完成后:打开编译生成的文件夹执行,sdk_install.bat 这个脚本会把编译生成的lib文件和头文件放到我们的环境中。

二:使用qtav

使用的方法简单

1.修改pro文件

扫描二维码关注公众号,回复: 1894254 查看本文章

QT += avwidgets

2.主文件包含头文件

#include <QtAV>
#include <QtAVWidgets>

3.小的测试例子:

QFile vidfile("D:\\2518.avi");

          if (!vidfile.open(QIODevice::ReadOnly))
              return 1;

    AVPlayer player[2];
        WidgetRenderer renderer[2];

           renderer[0].setParent(&w);
          renderer[0].show();
          renderer[0].widget()->setWindowTitle(QString::fromLatin1("F:\\1.avi"));
          renderer[1].show();
          renderer[1].widget()->setWindowTitle(QString::fromLatin1("Test QBuffer. Play <=1M video from memory"));
          player[0].addVideoRenderer(&renderer[0]);
          player[1].addVideoRenderer(&renderer[1]);

          QByteArray data = vidfile.read(1024*1024);
          vidfile.seek(0);
          QBuffer buf(&data);
          if (buf.open(QIODevice::ReadOnly)) {
              player[1].setIODevice(&buf);
          }
          player[0].setIODevice(&vidfile);
          player[0].play();
          player[1].play();

特别提醒:在播放的时候需要dll文件,自己拷贝到里面!。

猜你喜欢

转载自blog.csdn.net/u013372900/article/details/80924593
今日推荐