Help us understand the problem. What is going on with this article?

さくらインターネットのレンタルサーバ、スタンダードプラン以上の環境で、シェルから FFmpeg のコンパイルする。

イントロダクション

通常の契約をして、ssh でログインするトコまでは割愛しておく🌝

私の契約している環境では FreeBSD 9.1-RELEASE だったので、ホームディレクトリ上に実行ファイルやライブラリを構築しなければならない。
従って、以下の環境変数の設定と各ディレクトリを作成をしておく。

環境設定

環境変数は好みのシェルに合わせてログイン時に自動的に読み込むようにして置くことで、毎回手動で入力する事が省くことができるから、初期のシェルが csh だったので、.cshrc に追記しておく。

.cshrc
setenv TZ JST-09
setenv LANG ja_JP.UTF-8
set path = (/sbin /bin /usr/sbin /usr/bin /usr/games /usr/local/sbin /usr/local/bin $HOME/bin)
set dspmbyte utf8
setenv TMPDIR ~/tmp
setenv LIBRARY_PATH ~/lib
setenv LD_LIBRARY_PATH ~/lib
setenv C_INCLUDE_PATH ~/include
setenv PKG_CONFIG_PATH /usr/local/libdata/pkgconfig/:~/libdata/pkgconfig

ディレクトリの作成

% mkdir -p ~/tmp ~/lib ~/libdata ~/include

以下のライブラリは、日本放送協会が展開している「らじるらじる」を、録音する際に必要になるので、録音しない場合は飛ばしてもいい。
注:20180727 現在では rtmpe プロトコルを用いての配信終了したそうなので、以下の gmp のインスコはスルーしてよい。

必要ライブラリのビルド

gmp
% cd ~ && fetch -o- https://gmplib.org/download/gmp/gmp-6.1.2.tar.xz | bsdtar xf - && cd gmp-6.1.2
% ./configure M4=m4 --prefix=${HOME} CC=clang
% gmake -j16 install && cd

ご本尊の build は、上記のライブラリを読み込むか否かで、configure のスイッチを変更する必要があるので注意する事。

ご本尊のビルド

FFmpeg
% cd ~ && fetch -o- https://ffmpeg.org/releases/ffmpeg-4.3.tar.xz | bsdtar xf - && cd ffmpeg-4.3
% ./configure --disable-x86asm --enable-gmp --enable-openssl --enable-version3 --cc=clang --prefix=${HOME} --disable-ffplay --disable-doc --disable-htmlpages --disable-podpages --disable-txtpages --enable-manpages --enable-small --enable-openssl --enable-static --progs-suffix=`pwd | awk -F- '{print $NF}' | tr -d .`

注:gmp ライブラリをインスコしていなければ、--enable-gmp を削除すること

% gmake -j16 all
% install ffmpeg`pwd | awk -F- '{print $NF}' | tr -d .` ~/bin/
% install ffprobe`pwd | awk -F- '{print $NF}' | tr -d .` ~/bin/

注:Makefile 使って install すると使わないファイルもインストールするのでバイナリだけインストールする。

これで、ffmpeg がコマンドラインから使えるようになる。

最後に後始末として不要なら、ソースファイルの tarball や作業ディレクトリを削除しておけば、無駄な容量消費を抑えられる。

% # 必要であれば gmp も削除する
% cd ~
% rm -Rf gmp-6.1.2
% rm -Rf ffmpeg-4.2.2

コンクルージョン

この手順書では、ffmpeg コマンドの後ろに便宜上バージョン番号を付しいるが、不要の場合は ./configure 及び install コマンド中の pwd ... の記述を削除すれば従来通りのバージョン番号の付さない実行形式が生成される。

je3kmz
FreeBSD 関連の作業メモが中心で、記述内容については NC でお願いしますが、質問大歓迎です。
https://people.freebsd.org/~je3kmz/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away