Zum Hauptinhalt springen

Bereitstellung einer FFmpeg-App auf Leapcell

Sie können eine Flask Python-App, die FFmpeg zur Verarbeitung von Videos oder Bildern verwendet, in wenigen Schritten auf Leapcell bereitstellen. Dieser Leitfaden demonstriert die Verwendung von Flask als Schnittstelle zur Handhabung von FFmpeg-Operationen, indem Dateien über Flask hochgeladen und anschliessend mit FFmpeg verarbeitet werden.

Dieser Schnellstart verwendet eine Beispiel-Flask-App, die FFmpeg-Befehle ausführt, die Sie an Ihre Anforderungen anpassen können.

Info Die Standardbezeichnung für die Info-Ermahnung (:::info)

Sie benötigen ein GitHub-Konto, um fortzufahren. Wenn Sie noch keins haben, können Sie eines auf der GitHub-Website erstellen.

1. Forken Sie das Flask FFmpeg Beispiel auf GitHub.

Repo: Flask FFmpeg Beispiel

Hier ist eine einfache app.py-Datei, die einen FFmpeg-Befehl ausführt, um ein Video in ein anderes Format zu konvertieren:

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)

Diese Flask-App akzeptiert eine Videodatei über eine POST-Anfrage und konvertiert sie mit FFmpeg in das gewünschte Format.

Sie können die API lokal mit dem folgenden Befehl testen:

curl -F "file=@/path/to/video.mp4" -F "format=mp4" http://localhost:5000/convert

Vielleicht laden Sie das Ergebnis von /tmp/output_video.{output_format} auf Objektspeicher oder andere Dienste hoch.

2. Erstellen Sie einen Service im Leapcell Dashboard und verbinden Sie Ihr neues Repository

Gehen Sie zum Leapcell Dashboard und klicken Sie auf die Schaltfläche New Service.

Wählen Sie auf der Seite "New Service" das Repository aus, das Sie gerade geforkt haben.

Tipp Die Standardbezeichnung für die Tip-Ermahnung (:::tip)

Um auf Ihre Repositories zuzugreifen, müssen Sie Leapcell mit Ihrem GitHub-Konto verbinden.

Folgen Sie diesen Anweisungen, um eine Verbindung zu GitHub herzustellen.

Sobald die Verbindung hergestellt ist, werden Ihre Repositories in der Liste angezeigt.

3. Geben Sie während der Erstellung die folgenden Werte an:

Info Die Standardbezeichnung für die Info-Ermahnung (:::info)

Wir müssen FFmpeg manuell installieren. Fügen Sie Folgendes in den Build-Befehl ein:

apt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt
FeldWert
RuntimePython (beliebige Version)
Build Commandapt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt
Start Commandgunicorn -w 1 -b :8080 app:app
Port8080

Geben Sie diese Werte in die entsprechenden Felder ein.

4. Greifen Sie auf Ihre App zu

Sobald die Bereitstellung erfolgt ist, sehen Sie eine URL wie foo-bar.leapcell.dev auf der Bereitstellungsseite. Verwenden Sie diese Domain, um Ihre App zu testen.

Kontinuierliche Bereitstellungen

Jeder Push in den verknüpften Branch löst automatisch einen Build und eine Bereitstellung aus. Wenn ein Build fehlschlägt, bleibt die aktuelle Version bis zur nächsten erfolgreichen Bereitstellung live.

Erfahren Sie mehr über Kontinuierliche Bereitstellungen.