#!/bin/bash
#ffmpegのビルドに必要なライブラリのインストール-----------------------------------------
sudo apt -y update
sudo apt -y upgrade
sudo apt -y install yasm
sudo apt -y install nasm
sudo apt -y install cmake
sudo apt -y install git
sudo apt -y install pkg-config
#ソフトウェアエンコードとAV1デコードに必要なライブラリのインストール--------------------------
sudo apt install -y libx264-dev
sudo apt install -y libx265-dev libnuma-dev
sudo apt install -y libdav1d-dev
#ffmpegのダウンロード、インストール-----------------------------------------------------------
cd ~
mkdir -p install
cd install
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --enable-libx264 --enable-libx265 --enable-libdav1d --enable-gpl
sudo make -j$(nproc)
sudo make install
いきなりスクリプトをぶっこんでますが、このスクリプトを
テキストファイルにまるまるコピペして、「ffmpeg_install.sh」等ファイル名をつけて
bash ./ffmpeg_install.sh
で実行すれば、ubuntuにffmpegをインストールすることができます。
ただし、今回のスクリプトはソフトウェアエンコードのみの対応です。
ハードウェアエンコードは別の記事で書きます。
ここから解説
さてここから解説ですが、
そもそもubuntuを使う人がWindowsに比べて少ない上に
ffmpegを使う人となるともっと少なくなるので、誰にとって得になるの?って情報ですが
書いていきますね。
ffmpegは動画を加工したりするソフトですが、ただエンコードしたり、音声を抜き出したり、カットしたりするだけなら「Handbreak」みたいなGUIソフトのほうがずっとわかりやすくてとっつきやすいです。
ただ、自作の自動化スクリプトに組み込んだりするときは、ffmpegの方が便利だったりします。
ですが、今回はそのへんについては書きません。別の記事で書く予定です。
今回はubuntuにffmpegをインストールする覚書です。
ffmpegのバージョン
ubuntuにはバージョンがありますが、そのバージョンに標準で対応したffmpegをワンコマンドでインストールすることもできます。
自分が使っている「ubuntu 22.04.5」では標準対応したffmpegのバージョンは「4.4.2」だったと思いますが、これはこのままでは「AV1エンコード」には対応していません。
sudo apt install ffmpeg
実はこだわりがなければこの方法ですべて完結します。
ubuntuのバージョンによっては、AV1のエンコードまで出来てしまうかもしれません。
しかし、これでは記事がここで終わってしまうので
あえて、別の方法をとろうと思います。
一応、自由にカスタマイズ出来るという利点を無理やりこじつけます。
というわけで、別のインストール手順
1・ffmpegのダウンロード
2・ffmpegのビルドに必要なツール、ライブラリのインストール
3・有効化したいエンコーダに必要なライブラリのインストール
4・ffmpegのビルド、インストール
という手順になります。
今回はAMFやnvencの有効化はしません。
ハードウェアに依存しないインストール方法です。
1.ffmpegのダウンロード
以下のコマンドでffmpegの最新版をダウンロードできます。
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
現在のディレクトリにダウンロードされます。
ビルドとインストール自体は、どのディレクトリでも構わないとは思いますが
管理しやすいよう自分で場所を決めておくと良いでしょう。
自分はいつもhomeディレクトリにinstallディレクトリを作って入れています。
2.ffmpegのビルドに必要なツール、ライブラリのインストール
以下はカレントディレクトリはどこにいても構いません。
ffmpegのビルドに必要なツール、ライブラリ等のインストール
sudo apt -y update
sudo apt -y upgrade
sudo apt -y install yasm
sudo apt -y install nasm
sudo apt -y install cmake
sudo apt -y install git
sudo apt -y install pkg-config
3.有効化したいエンコーダに必要なライブラリのインストール
H.264やH.265のソフトウェアエンコードもできるようにしましょう。
sudo apt install -y libx264-dev
sudo apt install -y libx265-dev libnuma-dev
sudo apt install -y libdav1d-dev
上の2行はエンコーダに必要なライブラリのインストールですが、
3行目はAV1で作られた動画を加工できるようにする、AV1デコーダです。
AV1エンコードもできるようにしたいのですが、記事が冗長になりますので
別記事にしようと思います。
4.ffmpegのビルド、インストール
自分はいつもhomeディレクトリにinstallというディレクトリを作って、
そのなかにぶっこんでしまうようにしています。
cd ~
mkdir -p install
cd install
git clone https://git.ffmpeg.org/ffmpeg.git ffmpeg
cd ffmpeg
./configure --enable-libx264 --enable-libx265 --enable-libdav1d --enable-gpl
sudo make -j$(nproc)
sudo make install
「cd ~」で現在どのディレクトリにいようとhomeディレクトリに移動します。
「mkdir」でinstallディレクトリを作成した後、「cd install」でinstallディレクトリに移動。
ffmpegの最新版をダウンロードした後、「cd ffmpeg」でダウンロードしたffmpegディレクトリへ移動。
「./configure –enable-libx264 –enable-libx265 –enable-libdav1d –enable-gpl」
でffmpegに実装したい機能を有効化します。
「sudo make -j$(nproc)」
でビルドします。「-j$(nproc)」で使っているPCのCPUリソースを最大まで引き出します。
最近のPC(2024/11/10現在)ならおおよそ1分くらいでビルドできると思いますが、なんらかの事情で実行プロセスを制限したい場合、
sudo make -j$(nproc --ignore=4)
などのオプションをつけることで、プロセス数を制限することができるようです。
上記の場合はCPUのもつ最大スレッド数から4個分のプロセスユニットを無視できるらしいです。
「sudo make install」でビルドしたffmpegをインストールします。
インストール作業はこれで終了です。
最後に確認してみよう
ffmpeg -version
でインストールされたffmpegのバージョンが確認できます。
ほかにも
ffmpeg -encoders
でインストールしたffmpegのエンコードの対応状況を確認できます。
今回は以上です。