ご提示いただいたコマンドには不可解な点がいくつかあります。
まず、x264はffmpeg以外でも利用する可能性があって、--enable-shared
を付けているのでしょうか?また、--prefix
をつけていないため、インストール先はデフォルト(/usr/localなのかな?)になりますが、それだとユーザー権限のままmake install
を実行しても書き込み権限がないために失敗するでしょう。それなのに、/usr/local/bin
にx264が存在すると記されているのですが、そのx264はどこから出てきたものなのでしょうか。これはffmpegについても言えます。
ffmpegのビルドについても、Stan_Dmaさんがコメントされている通り、環境変数PKG_CONFIG_PATHによって、(成功しているなら)先にインストールしたx264による情報が存在するpkgconfigへのパス(prefix無指定インストールなら/usr/local/lib/pkgconfig
)を指定する必要があります。それが抜けている状態でffmpegをビルドしても正常に通るのかすらわかりませんし、通ってもlibx264を参照することはできないでしょう。
また、Amazon Linux2はよく知らないのですが、これは「元々導入されているx264やffmpegを上書きする」意図を持った作業なのでしょうか?もしそうであった場合、パッケージ管理システムなどの管理上破綻しない形で導入しないと、後で困ることになるかもしれません。
そうした他の管理システムやライブラリーとの干渉を意識せずに済むように、ファイルサイズは少し大きくなる代わりに他のプログラムやライブラリーを参照しないスタティックなffmpegをビルドしてみてはどうでしょうか。下記に記した例では、ホーム直下にMyFFmpegという作業ディレクトリーを作成して、その中でffmpegのビルドまで全て完結するようにしているつもりです。
bash
1$ cd
2$ mkdir MyFFmpeg
3$ cd MyFFmpeg
4$ git clone git://git.videolan.org/x264
5$ cd x264
6$ git checkout stable
7$ ./configure --prefix="$HOME/MyFFmpeg/build" --enable-pic --enable-static
8$ make
9$ make install
10$ cd ..
11$ git clone https://github.com/FFmpeg/FFmpeg.git
12$ cd FFmpeg
13$ git checkout refs/tags/n4.1.1
14$ PKG_CONFIG_PATH="$HOME/MyFFmpeg/build/lib/pkgconfig" ./configure --prefix="$HOME/MyFFmpeg/build" --pkg-config-flags="--static" --extra-cflags="-I$HOME/MyFFmpeg/build/include" --extra-ldflags="-L$HOME/MyFFmpeg/build/lib" --extra-libs="-lpthread" --enable-gpl --disable-shared --enable-static --enable-libx264
15$ make
16$ make install
これで作業完了すると、$HOME/MyFFmpeg/build/bin/
の下にffmpegというファイルが出力されているはずです。このファイル1つで単独動作するものなので、これをどこか任意の場所にコピーして用いれば、libx264によるエンコードやデコードもできるようになっているはずです。