LeapcellでFFmpegアプリケーションをデプロイする
以下の解決策で問題が解決しない場合は、Leapcell Discordコミュニ ティに参加して、さらに支援を受けてください。
Leapcellでは、FFmpegを使用してビデオや画像を処理するFlask Pythonアプリケーションを、わずか数ステップでデプロイできます。このガイドでは、Flaskをインターフェースとして使用してFFmpeg操作を処理する方法を説明します。Flask経由でファイルをアップロードし、それをFFmpegで処理します。
このクイックスタートでは、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():
# Get the video file from the request
file = request.files['file']
output_format = request.form['format']
# Save the input file, it must be in the '/tmp' folder
input_path = '/tmp/input_video.mp4'
file.save(input_path)
# Define the output path
output_path = f'/tmp/output_video.{output_format}'
# Run FFmpeg to convert the video
command = ['ffmpeg', '-i', input_path, output_path]
subprocess.run(command, check=True)
# Return the path to the converted file
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が表示されます。このドメインを使用してアプリケーションをテストします。
継続的デプロイメント
リンクされたブランチへのすべてのプッシュは、自動的にビルドとデプロイをトリガーします。ビルドが失敗した場合、現在のバージョンは、次の成功したデプロイまでライブのままです。
継続的デプロイメントの詳細をご覧ください。