ubuntu ffmpeg 4.2.1 qt-5.12.10开发环境搭建
ubuntu安装qt5 Could not load the Qt platform plugin “xcb” in “” even though it was found.需要安装: sudo apt install --reinstall libxcb-xinerama0。在/root/qt5.12/Tools/QtCreator/bin目錄下啓動qt。然後關閉終端重新打開。
·
文章目录
1 创建目录
在home目录下创建
ffmpeg_sources:用于下载源文件
ffmpeg_build: 存储编译后的库文件
bin:存储二进制文件(ffmpeg,ffplay,ffprobe,X264,X265等)
cd ~
mkdir ffmpeg_sources ffmpeg_build bin
2 安装依赖
更新
sudo apt-get update
安装需要的组件
sudo apt-get -y install \
autoconf \
automake \
build-essential \
cmake \
git-core \
libass-dev \
libfreetype6-dev \
libsdl2-dev \
libtool \
libva-dev \
libvdpau-dev \
libvorbis-dev \
libxcb1-dev \
libxcb-shm0-dev \
libxcb-xfixes0-dev \
pkg-config \
texinfo \
wget \
zlib1g-dev
3 编译与安装
NASM
cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
tar xjvf nasm-2.14.02.tar.bz2 && \
cd nasm-2.14.02 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
Yasm
cd ~/ffmpeg_sources && \
wget -O yasm-1.3.0.tar.gz https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz && \
tar xzvf yasm-1.3.0.tar.gz && \
cd yasm-1.3.0 && \
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install
libx264
cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
cd x264 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
PATH="$HOME/bin:$PATH" make && \
make install
libx265
sudo apt-get install libnuma-dev && \
cd ~/ffmpeg_sources && \
git -C x265_git pull 2> /dev/null || git clone https://bitbucket.org/multicoreware/x265_git && \
cd x265_git/build/linux && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
PATH="$HOME/bin:$PATH" make && \
make install
libvpx
cd ~/ffmpeg_sources && \
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git && \
cd libvpx && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
PATH="$HOME/bin:$PATH" make && \
make install
libfdk-aac
cd ~/ffmpeg_sources && \
git -C fdk-aac pull 2> /dev/null || git clone --depth 1 https://github.com/mstorsjo/fdk-aac && \
cd fdk-aac && \
autoreconf -fiv && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install
libmp3lame
cd ~/ffmpeg_sources && \
wget -O lame-3.100.tar.gz https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz && \
tar xzvf lame-3.100.tar.gz && \
cd lame-3.100 && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make && \
make install
libopus
cd ~/ffmpeg_sources && \
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
cd opus && \
./autogen.sh && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install
ffmpeg安装包并解压
cd ~/ffmpeg_sources && \
wget -O ffmpeg-snapshot.tar.bz2 https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2 && \
tar xjvf ffmpeg-snapshot.tar.bz2 && \
cd ffmpeg && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure \
--prefix="$HOME/ffmpeg_build" \
--pkg-config-flags="--static" \
--extra-cflags="-I$HOME/ffmpeg_build/include" \
--extra-ldflags="-L$HOME/ffmpeg_build/lib" \
--extra-libs="-lpthread -lm" \
--bindir="$HOME/bin" \
--enable-gpl \
--enable-gnutls \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libmp3lame \
--enable-libopus \
--enable-libvorbis \
--enable-libvpx \
--enable-libx264 \
--enable-libx265 \
--enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r
錯誤解決
如果編譯ffmpeg報錯:
ERROR: gnutls not found using pkg-config
链接: gnutls 安裝鏈接
wget http://download.savannah.gnu.org/releases/lzip/lzip-1.20.tar.gz
tar zxvf lzip-1.20.tar.gz
cd lzip-1.20
./configure
make
make install
官网:https://gmplib.org/
wget https://gmplib.org/download/gmp/gmp-6.1.2.tar.lz
lzip -d gmp-6.1.2.tar.lz
tar xvf gmp-6.1.2.tar
cd gmp-6.1.2
./configure
make
make install
wget https://ftp.gnu.org/gnu/nettle/nettle-3.4.tar.gz
tar zxvf nettle-3.4.tar.gz
cd nettle-3.4
./configure
make
make check #测试一下
make install
官网:https://www.gnutls.org/download.html
wget ftp://ftp.gnutls.org/gcrypt/gnutls/v3.5/gnutls-3.5.9.tar.xz
xz -d gnutls-3.5.9.tar.xz
tar xvf gnutls-3.5.9.tar
cd gnutls-3.5.9
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig ./configure --with-included-libtasn1 --with-included-unistring --without-p11-kit
make
make install
環境變量配置

将 FFmpeg 添加至环境变量:
sudo vim ~/.bashrc
添加如下内容:export PATH=$PATH:FFmpeg安装路径/bin
保存文件(快捷键)::wq
配置动态链接库
sudo vim /etc/profile
光标移动至文件末尾
添加如下内容:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:FFmpeg 安装路径/lib
然後關閉終端重新打開
ffmpeg -version
4、安装qt-5.12.10
下载地址:https://download.qt.io/archive/qt/5.12/5.12.10/
添加環境變量
在/root/qt5.12/Tools/QtCreator/bin目錄下啓動qt
如果报错
ubuntu安装qt5 Could not load the Qt platform plugin “xcb” in “” even though it was found.
需要安装: sudo apt install --reinstall libxcb-xinerama0
5、QT使⽤FFmpeg
TEMPLATE = app
CONFIG += console
CONFIG -= app_bundle
CONFIG -= qt
SOURCES += \
main.c
INCLUDEPATH += /root/ffmpeg_build/include
LIBS += /root/ffmpeg_build/lib/libavcodec.a \
/root/ffmpeg_build/lib/libavdevice.a \
/root/ffmpeg_build/lib/libavfilter.a \
/root/ffmpeg_build/lib/libavformat.a \
/root/ffmpeg_build/lib/libavutil.a \
/root/ffmpeg_build/lib/libswresample.a \
/root/ffmpeg_build/lib/libswscale.a \
/root/ffmpeg_build/lib/libSDL2.so
#include "libavutil/avutil.h"
int main()
{
printf("Hello FFMPEG, version is %s\n", av_version_info());
return 0;
}
更多推荐






所有评论(0)