1. ホーム
  2. ffmpeg

[解決済み] FFmpeg を libfdk_aac と共にコンパイルする。

2022-02-07 10:19:31

質問

mp3 を m4a に変換する方法を読んでいて、AAC エンコーダの libfdk_aac を使用する場合は FFmpeg をコンパイルしなければならないことがわかりました。

しかし、FFmpegのガイドを読むと、FFmpegをlibfdk_aacでコンパイルする方法は、私のような初心者には意味がありません。

libfdk_aac を使用するために、エンコーディングガイドにはこう書かれています。

ffmpegが--enable-libfdk_aacで設定されている必要があります。 --enable-nonfree.

そのフラグはどこに置けばいいのですか?

この辺に置けばいいのかな?

cd ~/ffmpeg_sources
git clone --depth 1 git://github.com/mstorsjo/fdk-aac.git
cd fdk-aac
autoreconf -fiv
./configure --prefix="$HOME/ffmpeg_build" --disable-shared
make
make install
make distclean

それとも、この辺りかな?

cd ~/ffmpeg_sources
git clone --depth 1 git://source.ffmpeg.org/ffmpeg
cd ffmpeg
PKG_CONFIG_PATH="$HOME/ffmpeg_build/lib/pkgconfig"
export PKG_CONFIG_PATH
./configure --prefix="$HOME/ffmpeg_build" \
  --extra-cflags="-I$HOME/ffmpeg_build/include" --extra-ldflags="-L$HOME/ffmpeg_build/lib" \
  --bindir="$HOME/bin" --extra-libs="-ldl" --enable-gpl --enable-libass --enable-libfdk-aac \
  --enable-libmp3lame --enable-libopus --enable-libtheora --enable-libvorbis --enable-libvpx \
  --enable-libx264 --enable-nonfree --enable-x11grab
make
make install
make distclean
hash -r

もし私がコンパイルガイドを正しく読んでいれば、この2つのコードの塊がFFmpegをコンパイルするのに必要なものだと思います。

Ubuntu server 12.4 を使用しています。

アップデイト

システムをUbuntu 16.04にアップグレードした後、ffmpegを再度インストールする必要がありました。 まだlibfdk-aacが必要でした。幸いにも、良いステップバイステップガイドが以下にあります。 http://trac.ffmpeg.org/wiki/CompilationGuide/Ubuntu ffmpegのコンパイル方法について。

でのffmpegのコンパイルに興味があるだけなら、コンパイル方法を共有しようと思いました。 libfdk-aac libmp3lame .

ホームディレクトリにbinがない場合。

mkdir ~/bin 

依存関係をインストールします。サーバー以外のパッケージは必要ありませんでした。

sudo apt-get update
sudo apt-get -y install autoconf automake build-essential libass-dev libfreetype6-dev libtheora-dev libtool libvorbis-dev pkg-config texinfo zlib1g-dev 

次にエンコーダをインストールします。yasmもインストールしないと、コンパイル時にエラーになります。

sudo apt-get install libfdk-aac-dev
sudo apt-get install libmp3lame-dev
sudo apt-get install yasm

次に、必要なフラグを付けてffmpegをコンパイルします。

cd ~/ffmpeg_sources
wget http://ffmpeg.org/releases/ffmpeg-snapshot.tar.bz2
tar xjvf ffmpeg-snapshot.tar.bz2
cd ffmpeg
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" \
--bindir="$HOME/bin" \
--enable-libass \
--enable-libfdk-aac \
--enable-libfreetype \
--enable-libtheora \
--enable-libvorbis \
--enable-libmp3lame \
--enable-nonfree \
--enable-gpl
PATH="$HOME/bin:$PATH" make
make install
make distclean
hash -r

解決方法は?

<ブロッククオート

ffmpegが以下のように設定されている必要があります。 --enable-libfdk_aac --enable-nonfree .

これらの指示は、ffmpeg configureのことであり、ffdk-aac configureのことではありません。さらに FFmpegとAACエンコーディング のガイドにしたがっているものと思われます。 Ubuntu、Debian、またはMintでFFmpegをコンパイルする のガイドを参照してください。このガイドには、ffmpeg で libfdk_aac をサポートするために必要なものがすべてすでに含まれています。 --enable-libfdk_aac--enable-nonfree は、すでに ./configure の行は、ffmpeg のためのものです。

あとは、各コードボックスをうまくコピー&ペーストするだけです。