目录
前言
已经在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.cpp和helloffmpeg.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
Qt中FFmpeg的集成与使用

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





