herokuにffmpegを使ってアップロードした動画ファイルのキャプチャを一緒に上げるようなサービスを作っていました。開発環境では動作確認できたのですが、heroku上で動きませんでした…
その時の対応です。railsで構築しています。
僕はmacを使っているのですが、そもそもmacでbuildしたffmpegはherokuでは動作しません。(そりゃそうだ…)
なのでheroku環境用のffmpegバイナリを用意する必要があります。
1. heroku環境用のffmpegのバイナリを用意する
こちらのサイトで生成方法を紹介しています。
僕の場合はbuildするのも面倒だったので、上記のサイトのバイナリを使わせていただきました。
上記のサイトを辿って行きくとこちらのgithubにたどり着きます。
https://github.com/shunjikonishi/heroku-buildpack-ffmpeg/blob/master/bin/compile#L10
ここでffmpeg.tar.gzをダウンロードしました。
そしてこれをアプリケーションディレクトリの”vendor/”以下に展開します。
これをcommitしてherokuにdeployして下さい。
2. herokuにpathの設定をする
herokuにffmpegのpathを通します。
‘app-name’のところはご自分のapp nameを入れて下さい。 また、rubyのバージョンも気をつけて下さい。
1 |
[dosukoi] % heroku config:set PATH=bin:/app/vendor/ffmpeg/bin:/app/vendor/bundle/ruby/2.1.0/bin:/usr/local/bin:/usr/bin:/bin -a 'app-name' |
1 |
[dosukoi] % heroku config:set LD_LIBRARY_PATH=vendor/ffmpeg/lib:/usr/local/lib -a 'app-name' |
3. 動作確認
これで準備完了です。
以下のコマンドで動作確認できます
1 2 3 4 5 6 7 8 9 10 11 12 |
[dosukoi] % heroku run "ffmpeg -version" --app 'app-name' (git)-[master] Running ffmpeg -version on 'app-name'... up, run.4429 ffmpeg version git-2013-06-02-5711e4f built on Jun 2 2013 07:38:40 with gcc 4.4.3 (Ubuntu 4.4.3-4ubuntu5.1) configuration: --enable-shared --disable-asm --prefix=/app/vendor/ffmpeg libavutil 52. 34.100 / 52. 34.100 libavcodec 55. 13.100 / 55. 13.100 libavformat 55. 8.102 / 55. 8.102 libavdevice 55. 2.100 / 55. 2.100 libavfilter 3. 74.101 / 3. 74.101 libswscale 2. 3.100 / 2. 3.100 libswresample 0. 17.102 / 0. 17.102 |
以上です
コメントを残す