FFmpeg
動画・音声の形式を変換する、オープンソースのコマンドラインツール・ソフトウェアです。
ただ形式を変換するだけでなく様々な機能を持っていますが、当サイトではその機能の一部を使用しています。
ファイル形式
mp3では途切れのないループにするのが難しく(ライセンスの問題もありましたが、2017年4月23日に特許は消滅しました)、主にゲーム音楽では、oggという音声形式が使われています。
しかしながら、ブラウザゲームやスマホアプリが台頭してきた今、Apple製品(ios,safari)ではこの形式に対応しておらず、別途m4a(AAC)という形式を用意します。
AAC
このAACの変換に関して、Fraunhofer IISによって開発された、非常に高品質なFDK AACというコーデックがあるのですが、特許関係が込み入ってます。
AAC自体の使用ライセンスは問題ないのですが、FDK AACと、FFmpegのライセンスであるGPLの、特許関連の項目に齟齬があり、配布するFFmpegのバイナリに、FDK AACは組み込むことができないので、もし使用するのであれば、各自ソースからビルドすることが推奨されています。
FFmpegのチームが独自に開発しているAACのコーデックがあるのですが、今の段階では、FDK AACの方が音質がいいので、当サイトでは、そのライブラリであるlibfdk_aacを組み込んで使用しています。
ビルド
FFmpegのwikiを参考にビルドしました。
当方の環境だけかもしれないですが、curl
で圧縮ファイルをダウンロードすると、解凍に失敗することがあったので、代わりにwget
を使いました。
ビルド後パスを通すために、コマンドラインで、/home/ユーザー名/bin/
にある実行ファイルの、シンボリックリンクを/usr/local/bin/
に張り、
sudo ln -s /home/ユーザー名/bin/ffmpeg /usr/local/bin/ffmpeg
PHP-FPMのデフォルトの設定ではパス(環境変数)を読み込まないので、/etc/php-fpm.d/www.conf
の設定ファイルで、環境変数をクリアしないようにしました。
; Default Value: yes
clear_env = no
設定ファイルを変更したら、PHP-FPMを再起動します。
sudo systemctl restart php-fpm.service
URL: sac.ringil-music.com
環境: さくらのVPS・Centos7・Nginx・PHP-FPM