Linux-Jobwarteschlange für FFmpeg-Konvertierung


2

Ich starte einen Debian-Webserver, auf dem eine Website gehostet wird, auf der Benutzer Videodateien hochladen und abspielen können.

Daher müssen die Videodateien in das richtige Format (mp4, ogg, webm) konvertiert werden, damit sie mit den verschiedenen Browsern kompatibel sind.

Bisher habe ich ein Bash-Skript geschrieben, das den Trick mit FFmpeg ausführt. Das Problem ist, wenn viele Benutzer gleichzeitig ein Video hochladen, wird mein Webserver sehr langsam.

Ich suche nach einer kurzen und einfachen Lösung, die verschiedene Aufrufe des Konvertierungsskripts in die Warteschlange stellt, sodass nur eine Instanz gleichzeitig ausgeführt werden kann. Ich habe versucht, den Batch-Befehl zu verwenden, kann aber nicht viele Informationen zur Verwendung finden. Ich habe auch überlegt, eine Named Pipe zu erstellen, auch ohne Erfolg.

Jede Hilfe sehr geschätzt


Etwas abseits des Themas, aber Sie müssen sich wahrscheinlich nicht mit OGG für HTML5-Videos befassen - mp4 und webm decken alle wichtigen Webbrowser ab (und die meisten kleineren auch).
Übelsuppe

Antworten:


1

Legen Sie alle hochgeladenen Dateien in einem Verzeichnis ab, unabhängig von der verwendeten Web-Sprache.

Dann können Sie mit Ihrem Skript einen Cronjob planen, der beispielsweise stündlich ausgeführt wird und die Videos konvertiert, die sich im Verzeichnis pending / befinden.

Möglicherweise möchten Sie Flock verwenden, damit nur eine Instanz dieses Skripts gleichzeitig ausgeführt werden kann, selbst wenn es länger als erwartet dauert und cron ein anderes Skript startet.

Innerhalb des Skripts können Sie nice verwenden, um dessen Priorität zu verringern, sodass der Webserver eine höhere Priorität hat.


Vielen Dank für Ihre Antworten. Ich freue
Flock Dawson

0

Ich habe einen Python3-Videocodierungsserver für den internen Gebrauch erstellt. Mit ein paar Mods sollte es den Trick für Sie tun. Mit meinem Python-Server müssen Sie lediglich einen Symlink in einem speziellen Warteschlangenverzeichnis erstellen und diesen von dort aus bearbeiten. Außerdem können Sie das kommerzielle Überspringen (von dem ich der Linux-Portierer bin) auskommentieren das interessiert mich nicht.

http://www.xilka.com/xilka/source/VideoEncodeServer.py

http://www.xilka.com/xilka/source/VideoToCuBox.py

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.