2016-03-29 8 views

Antwort

0

Wie Sie vielleicht vermutet haben, gibt es in Swift keine integrierte Funktionalität für die Videoumwandlung. Es gibt jedoch einen Mechanismus zum Hinzufügen zusätzlicher Verarbeitungslogik, wo Sie einen Transcoder implementieren könnten. Dieser Mechanismus heißt "middleware" und ist im Wesentlichen nur eine sehr einfache Python-API, die Sie implementieren. Stellen Sie Ihre Implementierung dann in ein spezielles Verzeichnis, in das der Proxy sie beim Start lädt.

So können Sie eine Middleware schreiben, die ausgelöst wird, wenn eine Datei hochgeladen wird, die Erweiterung überprüfen, die Transcodierung durchführen und dann eine weitere Anforderung zum Speichern dieser Datei zusätzlich zur ursprünglichen Datei (oder anstelle der ursprünglichen Datei) ausgeben.

Es gibt nur einen kleinen Haken ... Das würde Ihren Cluster in die Knie zwingen, weil Middleware-Aufrufe die Proxy-Worker blockieren. Wenn Sie überhaupt Wert auf Leistung legen, muss dies asynchron erfolgen. Um das zu tun, gibt es nur eine Lösung, die ich kenne:

Implementieren Sie die Transcodierungslogik in Java und nutzen Sie die Storlets middleware. Storlets führen Ihre benutzerdefinierte Logik auf einem Pool von Rechenressourcen in Docker-Containern aus, ohne den Proxy zu blockieren (zu viel).

Ich weiß, es klingt kompliziert. Aber Sie sind an der Spitze einer mutigen neuen Grenze in der Speichertechnologie.