Boost、FFmpeg、OpenCV编译笔记

This commit is contained in:
游由 2021-10-21 10:51:00 +08:00
parent 01b60bfeb7
commit 8e7a8264ca
2 changed files with 136 additions and 0 deletions

View File

@ -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
```

26
CompileBoost.md Normal file
View File

@ -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