当前位置:   article > 正文

Qt使用FFmpeg播放视频_qt ffmpeg

qt ffmpeg

一、使用场景

  因为项目中需要加载MP4播放开机视频,而我们的设备所使用的架构为arm架构,其中缺乏一些多媒体库。安装这些插件库比较麻烦,所以最终决定使用FFmpeg播放视频。

二、下载编译ffmpeg库

2.1 下载源码

  源码下载路径:https://www.ffmpeg.org/download.html#build-windows

2.2 编译源码

  1) 解压:将源码放到指定目录,并运行"tar -jxvf ffmpeg-snapshot.tar.bz2"。若是xxx.tar.gz源文件,则用"tar -zxvf ffmpeg-xxx.tar.gz"。

  2) 创建构建目录,"cd ffmpeg", "mkdir build";

  3)编译:

  a) ubuntu编译: "./configure --enable-static --prefix=./build"

  b)arm交叉编译: "./configure --cc=xxx/aarch64-linux-gnu-gcc(QT指定的gcc路径) --cxx=xxx/aarch64-linux-gnu-g++ --enable-staticc(QT指定的g++路径) --prefix=./build --enable-cross-compile --arch=arm64 --target-os=linux"。

  4) make安装: "make && make install"。

  5) 运行:若需要运行ffmpeg则需要增加--enable-shared参数,并且添加环境变量"export LD_LIBRARY_PATH=xxx/build/lib/"。

  6)使用帮助: 在xxx/build/bin路径下运行"./ffmpeg --help"。

2.3 常见报错

  1) 交叉编译需要指定对应的gcc和g++编译器和其它的如平台参数,Linux的QTCreator可以通过如下选项查看对应的编译器路径,工程-》管理构建-》编译器-》指南(Manual)-》双击gcc或g++。注意在操作之前需要先选择工程当前的运行和构建平台为arrch64。

  2) make install 报错:"strip: Unable to recognise the format of the input file":将config.mak中的"Trip=strip"改为"Trip=arm -linux-strip"。

三、使用源码

  1.在工程中导入头文件和库,注意库顺序。eg:

  1. INCLUDEPATH += xxx/build/include
  2. LIBS += -Lxxx/xxx -lavformat\
  3. -lavdevice \
  4. -lavcodec \
  5. -lswresample \
  6. -lavfilter \
  7. -lavutil \
  8. -lswscale

  2.头文件

  1. #ifndef MAINWINDOW_H
  2. #define MAINWINDOW_H
  3. #include <QMainWindow>
  4. #include <QDebug>
  5. #include <QTimer>
  6. #include <QTime>
  7. #include <QAudioOutput>
  8. extern "C"
  9. {
  10. #include <libavcodec/avcodec.h>
  11. #include <libavformat/avformat.h>
  12. #include <libswscale/swscale.h>
  13. #include <libavdevice/avdevice.h>
  14. #include <libavformat/version.h>
  15. #include <libavutil/time.h>
  16. #include <libavutil/mathematics.h>
  17. #inclu
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/代码探险家/article/detail/758431
推荐阅读
相关标签
  

闽ICP备14008679号