• FFMpeg在Ubuntu上的安装和使用


    在Ubuntu Server上编译FFmpeg

    FFmpeg是最流行的开源视频转码工具包,在Ubuntu上可以直接通过apt-get安装,但是默认的编码器不提供x264这些non-free的编码器,所以需要自己编译。

    FFmpeg官方给出了详细的编译步骤:

    https://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu

    本文和官方指南相比,主要在于改进了以下几处:

    1. 编译的bin目录不放到某个用户目录下,而是放到/opt/bin下面;
    2. 不使用git/hg下载snapshot的源码版本,而是直接下载稳定版。

    以下测试在Ubuntu Server 14.04下通过。

    首先,用apt-get updateapt-get upgrade把系统升级到最新版,然后,安装以下软件包:

    apt-get install autoconf automake build-essential libass-dev libfreetype6-dev libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev unzip cmake yasm libx264-dev libmp3lame-dev libopus-dev 

    FFmpeg依赖的几个软件包有个最低版本要求:

    yasm >= 1.2.0 libx264-dev >= 0.118 libmp3lame-dev >= 3.98.3 libopus-dev >= 1.1

    这几个包在Ubuntu 14.04上都符合FFmpeg的要求,所以可以直接用apt-get安装。如果是其它版本的Linux,就需要自己检查版本。

    注意,因为这个FFmpeg是作为服务器使用的,所以不含ffplay的依赖包。如果想要在桌面使用,还需要安装以下软件包:

    libsdl1.2-dev libva-dev libvdpau-dev libxcb1-dev libxcb-shm0-dev libxcb-xfixes0-dev

     接下来需要下载并编译的是x265,fdk-aac,vpx和ffmpeg本身。

    先创建如下目录结构:

    /opt
      +- ffmpeg_sources/
      +- ffmpeg_build/
      +- bin/
    

    然后,把源码包下载到/opt/ffmpeg_sources/目录下。

    因为不采用snapshot版本,所以我们可以直接下载某个稳定版源码。下载地址如下:

    x265: https://bitbucket.org/multicoreware/x265/downloads/x265_1.9.tar.gz

    fdk-aac: https://github.com/mstorsjo/fdk-aac/archive/v0.1.4.zip

    vpx: http://storage.googleapis.com/downloads.webmproject.org/releases/webm/libvpx-1.5.0.tar.bz2

    ffmpeg: http://ffmpeg.org/releases/ffmpeg-3.0.tar.bz2

    编译x265

    依次执行以下命令:

    cd /opt/ffmpeg_sources
    tar zxvf x265_1.9.tar.gz
    cd x265_1.9/build/linux
    PATH="/opt/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="/opt/ffmpeg_build" -DENABLE_SHARED:bool=off ../../source
    make
    make install
    make distclean

    编译fdk-aac

    依次执行以下命令:

    cd /opt/ffmpeg_sources
    mv v0.1.4.zip fdk-aac-v0.1.4.zip
    unzip fdk-aac-v0.1.4.zip
    cd fdk-aac-0.1.4
    autoreconf -fiv
    ./configure --prefix="/opt/ffmpeg_build" --disable-shared
    make
    make install
    make distclean

     编译vp8/vp9

    依次执行以下命令:

    cd /opt/ffmpeg_sources
    tar xjvf libvpx-1.5.0.tar.bz2
    cd libvpx-1.5.0
    PATH="/opt/bin:$PATH" ./configure --prefix="/opt/ffmpeg_build" --disable-examples --disable-unit-tests
    PATH="/opt/bin:$PATH" make
    make install
    make clean

    编译ffmpeg

    最后一步就是编译FFmpeg了:

    cd /opt/ffmpeg_sources
    tar xjvf FFmpeg-release-3.0.zip
    cd FFmpeg-release-3.0
    PATH="/opt/bin:$PATH" PKG_CONFIG_PATH="/opt/ffmpeg_build/lib/pkgconfig" ./configure 
      --prefix="/opt/ffmpeg_build" 
      --pkg-config-flags="--static" 
      --extra-cflags="-I/opt/ffmpeg_build/include" 
      --extra-ldflags="-L/opt/ffmpeg_build/lib" 
      --bindir="/opt/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="/opt/bin:$PATH" make
    make install
    make distclean
    hash -r

    编译时间很长很长,一切顺利的话,在/opt/bin目录下会编译出ffmpegffprobeffserver三个程序。最后,创建几个软连接,便于任意用户在任意目录下直接调用ffmpeg:

    ln -s /opt/bin/ffmpeg /usr/bin/ffmpeg
    ln -s /opt/bin/ffprobe /usr/bin/ffprobe
    ln -s /opt/bin/ffserver /usr/bin/ffserver

    ffmpeg是转码程序,ffprobe可以用来分析视频文件,ffserver可以实现流媒体服务器。

  • 相关阅读:
    某公司基于FineBI数据决策平台的试运行分析报告
    perl AnyEvent
    perl 微信 获取消息
    公司里的人际界线——北漂18年(41)
    perl URLencode URLdecode的方法
    Exception:org.eclipse.m2e.wtp.MarkedException: Unable to configure OHBC
    获取DIV内部内容报错
    JsViews Error:Unknown template:“#projectData”
    jQuery获取checkbox选中的值
    nginx mongodb相关配置
  • 原文地址:https://www.cnblogs.com/peteremperor/p/6601005.html
Copyright © 2020-2023  润新知