(オーディオとビデオの研究ノート):FFMpeg環境の構築

目次

Windows環境のセットアップ

Linux環境の構築

ディレクトリを作成する

インストールの依存関係

一般的なサードパーティライブラリをインストールする

NASM

Yasm

libx264

libx265

libvpx

libfdk-aac

libmp3lame

libopus

libaom

FFmpeg

使用する

ドキュメンテーション

Windows環境のセットアップ

  • 公式のffmpegにアクセスして、コンパイルされたWindows共有ライブラリをダウンロードします。
  • 実行可能ファイルffmpeg.exeffplay.exe ffprobe.exeをC:\ Windowsディレクトリにコピーします。
  • 対応するダイナミックライブラリをC:\ Windows \ SysWOW64ディレクトリにコピーします。
    • 適合:WOW64(Windows-on-Windows 64ビット)
  • コマンドラインウィンドウにffmpeg-versionと入力してバージョンを確認しますが、環境が正常に構築されているかどうかを確認します

[構成環境ubuntuデスクトップ16.04+ ffmpeg 4.2.1]

Linux環境の構築

ディレクトリを作成する

  • ホームディレクトリに作成
  • ffmpeg_sources:ソースファイルのダウンロードに使用されます
  • ffmpeg_build:コンパイルされたライブラリファイルを保存します
  • bin:バイナリファイル(ffmpeg、ffplay、ffprobe、X264、X265など)を保存します
cd ~

mkdir ffmpeg_sources  ffmpeg_build bin

インストールの依存関係

sudo apt-get update -qq && sudo apt-get -y install \
  autoconf \
  automake \
  build-essential \
  cmake \
  git-core \
  libass-dev \
  libfreetype6-dev \
  libsdl2-dev \
  libtool \
  libva-dev \
  libvdpau-dev \
  libvorbis-dev \
  libxcb1-dev \
  libxcb-shm0-dev \
  libxcb-xfixes0-dev \
  pkg-config \
  texinfo \
  wget \
  zlib1g-dev

一般的なサードパーティライブラリをインストールする

NASM

  • ソースコードを使用してインストールする
cd ~/ffmpeg_sources && \
wget https://www.nasm.us/pub/nasm/releasebuilds/2.14.02/nasm-2.14.02.tar.bz2 && \
tar xjvf nasm-2.14.02.tar.bz2 && \
cd nasm-2.14.02 && \
./autogen.sh && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" && \
make && \
make install

Yasm

  • ソースコードを使用してインストールする
cd ~/ffmpeg_sources && \
wget -O yasm-1.3.0.tar.gz 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

libx264

  • H.264ビデオエンコーダ。詳細および使用例については、H.264エンコーディングガイドを参照してください。
  • ffmpegをコンパイルするときに設定します:-enable-gpl--enable-libx264。
  • ソースコードを使用してコンパイルします。
cd ~/ffmpeg_sources && \
git -C x264 pull 2> /dev/null || git clone --depth 1 https://code.videolan.org/videolan/x264.git && \
cd x264 && \
PATH="$HOME/bin:$PATH" PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --enable-static --enable-pic && \
PATH="$HOME/bin:$PATH" make && \
make install

libx265

sudo apt-get install mercurial libnuma-dev && \
cd ~/ffmpeg_sources && \
if cd x265 2> /dev/null; then hg pull && hg update && cd ..; else hg clone https://bitbucket.org/multicoreware/x265; fi && \
cd x265/build/linux && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off ../../source && \
PATH="$HOME/bin:$PATH" make && \
make install

libvpx

cd ~/ffmpeg_sources && \
git -C libvpx pull 2> /dev/null || git clone --depth 1 https://github.com/webmproject/libvpx.git && \
cd libvpx && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --disable-examples --disable-unit-tests --enable-vp9-highbitdepth --as=yasm && \
PATH="$HOME/bin:$PATH" make && \
make install

libfdk-aac

  • AACオーディオエンコーディング。詳細と使用例については、AACオーディオエンコーディングガイドを参照してください
  • ffmpegをコンパイルするときに設定します:-enable-libfdk-aac(すでに--enable-gplを設定している場合は、-enable-nonfreeを追加する必要があります)。
cd ~/ffmpeg_sources && \
git -C fdk-aac pull 2> /dev/null || 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

libmp3lame

  • MP3オーディオエンコーダ。
  • ffmpegをコンパイルするときに設定します:-enable-libmp3lame。
cd ~/ffmpeg_sources && \
git clone  --depth 1 https://gitee.com/hqiu/lame.git && \
cd lame && \
PATH="$HOME/bin:$PATH" ./configure --prefix="$HOME/ffmpeg_build" --bindir="$HOME/bin" --disable-shared --enable-nasm && \
PATH="$HOME/bin:$PATH" make && \
make install

libopus

  • Opusオーディオコーデック。
  • ffmpegをコンパイルするときに設定します:-enable-libopus。
cd ~/ffmpeg_sources && \
git -C opus pull 2> /dev/null || git clone --depth 1 https://github.com/xiph/opus.git && \
cd opus && \
./autogen.sh && \
./configure --prefix="$HOME/ffmpeg_build" --disable-shared && \
make && \
make install

libaom

  • AV1ビデオコーデック:
  • ffmpegをコンパイルするときに設定します:-enable-libaom。
  • AV1は最初はサポートされておらず、コンパイルに問題があります。
cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://aomedia.googlesource.com/aom && \
mkdir -p aom_build && \
cd aom_build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
PATH="$HOME/bin:$PATH" make && \
make install

cd ~/ffmpeg_sources && \
git -C aom pull 2> /dev/null || git clone --depth 1 https://github.com/mozilla/aom.git && \
mkdir -p aom_build && \
cd aom_build && \
PATH="$HOME/bin:$PATH" cmake -G "Unix Makefiles" -DCMAKE_INSTALL_PREFIX="$HOME/ffmpeg_build" -DENABLE_SHARED=off -DENABLE_NASM=on ../aom && \
PATH="$HOME/bin:$PATH" make && \
make install

FFmpeg

cd ~/ffmpeg_sources && \
wget -O ffmpeg-4.2.1.tar.bz2 https://ffmpeg.org/releases/ffmpeg-4.2.1.tar.bz2 && \
tar xjvf ffmpeg-4.2.1.tar.bz2 && \
cd ffmpeg-4.2.1 && \
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 -lm" \
  --bindir="$HOME/bin" \
  --enable-gpl \
  --enable-libass \
  --enable-libfdk-aac \
  --enable-libfreetype \
  --enable-libmp3lame \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libvpx \
  --enable-libx264 \
  --enable-libx265 \
  --enable-nonfree && \
PATH="$HOME/bin:$PATH" make && \
make install && \
hash -r
  • 次に、システムに再度ログインするか、現在のシェルセッションで次のコマンドを実行して、新しくインストールされたffmpegの場所を特定します。
source ~/.profile
  • コンパイル後、ffmpeg_build ffmpeg_sourcesbinディレクトリの一般的な状況
lqf@ubuntu:~/ffmpeg_build$ ls
bin  include  lib  share

lqf@ubuntu:~/ffmpeg_sources$ ls
fdk-aac               lame-3.100.tar.gz     opus        yasm-1.3.0.tar.gz
ffmpeg-4.2.1          libvpx                x264
ffmpeg-4.2.1.tar.bz2  nasm-2.14.02          x265
lame                  nasm-2.14.02.tar.bz2  yasm-1.3.0

lqf@ubuntu:~/bin$ ls
ffmpeg  ffplay  ffprobe  lame  nasm  ndisasm  vsyasm  x264  yasm  ytasm

使用する

  • これで、ターミナルを開いてffmpegコマンドを入力すると、新しいffmpegが実行されます。
  • 新しくコンパイルしたffmpegを同時に使用するために複数のユーザーが必要な場合は、ffmpegバイナリファイルを〜/ binから/ usr / local / binに移動またはコピーできます。

ドキュメンテーション

  • man ffmpegを使用して、ローカルでドキュメントにアクセスできます。
    • echo "MANPATH_MAP $ HOME / bin $ HOME / ffmpeg_build / share / man" >>〜/ .manpath
  • 有効にするには、システムからログアウトしてから、manffmpegに再度ログインする必要がある場合があります。
  • HTML形式のドキュメントは 〜/ ffmpeg_build / share / doc / ffmpegにあります。
  • オンラインのFFmpegドキュメントを参照できます 

おすすめ

転載: blog.csdn.net/baidu_41388533/article/details/111764071