前言

凡是用到视频音频的地方,都用到ffmpeg。根据用到的CODEC不同,编译有很大差异。吾有两个初等、中午编译的博文,这个是全编译博文。

全编译有什么好处?把库打包之后,可以直接在别的机器上使用。

备份建议:编译后把整个编译目录打包备份;使用虚拟机编译,然后备份。

准备工作

apt update

apt install gcc make cmake

apt install autoconf subversion git wget g++ pkg-config

# libtool libtool libogg-devel nasm

apt install autopoint

下载编译libtool

LINUX下载及编译libtool_柳鲲鹏-CSDN博客_libtool源码编译

下载编译OpenAL

LINUX下载编译OpenAL Soft_柳鲲鹏-CSDN博客

下载编译openh264

LINUX下载编译OpenH264_柳鲲鹏-CSDN博客_编译openh264

下载编译x264

LINUX下载编译libx264_柳鲲鹏-CSDN博客_linux x264

下载编译x265

LINUX下载编译x265_柳鲲鹏-CSDN博客_linux x265编译

下载编译iLBC

LINUX下载编译iLBC_柳鲲鹏-CSDN博客_libilbc

下载编译g729

LINUX下载编译g729_柳鲲鹏-CSDN博客

下载编译libgsm

LINUX下载编译libgsm_柳鲲鹏-CSDN博客

下载编译opencore-amr

LINUX编译opencore-amr_柳鲲鹏-CSDN博客_opencore-amr

下载编译vo-amrwbenc

LINUX下载编译vo-amrwbenc_柳鲲鹏-CSDN博客

下载编译libopus

LINUX下载编译libopus_柳鲲鹏-CSDN博客_libopus 编译

下载编译libyuv

LINUX下载编译libyuv_柳鲲鹏-CSDN博客_libyuv linux 编译

下载编译libvpx

LINUX下载编译libvpx_柳鲲鹏-CSDN博客_libvpx linux

下载编译Which

LINUX下载编译Which_柳鲲鹏-CSDN博客

下载编译YASM

LINUX下载编译YASM_柳鲲鹏-CSDN博客_yasm下载

(字体相关)下载编译libfreetype

LINUX下载编译FreeType_柳鲲鹏-CSDN博客

(字体相关)下载编译FriBidi

LINUX下载编译FriBidi_柳鲲鹏-CSDN博客

(字体相关)下载编译libxml2

LINUX下载编译libxml2_柳鲲鹏-CSDN博客_libxml2 linux 编译

(字体相关)下载编译gperf

LINUX下载编译gperf_柳鲲鹏-CSDN博客_gperf 编译

(字体相关)下载编译fontconfig

LINUX下载编译fontconfig_柳鲲鹏-CSDN博客_fontconfig 编译

(字体相关)下载libass

LINUX下载编译ass_柳鲲鹏-CSDN博客

下载编译faac

LINUX下载编译libfaac_柳鲲鹏-CSDN博客_libfaac编译

下载编译zlib

LINUX下载编译zlib_柳鲲鹏-CSDN博客_linux zlib编译

下载编译libpng

LINUX下载编译libpng_柳鲲鹏-CSDN博客_libpng 下载

下载编译jpeglib

LINUX下载编译jpeglib_柳鲲鹏-CSDN博客_jpegsrc

下载编译SDL2

LINUX下载编译SDL2_柳鲲鹏-CSDN博客_linux下载sdl

下载编译vorbis

LINUX下载编译vorbis_柳鲲鹏-CSDN博客

下载编译libogg

LINUX下载编译libogg_柳鲲鹏-CSDN博客_libogg

下载编译theora

LINUX下载编译libtheora_柳鲲鹏-CSDN博客

下载编译libspeex/libspeexdsp

LINUX下载编译libspeex/libspeexdsp_柳鲲鹏-CSDN博客_libspeex

下载编译nasm

LINUX下载编译nasm_柳鲲鹏-CSDN博客_linux nasm

下载编译lame

LINUX下载编译lame_柳鲲鹏-CSDN博客_lame linux 编译

下载编译ffmpeg

Download FFmpeg

BUILD_LIBS=${HOME}/build_libs

./configure \

--prefix=${BUILD_LIBS} \

--extra-cflags="-fPIC" \

--extra-cflags="-I${BUILD_LIBS}/include" \

--extra-ldflags="-L${BUILD_LIBS}/lib" \

--bindir="${BUILD_LIBS}/bin" \

--disable-network --disable-ffmpeg --disable-ffplay --disable-ffprobe \

--enable-pic --enable-pthreads \

--enable-shared --disable-static \

--enable-gpl --enable-nonfree \

--enable-libx264 --enable-encoder=libx264 --enable-decoder=h264 \

--disable-debug

# ./configure --pkg-config-flags="--static" --bindir="$HOME/bin" --enable-gpl --enable-libass --enable-libfdk-aac --enable-libfreetype --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx --enable-libx264 --enable-nonfree

# --enable-memalign-hack

# --disable-ffserver

make

make install

cp libavfilter/motion_estimation.h ${BUILD_LIBS}/include/libavfilter