实时视频IMU采集项目(1): 在Qt中使用FFmpeg库

优采云 发布时间: 2020-08-07 08:15

  概述

  要实现项目中视频流的实时传输和显示,最常见的是编码和解码操作. 如果您自己实现H.264的编码和解码,则将花费大量时间和精力. 因此,通常使用开源H.264编*敏*感*词*. 所谓的编*敏*感*词*是用于实现编码和解码,输入原创数据流以及输出H.264编码流的代码.

  在Ubuntu16.04下安装FFmpeg

  首先在官方网站上下载最新的FFmpeg压缩包源代码,然后使用以下命令解压缩:

  $ tar xvf ffmpeg-3.4.2.tar.bz2

  然后进入解压缩的文件夹以查看安装步骤:

  $ cd ffmpeg-3.4.2

$ cat INSTALL.md

  显示内容如下:

  安装FFmpeg: 输入./configure创建配置. 配置列表

  通过运行configure --help打印

  选项.

  可以从与FFmpeg源不同的目录中启动

  configure,以在树外构建对象. 为此,请在启动配置时使用绝对路径,例如/ ffmpegdir / ffmpeg / configure. 然后键入make来构建FFmpeg. 需要GNU Make 3.81或更高版本. 键入make install以安装您构建的所有二进制文件和库.

  注意

  默认情况下,非系统依赖项(例如libx264,libvpx)处于禁用状态.

  请按照上述步骤进行安装:

  $ ./configure --prefix=/home/string/ffmpeg3.4.2 --enable-shared --disable-static

  提醒: 找不到Yasm / nasm或太旧. 使用–disable-yasm进行严重破坏的构建.

  发现未安装yasm,因此请安装yasm:

  $ sudo apt-get install yasm

  安装后,重新执行上述第一步以生成配置文件

  $ make

  $ make install

# 安装后,查看ffmpeg版本

cd ~/ffmpeg3.4.2/bin

./ffmpeg -version

  安装成功.

  Qt导入FFmpeg库

  首先创建一个新的Qt项目,默认情况下每个人都会知道这一点. 下一步是根据先前的安装目录配置Qt pro文件. 如下图所示:

  

  核心是添加FFmpeg库目录和库文件路径信息.

  INCLUDEPATH += /home/string/ffmpeg3.4.2/include

LIBS += -L /home/string/ffmpeg3.4.2/lib -lavcodec -lswresample -lavutil -lavformat -lswscale

  下一步是修改main.cpp文件,以测试FFmpeg文件是否成功导入.

<p># main.cpp

#include "mainwidget.h"

#include

#include

using namespace std;

// 由于建立的是C++工程,编译时使用的是C++编译器编译,

// 而FFmpeg是C的库,因此这里需要加上extern "C",否则会提示各种未定义

extern "C"

{

#include "libavcodec/avcodec.h"

#include "libavformat/avformat.h"

#include "libavfilter/avfilter.h"

#include "libswresample/swresample.h"

#include "libavdevice/avdevice.h"

}

int main(int argc, char *argv[])

{

QApplication a(argc, argv);

MainWidget w;

w.show();

cout

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线