Bereitstellung einer FFmpeg-App auf Leapcell
Wenn die folgende Lösung Ihr Problem nicht behebt, können Sie sich gerne unserer Leapcell Discord Community anschließen, um weitere Unterstützung zu erhalten.
Sie können eine Flask Python App, die FFmpeg zur Verarbeitung von Videos oder Bildern verwendet, in wenigen Schritten auf Leapcell bereitstellen. Diese Anleitung demonstriert die Verwendung von Flask als Schnittstelle zur Handhabung von FFmpeg-Operationen, indem Dateien über Flask hochgeladen werden, die dann mit FFmpeg verarbeitet werden.
Dieser Schnellstart verwendet eine Beispiel-Flask-App, die FFmpeg-Befehle ausführt, die Sie an Ihre Bedürfnisse anpassen können.
Sie benötigen ein GitHub-Konto, um fortzufahren. Wenn Sie noch keines 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
Sie können das Ergebnis von /tmp/output_video.{output_format}
in Object Storage oder andere Dienste hochladen.
2. Erstellen Sie einen Dienst im Leapcell Dashboard und verbinden Sie Ihr neues Repository
Gehen Sie zum Leapcell Dashboard und klicken Sie auf die Schaltfläche Neuer Dienst.
Wählen Sie auf der Seite "Neuer Dienst" das Repository aus, das Sie gerade geforkt haben.
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 bei der Erstellung die folgenden Werte an:
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
Feld | Wert |
---|---|
Runtime | Python (Beliebige Version) |
Build Command | apt-get update && apt-get install -y ffmpeg && pip install -r requirements.txt |
Start Command | gunicorn -w 1 -b :8080 app:app |
Port | 8080 |
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.