Linux-Jobwarteschlange für die FFmpeg-Konvertierung

1682
Flock Dawson

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

Daher müssen die Videodateien in das richtige Format (mp4, ogg, webm) konvertiert werden, um die Kompatibilität mit den verschiedenen Browsern zu gewährleisten.

Bisher habe ich ein bash-Skript geschrieben, das den Trick mit FFmpeg macht. 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 eine Warteschlange stellt, sodass nur eine Instanz gleichzeitig ausgeführt werden kann. Ich habe es mit dem Batch-Befehl versucht, finde aber nicht viele Informationen zur Verwendung. Ich habe auch überlegt, eine Named Pipe zu erstellen, auch ohne Erfolg.

Jede Hilfe sehr geschätzt

2
Etwas abseits des Themas, aber Sie müssen sich wahrscheinlich nicht mit ogg für HTML5-Videos beschäftigen - mp4 und webm werden alle wichtigen Webbrowser (und auch die meisten kleineren) abdecken. evilsoup vor 11 Jahren 0

2 Antworten auf die Frage

1
LtWorf

Speichern Sie alle vollständig hochgeladenen Dateien in einem Verzeichnis mit der von Ihnen verwendeten Web-Sprache.

Dann können Sie einen Cronjob mit Ihrem Skript einplanen, um beispielsweise jede Stunde auszuführen und die Videos im ausstehenden Verzeichnis / zu konvertieren.

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

Innerhalb des Skripts können Sie mit nice die Priorität reduzieren, sodass der Webserver eine höhere Priorität hat.

Vielen Dank für Ihre Antworten. Ich bin wirklich dankbar für die Mühe, die ich mit der Implementierung einer einfachen Warteschlange in bash beendet habe, basierend auf den Informationen, die ich auf dieser Website gefunden habe: http://andrew-hills.blogspot.be/2008/02/simple-bash-based -queue-system.html Flock Dawson vor 11 Jahren 0
0
cbxbiker61

Ich habe einen Python3-Video-Kodierungsserver für meine interne Verwendung erstellt. Mit ein paar Mods sollte es den Trick für dich tun. Bei meinem Python-Server müssen Sie lediglich einen Symlink in einem speziellen Warteschlangenverzeichnis erstellen und von dort aus verwalten. Er behandelt auch das kommerzielle Überspringen (von dem ich der Linux-Portier bin), das Sie auskommentieren könnten, wenn Sie es sind nicht daran interessiert.

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

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