环境:
Ubuntu16.04
版本号:
FFmpeg 4.1.3
SDL 2.0.9
安装步骤:
1. 下载安装包
FFmpeg
mkdir ffmpeg
wget https://ffmpeg.org/releases/ffmpeg-4.1.3.tar.bz2
SDL
mkdir sdl2
wget https://www.libsdl.org/release/SDL2-2.0.9.tar.gz
2 编译
FFmpeg
cd ffmpeg
mkdir build
cd build
../configure --prefix=/usr/local/ffmpeg
make
make install
SDL
cd sdl2
mkdir build
cd build
../configure --prefix=/usr/local/sdl2
make
make install
3 测试
使用QT中测试:新建非QT的纯C++ 项目
项目配置文件
TEMPLATE = app
CONFIG += console c++11
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += main.cpp
INCLUDEPATH += /usr/local/ffmpeg/include
INCLUDEPATH += /usr/local/sdl2/include
LIBS+= -L/usr/local/ffmpeg/lib \
-lavcodec \
-lavdevice \
-lavfilter \
-lavformat \
-lavutil \
-lswresample \
-lswscale
LIBS += -L/usr/local/sdl2/lib/ \
-lSDL2
main.cpp
#include <iostream>
using namespace std;
#ifdef __cplusplus
extern "C"
{
#include "libavutil/avutil.h"
#include "SDL2/SDL.h"
#include "SDL2/SDL_revision.h"
}
#endif
int main()
{
cout << "av_version_info is " << av_version_info() << endl;
SDL_version compiled;
SDL_version linked;
/* Enable standard application logging */
SDL_LogSetPriority(SDL_LOG_CATEGORY_APPLICATION, SDL_LOG_PRIORITY_INFO);
#if SDL_VERSION_ATLEAST(2, 0, 0)
SDL_Log("Compiled with SDL 2.0 or newer\n");
#else
SDL_Log("Compiled with SDL older than 2.0\n");
#endif
SDL_VERSION(&compiled);
SDL_Log("Compiled version: %d.%d.%d.%d (%s)\n",
compiled.major, compiled.minor, compiled.patch,
SDL_REVISION_NUMBER, SDL_REVISION);
SDL_GetVersion(&linked);
SDL_Log("Linked version: %d.%d.%d.%d (%s)\n",
linked.major, linked.minor, linked.patch,
SDL_GetRevisionNumber(), SDL_GetRevision());
SDL_Quit();
return 0;
}