(一) Ubuntu下Qt引入FFmpeg

Qt中FFmpeg的集成与使用
本文介绍了如何在Qt环境中集成FFmpeg库,并通过一个简单的示例展示了如何调用FFmpeg的功能。文章还提供了配置文件及代码示例,帮助读者理解如何在Qt项目中正确引用FFmpeg。

目录

前言

已经在linux下编译安装好了FFmpeg,同时也简单的编译了开发板版本的FFmpeg。但是看网上讲,还有许多东西没有加入的FFmpeg中去,所以还是准备先看研究研究代码!发现云天之巅博主的基础音视频教程,写的简单明了,博主的第一个FFmpeg就是基于云天之巅博主的程序而来的,从零开始学习音视频编程技术(四) FFMPEG的使用,我直接使用的是linux平台开发,和windows下也差不多!感谢分享!

概述

音视频开发中最常做的就是编解码操作,如果想要自己实现编码h.264,需要对h.264非常了解(据云天之巅博主说有三百多页,表示代价太大,而且没有必要)。好在H264的编码器,有人已经写好了,而且还提供了源代码。主流的h264编码器有 x264、t264等。
博主记:所谓编码器,也就是用于实现编码的代码,输入原始数据流,输出h264编码的码流。
FFmpeg是一个集成各种编解码器的库,从视频采集、视频编码到视频传输(包括RTP/RTCP/RTMP/RTSP等协议)都可以使用FFmpeg来完成。

Qt引入FFmpeg

根据从零开始学习音视频编程技术(四) FFMPEG的使用成功引入了FFmpeg。注意的就是在helloFFmpeg.pro中引入FFmpeg的头文件和库,代码如下:

#-------------------------------------------------
#
# Project created by QtCreator 2018-01-16T10:43:01
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = helloFFmpeg
TEMPLATE = app

# ffmpeg
FFMPEG_INCLUDE  = /xxx/ubu_ffmpeg/include
FFMPEG_LIB      = /xxx/ubu_ffmpeg/lib

SOURCES += main.cpp\
        widget.cpp \
    helloffmpeg.cpp

HEADERS  += widget.h \
    helloffmpeg.h

FORMS    += widget.ui

INCLUDEPATH +=  $$FFMPEG_INCLUDE \

LIBS += $$FFMPEG_LIB/libavcodec.so      \
        $$FFMPEG_LIB/libavdevice.so     \
        $$FFMPEG_LIB/libavfilter.so     \
        $$FFMPEG_LIB/libavformat.so     \
        $$FFMPEG_LIB/libavutil.so       \
        $$FFMPEG_LIB/libswresample.so   \
        $$FFMPEG_LIB/libswscale.so      \
        $$FFMPEG_LIB//libpostproc.so

其中,ubu_ffmpeg是我编译的ffmpeg库,helloffmpeg.cpphelloffmpeg.h的代码如下:
- helloffmpeg.h

#ifndef HELLOFFMPEG_H
#define HELLOFFMPEG_H

int versionFFmpeg();

#endif // HELLOFFMPEG_H
  • helloffmpeg.cpp
#include "helloffmpeg.h"
#include <iostream>

// Becase FFmpeg is a c lib, we should add extern "C"{}
extern "C"
{
    #include <libavcodec/avcodec.h>
    #include <libavformat/avformat.h>
    #include <libavfilter/avfilter.h>
}

using namespace std;

int versionFFmpeg()
{
    cout << "Hello FFmpeg" << endl;
    av_register_all();
    unsigned version = avcodec_version();
    cout << "version is:" << version;

    return 0;
}

结果输出:

Hello FFmpeg
version is:3763044

总结

虽然不明白代码的意思,但是在Qt中已经成功的引入的ffmpeg,搭建好环境才能进行后面的学习,感谢云天之巅博主!

链接地址

从零开始学习音视频编程技术(四) FFMPEG的使用
从零开始学习音视频编程技术(34) Linux篇之编译ffmpeg

评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值