「インストール - FFmpeg」の版間の差分
17行目: | 17行目: | ||
== ビルドに必要なライブラリのインストール == | == ビルドに必要なライブラリのインストール == | ||
sudo zypper install wget pkg-config autoconf automake glibc-devel gcc-c++ cmake git libtool meson ninja nasm yasm \ | sudo zypper install wget pkg-config autoconf automake glibc-devel gcc-c++ cmake git libtool meson ninja nasm yasm \ | ||
zlib-devel libgnutlsxx-devel libSDL2-devel libnuma | zlib-devel libgnutlsxx-devel libSDL2-devel libnuma-devel freetype2-devel fribidi-devel \ | ||
perf-devel xxhash-devel libxml2-devel libICE-devel libSM-devel \ | |||
libgme-devel codec2-devel libcdio-devel libcdio-paranoia-devel | libgme-devel codec2-devel libcdio-devel libcdio-paranoia-devel libbluray-devel librsvg-devel libtwolame-devel \ | ||
libvidstab-devel libwebp-devel libvpx-devel libxvidcore-devel zvbi-devel cppzmq-devel zimg-devel libmysofa-devel \ | |||
alsa-devel liba52-devel libass-devel libmp3lame-devel libva-devel libvdpau-devel libvorbis-devel \ | alsa-devel liba52-devel libass-devel libmp3lame-devel libva-devel libvdpau-devel libvorbis-devel \ | ||
libfaac-devel libfaad-devel libdc1394-devel giflib-devel imlib2-devel libgsm-devel libtheora-devel libgpac-devel \ | libfaac-devel libfaad-devel libdc1394-devel giflib-devel imlib2-devel libgsm-devel libtheora-devel libgpac-devel \ | ||
dav1d-devel libaom-devel libunistring-devel libamrnb-devel libamrwb-devel libopencore-amr-devel vmaf-devel \ | dav1d-devel libaom-devel libunistring-devel libamrnb-devel libamrwb-devel libopencore-amr-devel vmaf-devel \ | ||
libxcb-devel xcb-util-devel libX11-devel libXfixes-devel libXext-devel libXau-devel libXdmcp-devel \ | libxcb-devel xcb-util-devel libX11-devel libXfixes-devel libXext-devel libXau-devel libXdmcp-devel \ | ||
libXrandr-devel libXrender-devel libXt-devel | libXrandr-devel libXrender-devel libXt-devel glu-devel libdrm-devel openal-soft-devel \ | ||
texinfo texi2html | texinfo texi2html | ||
<br> | <br> |
2022年11月21日 (月) 10:32時点における版
概要
FFmpegは、デコード、エンコード、トランスコード、マルチプレクサ、デマルチプレクサ、ストリーム、フィルタリング等の多くのものを再生することができるマルチメディアフレームワークである。
不明瞭な古いフォーマットから最先端のものまでをサポートしている。
FFmpegから使用できるライブラリには、以下に示すものが含まれている。
- libavcodec
- libavutil
- libavformat
- libavfilter
- libavdevice
- libswscale
- libswresample
また、ffmpegファイル、ffplayファイル、ffprobeファイル等の実行ファイルは、エンドユーザがトランスコードや再生に使用することができる。
ビルドに必要なライブラリのインストール
sudo zypper install wget pkg-config autoconf automake glibc-devel gcc-c++ cmake git libtool meson ninja nasm yasm \ zlib-devel libgnutlsxx-devel libSDL2-devel libnuma-devel freetype2-devel fribidi-devel \ perf-devel xxhash-devel libxml2-devel libICE-devel libSM-devel \ libgme-devel codec2-devel libcdio-devel libcdio-paranoia-devel libbluray-devel librsvg-devel libtwolame-devel \ libvidstab-devel libwebp-devel libvpx-devel libxvidcore-devel zvbi-devel cppzmq-devel zimg-devel libmysofa-devel \ alsa-devel liba52-devel libass-devel libmp3lame-devel libva-devel libvdpau-devel libvorbis-devel \ libfaac-devel libfaad-devel libdc1394-devel giflib-devel imlib2-devel libgsm-devel libtheora-devel libgpac-devel \ dav1d-devel libaom-devel libunistring-devel libamrnb-devel libamrwb-devel libopencore-amr-devel vmaf-devel \ libxcb-devel xcb-util-devel libX11-devel libXfixes-devel libXext-devel libXau-devel libXdmcp-devel \ libXrandr-devel libXrender-devel libXt-devel glu-devel libdrm-devel openal-soft-devel \ texinfo texi2html
tex2htmlライブラリをパッケージ管理システムからインストールする場合、膨大な依存関係のライブラリをインストールすることになるため、多くの時間が掛かる。
手動でtexi2htmlライブラリをインストールする方が、より短い時間でできる可能性がある。
詳細は、インストール - Git#依存関係のライブラリのインストールを参照すること。
Nasmアセンブラのインストール (必要な場合のみ)
Nasmアセンブラは、FFmpegの一部のビルドに必要なアセンブラである。
例えば、FFmpeg 5.0では、FFmpegのアセンブルに必要なNasmアセンブラは2.13以降であるため、
パッケージ管理システムのNasmアセンブラが2.12以前の場合は、手動でインストールする必要がある。
Nasmアセンブラの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf nasm-<バージョン>.tar.xz cd nasm-<バージョン>
Nasmアセンブラをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<Nasmアセンブラのインストールディレクトリ> make -j $(nproc) make install
~/.profileファイル等に環境変数を追記する。
vi ~/.profile
export PATH="/<Nasmアセンブラのインストールディレクトリ>/:$PATH"
VMAFライブラリのインストール
VMAFライブラリとは、ビデオ品質指標VMAFを算出するためのライブラリである。
VMAFライブラリのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf vmaf-<バージョン>.tar.xz cd vmaf-<バージョン>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://github.com/Netflix/vmaf.git cd vmaf
VMAFライブラリをビルドおよびインストールする。
mkdir build && cd build meson setup --prefix <FFmpegのインストールディレクトリ> -Denable_tests=false -Denable_docs=false --buildtype=release .. \ --default-library=static # スタティックライブラリを使用する場合 ninja -C . ninja -C .install
H.264ビデオエンコーダのインストール
VideoLanのGitLabから、H.264ビデオエンコーダのソースコードをダウンロードする。
git clone https://code.videolan.org/videolan/x264.git -b stable cd x264
H.264ビデオエンコーダをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<FFmpegのインストールディレクトリ> --enable-shared --enable-static --enable-bashcompletion --enable-pic make -j $(nproc) make install
H.265/HEVC ビデオエンコーダのインストール
H.265/HEVC ビデオエンコーダの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf x265_<バージョン>.tar.gz cd x265_<バージョン>
または、H.265/HEVCビデオエンコーダのBitBucketから、H.264/HEVC ビデオエンコーダのソースコードをダウンロードする。
git clone https://bitbucket.org/multicoreware/x265_git.git -b stable cd x265_git
H.265/HEVC ビデオエンコーダをビルドおよびインストールする。
mkdir build_x265 && cd build_x265 cmake -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release ../source/ make -j $(nproc) make install # または cmake -G Ninja -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release ../source/ ninja -C . ninja -C .install
VP8/VP9 ビデオエンコーダ/デコーダのインストール
VP8/VP9 ビデオエンコーダ/デコーダの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf libvpx-<バージョン>.tar.gz cd libvpx-<バージョン>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://github.com/webmproject/libvpx.git cd libvpx
VP8/VP9 ビデオエンコーダ/デコーダをビルドおよびインストールする。
mkdir build_vpx && cd build_vpx ../configure --prefix=<FFmpegのインストールディレクトリ> --enable-shared --enable-vp8 --enable-vp9 \ --enable-webm-io --enable-libyuv make -j $(nproc) make install
AACオーディオエンコーダのインストール
AACオーディオエンコーダのsourceForgeまたはGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf fdk-aac-<バージョン>.tar.gz cd fdk-aac-<バージョン>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://github.com/mstorsjo/fdk-aac.git cd lifdk-aac
AACオーディオエンコーダをビルドおよびインストールする。
mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release .. make -j $(nproc) make install # または cmake -G Ninja -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release .. ninja -C . ninja -C .install
Opus オーディオデコーダ / エンコーダ
Opus オーディオデコーダ / エンコーダの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf opus-<バージョン>.tar.gz cd opus-<バージョン>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://github.com/xiph/opus.git cd opus
Opus オーディオデコーダ / エンコーダをビルドおよびインストールする。
mkdir build && cd build cmake -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release -DOPUS_BUILD_SHARED_LIBRARY=ON .. make -j $(nproc) make install # または cmake -G Ninja -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release -DOPUS_BUILD_SHARED_LIBRARY=ON .. ninja -C . ninja -C .install
AV1 デコーダ (dav1d)のインストール
dav1dライブラリは、AOMが提供するライブラリよりもはるかに高速である。
AVX-512をサポートするためには、NASM 2.14以降が必要である。
もし、AVX-512を無効にする場合は、meson
コマンドのセットアップにおいて、-Denable_avx512=false
オプションを付加する。
VideoLanの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf dav1d-<バージョン>.tar.xz cd dav1d-<バージョン>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://code.videolan.org/videolan/dav1d.git cd dav1d
AV1デコーダ(dav1d)をビルドおよびインストールする。
mkdir build && cd build meson setup .. --prefix <FFmpegのインストールディレクトリ> -Denable_tests=false \ --default-library=static # スタティックライブラリを使用する場合 ninja -C . ninja -C .install
AV1 ビデオエンコーダ/デコーダ (AOM)のインストール
AV1 ビデオエンコーダ/デコーダは、安定したAPIを持っていない可能性があるため、libavcodec / libaomenc.cのコンパイルに失敗する場合がある。
その時は、パッケージ管理システムからAV1 ビデオエンコーダ/デコーダをインストールすること。
AV1 ビデオエンコーダ/デコーダの公式Webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf aom-<タグ名>.tar.gz cd aom-<タグ名>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://aomedia.googlesource.com/aom cd aom
AV1 ビデオエンコーダ/デコーダをビルドおよびインストールする。
mkdrir build_aom && cd build_aom cmake -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=OFF -DENABLE_NASM=on .. make -j $(nproc) make install # または cmake -G Ninja -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release -DENABLE_TESTS=OFF -DENABLE_NASM=on .. ninja -C . ninja -C . install
AV1 ビデオエンコーダ/デコーダ (SVT-AV1)のインストール
AV1 ビデオエンコーダ/デコーダ (SVT-AV1)のGitLabにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf SVT-AV1-<バージョン>.tar.gz cd SVT-AV1-<バージョン>
git clone
コマンドを実行して、AV1 ビデオエンコーダ/デコーダ (SVT-AV1)のソースコードをダウンロードする。
git clone --depth 1 https://gitlab.com/AOMediaCodec/SVT-AV1.git cd SVT-AV1
AV1 ビデオエンコーダ/デコーダ (SVT-AV1)をビルドおよびインストールする。
mkdrir build && cd build cmake -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release -DENABLE_AVX512=ON .. \ -DBUILD_DEC=OFF # デコーダを無効にする場合 make -j $(nproc) make install # または cmake -G Ninja -DCMAKE_INSTALL_PREFIX=<FFmpegのインストールディレクトリ> -DCMAKE_BUILD_TYPE=Release -DENABLE_AVX512=ON .. \ -DBUILD_DEC=OFF # デコーダを無効にする場合 ninja -C . ninja -C . install
Lameのインストール
LameのSourceForgeにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf lame-<バージョン>.tar.gz cd lame-<バージョン>
Lameをビルドおよびインストールする。
mkdrir build && cd build ../configure --prefix=<FFmpegのインストールディレクトリ> --enable-mp3x --enable-mp3rtp --with-vorbis --enable-nasm make -j $(nproc) make install
FFmpegのインストール
FFmpegの公式webサイトにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。
tar xf ffmpeg-<バージョン>.tar.xz cd ffmpeg-<バージョン>
または、git clone
コマンドを実行して、ソースコードをダウンロードする。
git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg
FFmpegをビルドおよびインストールする。
mkdir build && cd build ../configure --prefix=<FFmpegのインストールディレクトリ> \ --enable-gpl --enable-gnutls --enable-libfreetype --enable-libfribidi --enable-linux-perf \ --enable-libxml2 --enable-libcdio --enable-libbluray --enable-libpulse --enable-alsa \ --enable-libdc1394 --enable-libgme --enable-libcodec2 --enable-libtheora --enable-libmysofa \ --enable-libtwolame --enable-libvidstab --enable-libwebp --enable-libvpx \ --enable-libxvid --enable-libzvbi --enable-libzmq --enable-libzimg \ --enable-openal --enable-opengl --enable-libdrm \ --enable-libass \ --enable-libmp3lame \ --enable-libx264 \ # H.264 --enable-libx265 \ # H.265/HEVC --enable-libvpx \ # VP8/VP9 ビデオエンコーダ/デコーダ --enable-nonfree \ --enable-libfdk-aac \ # AACオーディオエンコーダ --enable-libopus \ # Opus オーディオデコーダ / エンコーダ --enable-libdav1d \ # AV1デコーダ(libaomよりも高速) --enable-libaom \ # AV1 ビデオエンコーダ/デコーダ --enable-libsvtav1 \ --enable-libvorbis \ --enable-libvmaf make -j $(nproc) make install