ffmpeg和h264交叉编译

FFmpeg和H.264交叉编译


官网教程

  • 编译环境

    操作系统: CentOS 7
    FFmpeg版本: 3.0.8
    
  • 编译步骤

    • 创建源代码目录,安装目录以及可执行文件目录

      mkdir ~/ffmpeg_sources ~/ffmpeg_build ~/bin

    • 解决依赖
      yum install autoconf automake bzip2 cmake freetype-devel gcc gcc-c++ git libtool make mercurial pkgconfig zlib-devel

    • 安装nasm

      cd ~/ffmpeg_sources
      curl -O -L http://www.nasm.us/pub/nasm/releasebuilds/2.13.02/nasm-2.13.02.tar.bz2
      tar xjvf nasm-2.13.02.tar.bz2
      cd nasm-2.13.02
      ./autogen.sh
      ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin"
      make
      make install
      
    • 安装yasm

      cd ~/ffmpeg_sources
      curl -O -L http://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
      
    • 安装libx264

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

      如果在./configure中出现Found no assembler. Minimum version is nasm-2.13错误,需要将~/bin目录加到PATH变量中,命令如下:
      PATH="$HOME/bin/:$PATH"
      然后重新执行./configure

    • 安装ffmpeg

      cd ~/ffmpeg_sources
      curl -O -L https://ffmpeg.org/releases/ffmpeg-3.0.8.tar.bz2
      tar -xjvf ffmpeg-3.0.8.tar.bz2
      cd ffmpeg-3.0.8
      ./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-libx264 \
                          --enable-nonfree --enable-shared
      make 
      make install
      

      在执行./configure可能会出现warning:using libx264 without pkg-config,这里需要设置PKG_CONFIG_PATH变量,如下命令:
      export PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig/:$PKG_CONFIG_PATH"
      然后重新执行./configure。在执行make可能会出现x264_bit_depth没有声明的错误,执行下列命令:
      vim ./libavcodec/libx264.c
      :1,$s/x264_bit_depth/X264_BIT_DEPTH/c
      然后重新执行后续命令。

  • 查看h264是否安装

        cd ~/bin
        ./ffmpeg -codecs | grep h264*
    

    如果出现动态库链接不到的问题,设置如下变量,重新执行./ffmpeg
    export LD_LIBRARY_PATH="$HOME/ffmpeg_build/lib/:$LD_LIBRARY_PATH
    "

    屏幕显示
    DEV.LS h264 H.264 / AVC / MPEG-4 AVC / MPEG-4 part 10 (encoders: libx264 libx264rgb )
    表示h264编解码器安装成功。

猜你喜欢

转载自blog.csdn.net/w1157984197/article/details/80975106