ffmpegをエックスサーバーで使用するにあたっての注意
Xserverの禁止事項にも記載してある通り、高負荷の処理は禁止されています。
また、エックスサーバーは共用サーバーなのでffmpegを使って高負荷をかけると他の利用者にも迷惑がかかってしまいます。最悪の場合、サーバーが停止することも考えられるため使用する際はかなり気をつける必要があります。
これはエックスサーバーだけに問わす他のレンタルサーバーにも言えることなので注意しましょう。
どうしても、Webサーバーでffmpegを使用したいまたは高負荷がかかる処理を行いたい場合はAWSのEC2やVPSを使用することをおすすめします。
ffmpegのバイナリーデータをダウンロードする
MacやWindowsは基本的にインストール処理を行う必要があったりしますが、実はファイルを設置するだけで実行できる形式のffmpegが存在します。
そのffmpegは以下のサイトからダウンロードすることができます。
https://ffbinaries.com/downloads
エックスサーバーはLinuxサーバーなのでlinux-64をダウンロードします。
必要に応じてffprobeも一緒にダウンロードするのも良いでしょう。
ffmpegをサーバーにアップロードする
先ほどダウンロードしたffmpegを以下のディレクトリにアップロードします。
/home/自分のサーバー名/.local/bin/
.localディレクトリがない場合は作成しましょう。
SSHでffmpegを使用できるように設定する
ffmpegをアップロードしたあとSSHで実行できるように権限を付与したりパスを通してあげる必要があります。
ffmpegに実行権限パーミッションを付与する
アップロードしたffmpegが実行できるように権限を設定します。
まずは、cdコマンドでアップロードしたffmpegのディレクトリまで移動します。
$ cd ~/.local/bin
次にchmodコマンドで実行権限を付与します。
$ chmod +x ffmpeg
ffmpegコマンドを叩いて実行できれば完了です。
$ ./ffmpeg
ffmpeg version 4.2.1-static https://johnvansickle.com/ffmpeg/ Copyright (c) 2000-2019 the FFmpeg developers
built with gcc 6.3.0 (Debian 6.3.0-18+deb9u1) 20170516
configuration: --enable-gpl --enable-version3 --enable-static --disable-debug --disable-ffplay --disable-indev=sndio --disable-outdev=sndio --cc=gcc-6 --enable-fontconfig --enable-frei0r --enable-gnutls --enable-gmp --enable-libgme --enable-gray --enable-libaom --enable-libfribidi --enable-libass --enable-libvmaf --enable-libfreetype --enable-libmp3lame --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libopenjpeg --enable-librubberband --enable-libsoxr --enable-libspeex --enable-libsrt --enable-libvorbis --enable-libopus --enable-libtheora --enable-libvidstab --enable-libvo-amrwbenc --enable-libvpx --enable-libwebp --enable-libx264 --enable-libx265 --enable-libxml2 --enable-libdav1d --enable-libxvid --enable-libzvbi --enable-libzimg
libavutil 56. 31.100 / 56. 31.100
libavcodec 58. 54.100 / 58. 54.100
libavformat 58. 29.100 / 58. 29.100
libavdevice 58. 8.100 / 58. 8.100
libavfilter 7. 57.100 / 7. 57.100
libswscale 5. 5.100 / 5. 5.100
libswresample 3. 5.100 / 3. 5.100
libpostproc 55. 5.100 / 55. 5.100
Hyper fast Audio and Video encoder
usage: ffmpeg [options] [[infile options] -i infile]... {[outfile options] outfile}...
Use -h to get full help or, even better, run 'man ffmpeg'
.bash_profileを編集してパスを通す
この作業は必要に応じて行うものになるので不要な方はスキップしても問題ありません。
.bash_profileに以下のようにパス設定を行います。
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# 以下を記述する
PATH=$HOME/.local/bin:$HOME/bin:$PATH
export PATH
記述して保存した後は、bash_profileを再読み込みします。
$ source ~/.bash_profile
再読み込み後は`ffmpeg`コマンドを叩いて実行できれば無事成功です。
まとめ
エックスサーバーでは、yumでのインストールができないのでffmpegを使用できないように思われがちですが、バイナリファイルを設定することで使用できるようになります。
動画の長さやアスペクト比などメタデータの取得程度や動画から数枚の画像を抽出するなどの軽い処理であれば問題ないとは思いますが、冒頭でも記載しましたが動画変換などサーバーに著しい負荷を与えることはNGなので共用レンタルサーバーでの使用は十二分に注意して使用しましょう。