Linux下编译ffmpeg 3.3,包含aac, x264, x265库

参考连接:https://www.cnblogs.com/jimodetiantang/p/9160183.html

一开始,我是直接从2.3节开始的。然后坠入深坑。所以如果有朋友需要编译带 aac x264, x265的话,强烈推荐上面链接。我这里仅记录了错误的过程,和自己是如何跳出坑的过程。

1、libfdk-aac 安装完成。

2、但是编译libvpx 出错:

ht-dong@ubuntu:~/ffmpeg/ffmpeg/libvpx$ ./run.sh 
./configure: 273: ./build/make/configure.sh: awk: not found
./configure: 166: ./configure: perl: not found
Perl is required to build

Configuration failed. This could reflect a misconfiguration of your
toolchains, improper options selected, or another problem. If you
don't see any useful error messages above, the next step is to look
at the configure error log file (config.log) to determine what
configure was trying to do when it died.
./configure: 282: ./configure: rm: not found
./run.sh: line 10: make: command not found
./run.sh: line 11: make: command not found
./run.sh: line 12: make: command not found

3、编译hx264, x265,正确执行。然后编译ffmpeg,执行make 时,出现:

make[1]: Nothing to be done for 'all'.

4、从网上找的答案:make clean, 然后输入ldconfig 或者 sudo ldconfig, 也是依然不可以。看来中间有一步骤出错,影响最终结果!

所以,还是得老老实实的,从2.1步骤执行(最开始,以为这两步不需要呢,哎)。

 

===========================华丽分割线===================================

 

下面介绍正确的顺序:

目录结构:ffmpeg_source, 里面先把所有的库都下载好,且解压

我的系统是Ubuntu,所以,第一步的环境准备,跳过了。

2.1 是安装一些开发工具。如果有意外,那么需要更新一下,sudo apt-get update

apt-get -y install libass-dev libfreetype6-dev libmp3lame-dev libtheora-dev libvorbis-dev libopus-dev libx264-dev yasm

2.2  如果权限不够,可以用在执行语句最前面,添加 : sudo,

apt-get -y install libva-dev libvdpau-dev libsdl2-dev

 2.3 安装 fdk-aac-0.1.5: 我是直接在解压aac的根目录下,直接新建run.sh,将下面执行代码放进去执行的。 也可以逐条执行后四行

# cd ~/ffmpeg_sources
# wget http://downloads.sourceforge.net/opencore-amr/fdk-aac-0.1.5.tar.gz
# tar -zxvf fdk-aac-0.1.5.tar.gz && mv fdk-aac-0.1.5 fdk-aac
# cd fdk-aac
# ./configure --prefix="$HOME/ffmpeg_build" --disable-shared
# make
# make install
# make distclean

2.4 安装 libvpx-1.6.1: 我是直接在解压libvpx的根目录下,直接新建run.sh,将下面执行代码放进去执行的。 也可以逐条执行后六行

# cd ~/ffmpeg_sources
# wget http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.6.1.tar.bz2
# tar -jxvf libvpx-1.6.1.tar.bz2 && mv libvpx-1.6.1 libvpx
# cd libvpx
# PATH="$HOME/bin:$PATH"
# ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests
# PATH="$HOME/bin:$PATH"
# make 
# make install
# make distclean

这里会出现问题,就是因为我最初的两行没有执行,没有准备好环境。

2.5  安装 x265-2.4: 我是直接在解压x265的根目录下,直接新建run.sh,将下面执行代码放进去执行的。 也可以逐条执行后五行

# cd ~/ffmpeg_sources
# sudo apt-get install cmake mercurial
# wget https://bitbucket.org/multicoreware/x265/downloads/x265_2.4.tar.gz
# tar -zxvf x265_2.4.tar.gz && mv x265_2.4 x265
# cd x265/build/linux
# PATH="$HOME/bin:$PATH"
# cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
# make 
# make install
# make clean

2.6 安装 x264: 我是直接在解压x264的根目录下,直接新建run.sh,将下面执行代码放进去执行的。 也可以逐条执行后四行

# cd ~/ffmpeg_sources
# wget  https://download.videolan.org/x264/snapshots/x264-snapshot-20170822-2245-stable.tar.bz2
# tar -jxvf x264-snapshot-20170822-2245-stable.tar.bz2 && mv x264-snapshot-20170822-2245-stable x264
# ./configure --prefix="$HOME/ffmpeg_build" --enable-shared --enable-pic
# make
# make install
# make distclean

2.7  编译FFmpeg: 我是直接在解压ffmpeg的根目录下,直接新建run.sh,将下面执行代码放进去执行的。 也可以逐条执行从第五行开始

# cd ~/ffmpeg_sources
# wget http://ffmpeg.org/releases/ffmpeg-3.3.3.tar.xz
# tar -Jxvf ffmpeg-3.3.3.tar.xz && mv ffmpeg-3.3.3 ffmpeg
# cd ffmpeg
# PATH="$HOME/bin:$PATH"
# export 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" \
    --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-libx265 \
    --enable-nonfree
# PATH="$HOME/bin:$PATH"
# make
# make install
# make distclean
# hash -r

执行的时候,enable-libmp3lame 不能通过,所以我就去掉了。

其他错误:

ERROR: libass not found using pkg-config, 解决方法:apt install libass-dev  // 安装这个

ERROR: libmp3lame >= 3.98.3 not dound   // 这个没解决,直接去掉的mp3

ERROR: opus not found using pkg-config  // 解决方法: 

sudo apt-get install libopus-dev

...... 还有其他找不到pkg-config的错误,都是因为没有执行2.1 和 2.2的原因。

 

完整顺序,你参考的博文开头的链接,我这里就是记录了问题。

你可能感兴趣的:(ffmpeg音视频开发,Linux)