LeapcellでFFmpegアプリをデプロイする
Leapcell上で、FFmpegを使用してビデオや画像を処理するFlask Pythonアプリをわずか数ステップでデプロイできます。このガイドでは、Flaskを経由してファイルをアップロードし、FFmpegで処理することで、FFmpegの操作を処理するインターフェースとしてFlaskを使用する方法を説明します。
このクイックスタートでは、FFmpegコマンドを実行するサンプルFlaskアプリを使用します。これは、要件に合わせてカスタマイズできます。
続行するにはGitHubアカウントが必要です。お持ちでない場合は、GitHubのウェブサイトで作成できます。
1. GitHubでFlask FFmpegの例をフォークします。
リポジトリ: Flask FFmpegの例
以下は、ビデオを異なる形式に変換するFFmpegコマンドを実行する基本的なapp.py
ファイルです。
from flask import Flask, request, jsonify
import subprocess
app = Flask(__name__)
@app.route('/convert', methods=['POST'])
def convert_video():
# リクエストからビデオファイルを取得
file = request.files['file']
output_format = request.form['format']
# 入力ファイルを保存します。これは「/tmp」フォルダにある必要があります
input_path = '/tmp/input_video.mp4'
file.save(input_path)
# 出力パスを定義する
output_path = f'/tmp/output_video.{output_format}'
# FFmpegを実行してビデオを変換する
command = ['ffmpeg', '-i', input_path, output_path]
subprocess.run(command, check=True)
# 変換されたファイルへのパスを返す
return jsonify({"output_file": output_path})
if __name__ == '__main__':
app.run(debug=True)
このFlaskアプリは、POSTリクエストを介してビデオファイルを受け入れ、FFmpegを使用して目的の形式に変換します。
次のコマンドを使用して、APIをローカルでテストできます。
curl -F "file=@/path/to/video.mp4" -F "format=mp4" http://localhost:5000/convert
/tmp/output_video.{output_format}
の結果をオブジェクトストレージまたはその他のサービスにアップロードできます。
2. Leapcellダッシュボードでサービスを作成し、新しいリポジトリを接続します
Leapcellダッシュボードに移動し、新しいサービスボタンをクリックします。
「新しいサービス」ページで、フォークしたばかりのリポジトリを選択します。
リポジトリにアクセスするには、LeapcellをGitHubアカウントに接続する必要があります。
接続すると、リポジトリがリストに表示されます。
3. 作成中に次の値を指定します。
FFmpegを手動でインストールする必要があります。ビルドコマンドに以下を含めます。
apt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt
フィールド | 値 |
---|---|
ランタイム | Python (任意のバージョン) |
ビルドコマンド | apt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt |
開始コマンド | gunicorn -w 1 -b :8080 app:app |
ポート | 8080 |
これらの値を対応するフィールドに入力します。
4. アプリにアクセスする
デプロイされると、デプロイメントページにfoo-bar.leapcell.dev
のようなURLが表示されます。このドメインを使用してアプリをテストします。
継続的デプロイメント
リンクされたブランチへのすべてのプッシュは、自動的にビルドとデプロイをトリガーします。ビルドが失敗した場合、次のデプロイが成功するまで、現在のバージョンがライブのままになります。
継続的デプロイメントの詳細をご覧ください。