From 8e7a8264ca47d9351bdc04b42c7b3b1a3e8063cb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B8=B8=E7=94=B1?= Date: Thu, 21 Oct 2021 10:51:00 +0800 Subject: [PATCH] =?UTF-8?q?Boost=E3=80=81FFmpeg=E3=80=81OpenCV=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E7=AC=94=E8=AE=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CentOS7CompileOpencvFFmpeg.md | 110 ++++++++++++++++++++++++++++++++++ CompileBoost.md | 26 ++++++++ 2 files changed, 136 insertions(+) create mode 100644 CentOS7CompileOpencvFFmpeg.md create mode 100644 CompileBoost.md diff --git a/CentOS7CompileOpencvFFmpeg.md b/CentOS7CompileOpencvFFmpeg.md new file mode 100644 index 0000000..8146826 --- /dev/null +++ b/CentOS7CompileOpencvFFmpeg.md @@ -0,0 +1,110 @@ +# 编译ffmpeg + +省略下载步骤,下载内容见[FFmpeg官方编译Wiki](https://trac.ffmpeg.org/wiki/CompilationGuide) + +## 编译需要的容器 + +```commandline +docker run -it -d --privileged=true --name centos7 -p 2333:22 centos:7 /usr/sbin/init +docker exec -it centos7 bash +``` + +```shell +# 编译需要的环境 +yum install autoconf automake bzip2 bzip2-devel freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel + +# 解压源码 +tar xzvf ffmpeg_sources.tar.gz +cd ~/ffmpeg_sources + +tar xjvf nasm-2.15.05.tar.bz2 +tar xzvf yasm-1.3.0.tar.gz +tar xzvf lame-3.100.tar.gz +tar xzvf opus-1.3.1.tar.gz +tar zxvf libvpx.tar.gz -m +tar zxvf ffmpeg-4.4.tar.gz +tar zxvf x264-stable.tar.gz +mv x264-stable x264 +tar zxvf x265_git.tar.gz +tar zxvf fdk-aac.tar.gz + +# 手动安装cmake +./cmake-3.21.3-linux-x86_64.sh --prefix=/usr/local +mv /usr/local/cmake-3.21.3-linux-x86_64 /usr/local/cmake +# 添加到环境变量并生效 +echo "export PATH=\$PATH:/usr/local/cmake/bin" >> ~/.bashrc +source ~/.bashrc + +# 编译nasm +cd ~/ffmpeg_sources/nasm-2.15.05 +./autogen.sh +./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" +make -j6 && make install + +# 编译yasm +cd ~/ffmpeg_sources/yasm-1.3.0 +./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" +make -j6 && make install + +# 编译x264 +cd ~/ffmpeg_sources/x264 +PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static +make -j6 && make install + +# 编译x265 +cd ~/ffmpeg_sources/x265_git/build/linux +cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source +make -j6 && make install + +# 编译fdk-aac +cd ~/ffmpeg_sources/fdk-aac +autoreconf -fiv +./configure --prefix="$HOME/ffmpeg_build" --disable-shared +make -j6 && make install + +# 编译lame +cd ~/ffmpeg_sources/lame-3.100 +./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm +make -j6 && make install + +# 编译opus +cd ~/ffmpeg_sources/opus-1.3.1 +./configure --prefix="$HOME/ffmpeg_build" --disable-shared +make -j6 && make install + +# 编译vpx +cd ~/ffmpeg_sources/libvpx +./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm +make -j6 && make install + +# 编译ffmpeg +cd ~/ffmpeg_sources/ffmpeg-4.4 +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 \ + --extra-libs=-lm \ + --bindir="$HOME/bin" \ + --enable-gpl \ + --enable-libfdk_aac \ + --enable-libfreetype \ + --enable-libmp3lame \ + --enable-libopus \ + --enable-libvpx \ + --enable-libx264 \ + --enable-libx265 \ + --enable-nonfree \ + --enable-shared +make -j6 && make install +``` + +# 编译opencv + +```shell +# wget -DCMAKE_INSTALL_PREFIX=/usr/local/ +mkdir build && cd build +PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=OFF -DWITH_FFMPEG=ON ../ +make -j6 && make install +``` \ No newline at end of file diff --git a/CompileBoost.md b/CompileBoost.md new file mode 100644 index 0000000..414ad96 --- /dev/null +++ b/CompileBoost.md @@ -0,0 +1,26 @@ +# 编译boost[^1] + +## 编译环境 + +```shell +yum install -y gcc gcc-c++ make wget +``` + +## 下载 + +boost库[官方下载网页](https://www.boost.org/users/download/) + +```shell +wget https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz +``` + +## 编译 + +```shell +tar -zxvf boost_1_77_0.tar.gz +cd boost_1_77_0 +./bootstrap.sh +./b2 -a link=static cxxflags='-fPIC -std=c++11' --with-thread install +``` + +[^1]: Boost Getting Started on Unix Variants https://www.boost.org/doc/libs/1_77_0/more/getting_started/unix-variants.html#id25 \ No newline at end of file