APで元動画を受け付けて、ffmpegで変換って流れです。
で、ffmpegってそれなりにCPUが必要ですよね。thread オプションで調整はできるがスレッドが少ないと時間もその分かかる。
速度重視設定の場合、変換処理が重なった場合にAP側の機能への影響が怖い。。。
とういことで、変換専用のサーバーの構築です。
問題はAPで受け付けた元動画の共有と、APからリモートのFFMPEGの呼び出し。
考えてみた方法は以下:
1.動画の共有
FFMPEGサーバーのディスクをマウントし、APと共有する。
(どっちをどっちにマウントするかは設計次第で。FFMPEGが複数台なら、APのディスクをマウントしたほうがやりやすいでしょう。)
2.APからFFMPEGサーバーへコマンド発信
SSH経由で発行。sshpassでパスを省略。
参考:
コマンド発行方法
http://marucc.hatenablog.com/entry/20080206/1202301411
パスフレーズ省略
http://calcurio.com/wordpress/?p=1768
この2つの方法で実現してみる。
まずはAPサーバーにsshpassのインストール。
# tar -xzf sshpass.tar.gz
# cd sshpass-1.05
# ./configure
# make
# make install
# sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@FFMPEGサーバー
おー。パス入力なしでログインできた。
次にFFMPEGコマンドを送ってみる。FFMPEGサーバーに変換元動画を配置して
# echo ffmpeg -i Wildlife.wmv Wildlife.mp4 | sshpass -p 'password' ssh -o StrictHostKeyChecking=no user@FFMPEGサーバー
おー!変換できた。これはいけそうですね。
次にマウント。お手軽にsshfsを利用します。
APサーバーにsshfsをインストール(※epelリポジトリの登録が必要かも。)
# yum install fuse-sshfs
APサーバーに/mnt/ffmpegを作って、FFMPEGサーバーの/home/userをマウントします。
# sshfs user@FFMPEGサーバー:/home/user /mnt/ffmpeg
# df -h
user@FFMPEGサーバー:/home/user
405G 177G 208G 47% /mnt/ffmpeg
マウント完了。
これでひとまずの土台はできましたね。
他にも権限やら色々と問題起きそうですが、この方向性で進めてみます。
以上