ffmpeg在centos系统下的源文件下载脚本及编译脚本

下载脚本:

bash 复制代码
#只做下载的动作,之后可以移动到其它环境下编译
#from https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
#yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
mkdir ~/ffmpeg_sources
cd ~/ffmpeg_sources
curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
curl -O -L https://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
curl -O -L https://downloads.sourceforge.net/project/lame/lame/3.100/lame-3.100.tar.gz
curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
curl -O -L https://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
git clone --depth 1 https://github.com/mstorsjo/fdk-aac
git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git

对于没有条件下载的同学,可使用本人下载好的文件(长期有效,包中有下载脚本和编译脚本及编译说明):

链接: https://pan.baidu.com/s/1seJxmmk21xiUl1AaLFJ0EA 提取码: hn6u

注意事项,重要事件说三遍:

注意下载的包解压之后路径一定要是:~/ffmpeg_sources

注意下载的包解压之后路径一定要是:~/ffmpeg_sources

注意下载的包解压之后路径一定要是:~/ffmpeg_sources

路径原因说明,见CompilationGuide/Centos -- FFmpeg

  • ffmpeg_sources -- Where the source files will be downloaded. This can be deleted if desired when finished with the guide.
  • ffmpeg_build -- Where the files will be built and libraries installed. This can be deleted if desired when finished with the guide.
  • bin -- Where the resulting binaries (ffmpeg, ffprobe, x264, x265) will be installed.

编译脚本:

bash 复制代码
# 只做编译的动作
#from https://trac.ffmpeg.org/wiki/CompilationGuide/Centos
yum install autoconf automake bzip2 bzip2-devel cmake freetype-devel gcc gcc-c++ git libtool make pkgconfig zlib-devel
#mkdir ~/ffmpeg_sources

cd ~/ffmpeg_sources
#curl -O -L https://www.nasm.us/pub/nasm/releasebuilds/2.15.05/nasm-2.15.05.tar.bz2
tar xjvf nasm-2.15.05.tar.bz2
cd nasm-2.15.05
./autogen.sh
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
make
make install


cd ~/ffmpeg_sources
#curl -O -L 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



cd ~/ffmpeg_sources
#git clone --branch stable --depth 1 https://code.videolan.org/videolan/x264.git
cd x264
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static
make
make install


cd ~/ffmpeg_sources
#git clone --branch stable --depth 2 https://bitbucket.org/multicoreware/x265_git
cd ~/ffmpeg_sources/x265_git/build/linux
cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
make
make install



cd ~/ffmpeg_sources
#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



cd ~/ffmpeg_sources
#curl -O -L 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
./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm
make
make install




cd ~/ffmpeg_sources
#curl -O -L https://archive.mozilla.org/pub/opus/opus-1.3.1.tar.gz
tar xzvf opus-1.3.1.tar.gz
cd opus-1.3.1
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install



cd ~/ffmpeg_sources
#git clone --depth 1 https://chromium.googlesource.com/webm/libvpx.git
cd libvpx
./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm
make
make install


cd ~/ffmpeg_sources
#curl -O -L 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 \
  --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
make
make install
hash -d ~/bin/ffmpeg

参考:

CompilationGuide/Centos -- FFmpeg

相关推荐
kebidaixu2 小时前
BCU 平台 RS485 驱动适配:从 THVD1406 到 ISO3082
linux
谢平康5 小时前
解决用 rm 报bash: /usr/bin/rm: Argument list too long错
linux·运维·运维开发
hj2862516 小时前
Linux 网络服务综合笔记(概念 + 命令 + 实操案例)2
linux·运维·网络
what_20186 小时前
Linux 磁盘 (查看、划分、inode)
linux·运维·服务器
2739920297 小时前
GDB调试(Linux)
linux
凡人叶枫7 小时前
Effective C++ 条款23:宁以 non-member、non-friend 替换 member 函数
linux·开发语言·c++·嵌入式开发
不会C语言的男孩7 小时前
Linux 系统编程 · 第 4 章:文件属性与元数据
linux·c语言·开发语言
小生不才yz7 小时前
Shell脚本精读 · S02-03 | 词拆分、通配符与未加引号的变量
linux
2601_961845428 小时前
法考真题及答案解析|历年真题|资料已整理
linux·windows·ubuntu·macos·centos·gnu
A_humble_scholar8 小时前
Linux(七)调度器:从硬件矛盾到进程切换的底层逻辑
linux·服务器·网络