ubuntuでffmpeg

#!/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のエンコードの対応状況を確認できます。
今回は以上です。

タイトルとURLをコピーしました