メインコンテンツへスキップ

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アカウントに接続する必要があります。

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が表示されます。このドメインを使用してアプリをテストします。

継続的デプロイメント

リンクされたブランチへのすべてのプッシュは、自動的にビルドとデプロイをトリガーします。ビルドが失敗した場合、次のデプロイが成功するまで、現在のバージョンがライブのままになります。

継続的デプロイメントの詳細をご覧ください。