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

LeapcellでFFmpegアプリケーションをデプロイする

以下の解決策で問題が解決しない場合は、Leapcell Discordコミュニティに参加して、さらに支援を受けてください。

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

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

継続的デプロイメント

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

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