「インストール - FFmpeg」の版間の差分
18行目: | 18行目: | ||
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-devel freetype2-devel fribidi-devel \ | zlib-devel libgnutlsxx-devel libSDL2-devel libnuma-devel freetype2-devel fribidi-devel \ | ||
xxhash-devel libxml2-devel libICE-devel libSM-devel \ | |||
libgme-devel codec2-devel libcdio-devel libcdio-paranoia-devel libbluray-devel librsvg-devel libtwolame-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 \ | libvidstab-devel libwebp-devel libvpx-devel libxvidcore-devel zvbi-devel cppzmq-devel zimg-devel libmysofa-devel \ | ||
282行目: | 282行目: | ||
../configure --prefix=<FFmpegのインストールディレクトリ> \ | ../configure --prefix=<FFmpegのインストールディレクトリ> \ | ||
--enable- | --enable-shared \ # FFmpegの設定オプション | ||
--enable- | --enable-gray \ # FFmpegの設定オプション | ||
--enable- | # 以下は、外部ライブラリのサポート | ||
--enable- | --enable-gpl \ | ||
--enable-gnutls \ | |||
--enable-openal --enable-opengl --enable-libdrm \ | --enable-libfontconfig --enable-libfreetype --enable-libfribidi \ # ドローテキストフィルタ向け | ||
--enable-libass \ | --enable-libxml2 \ | ||
--enable-libmp3lame \ | --enable-libcdio --enable-libbluray --enable-libpulse \ | ||
--enable-libtheora \ # オープンなビデオ圧縮フォーマット | |||
--enable-libvidstab \ # ビデオのデシェイクを行うライブラリ | |||
--enable-libwebp \ | |||
--enable-libxvid \ # MPEG-4/Xvid エンコーダ | |||
--enable-libzvbi --enable-libzmq --enable-libzimg \ | |||
--enable-chromaprint \ # オーディオソースからフィンガープリントを抽出するライブラリ | |||
--enable-frei0r \ # 動画フィルタのためのAPI | |||
--enable-openal --enable-opengl \ | |||
--enable-libdrm \ # Direct-Renderingマネージャライブラリ | |||
--enable-libass \ # ASS/SSA (Advanced Substation Alpha/Substation Alpha)サブタイトルフォーマット用のサブタイトルレンダラ (VSFilterと互換性がある) | |||
--enable-libmp3lame \ # Lame | |||
--enable-libtwolame \ # Mpeg2 最適化エンコーダ | |||
--enable-libx264 \ # H.264 | --enable-libx264 \ # H.264 | ||
--enable-libx265 \ # H.265/HEVC | --enable-libx265 \ # H.265/HEVC | ||
298行目: | 310行目: | ||
--enable-libdav1d \ # AV1デコーダ(libaomよりも高速) | --enable-libdav1d \ # AV1デコーダ(libaomよりも高速) | ||
--enable-libaom \ # AV1 ビデオエンコーダ/デコーダ | --enable-libaom \ # AV1 ビデオエンコーダ/デコーダ | ||
--enable-libsvtav1 \ | --enable-libsvtav1 \ # AV1 ビデオエンコーダ/デコーダ | ||
--enable-libvorbis \ | --enable-libvorbis \ # オーディオ向けの汎用圧縮オーディオフォーマット | ||
--enable-libvmaf | --enable-libvmaf \ | ||
--enable-libcodec2 \ # 700~3200[bps]の通信品質の音声に対応した音声コーデック | |||
--enable-libmysofa \ # AES69-2015規格に従って保存されたHRTFを含むAES SOFAファイルを読み込むためのライブラリ | |||
--enable-libdc1394 \ # 1394 BDCSに準拠したカメラを制御するための機能(カメラとの通信は、libraw1394が提供する低レベルの機能を利用) | |||
--enable-libgme # Game Music Emulatorは、ビデオゲーム音楽ファイルエミュレータ集 | |||
make -j $(nproc) | make -j $(nproc) | ||
make install | make install |
2022年11月21日 (月) 22:16時点における版
概要
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 \ 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-shared \ # FFmpegの設定オプション --enable-gray \ # FFmpegの設定オプション # 以下は、外部ライブラリのサポート --enable-gpl \ --enable-gnutls \ --enable-libfontconfig --enable-libfreetype --enable-libfribidi \ # ドローテキストフィルタ向け --enable-libxml2 \ --enable-libcdio --enable-libbluray --enable-libpulse \ --enable-libtheora \ # オープンなビデオ圧縮フォーマット --enable-libvidstab \ # ビデオのデシェイクを行うライブラリ --enable-libwebp \ --enable-libxvid \ # MPEG-4/Xvid エンコーダ --enable-libzvbi --enable-libzmq --enable-libzimg \ --enable-chromaprint \ # オーディオソースからフィンガープリントを抽出するライブラリ --enable-frei0r \ # 動画フィルタのためのAPI --enable-openal --enable-opengl \ --enable-libdrm \ # Direct-Renderingマネージャライブラリ --enable-libass \ # ASS/SSA (Advanced Substation Alpha/Substation Alpha)サブタイトルフォーマット用のサブタイトルレンダラ (VSFilterと互換性がある) --enable-libmp3lame \ # Lame --enable-libtwolame \ # Mpeg2 最適化エンコーダ --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 \ # AV1 ビデオエンコーダ/デコーダ --enable-libvorbis \ # オーディオ向けの汎用圧縮オーディオフォーマット --enable-libvmaf \ --enable-libcodec2 \ # 700~3200[bps]の通信品質の音声に対応した音声コーデック --enable-libmysofa \ # AES69-2015規格に従って保存されたHRTFを含むAES SOFAファイルを読み込むためのライブラリ --enable-libdc1394 \ # 1394 BDCSに準拠したカメラを制御するための機能(カメラとの通信は、libraw1394が提供する低レベルの機能を利用) --enable-libgme # Game Music Emulatorは、ビデオゲーム音楽ファイルエミュレータ集 make -j $(nproc) make install