shepherd81
Goto Top

GUI (Programm) in Homepage (wordpress) integrieren?

Hallo Experten,

ich bin am starten eines Home-Projekts für eine Homepage die ich demnächst mit wordpress aufziehen will.
Dazu möchte ich als Test, ein kleines Programm schreiben, dass in Form einer GUI es mir ermöglicht ffmpeg über diese GUI zu steuern. (Zugriff wird nur mit login von mir aus möglich sein).
Quasi einfach Dateigröße maximal 5MB hochladen, auswählen eines encoders bzw Ausgabe-form (mp4,avi,mkv) und dann Ausgabeort auf meinem PC auswählen.

Grundsätzlich hätte ich da 2 Fragen:
1.Welchen Ansatz sollte ich angehen um dieses GUI in meiner HP zu integrieren? Ist es am besten mit Java,Python oder irgendetwas anderem zu realisieren?
2. Wird bei meinem vorhaben die Rechenleistung von meinem web-host genommen oder von meinem PC und kann ich das irgendwie steuern?

Falls euch aus Erfahrung noch irgendwelche anderen Tips, Show-Stopper oder Bedenken dazu einfallen, bitte nur zu....


Vielen Dank erstmal,
Shepherd

Content-ID: 3122827690

Url: https://administrator.de/contentid/3122827690

Printed on: December 13, 2024 at 12:12 o'clock

Mika909
Mika909 Jun 20, 2022 at 08:47:33 (UTC)
Goto Top
Eigentlich ist Wordpress deine GUI oder/und willst Du ein "GUI-Programm" in Wordpress implementieren? Du meinst sicherlich sowas hier: https://github.com/ffmpegwasm/ffmpeg.wasm
148523
148523 Jun 20, 2022 at 09:24:17 (UTC)
Goto Top
maretz
maretz Jun 20, 2022 at 10:27:37 (UTC)
Goto Top
Generell kannst du sowas natürlich einfach in PHP bauen. Du kannst ja auch bei Wordpress auf der Filesystem-Ebene eigene Ordner erzeugen in denen du eigene Scripte hast - aufruf dann halt mit http://www.meinedomain.de/meinOrdner/meinePHP.php (oder ne index-file reinwerfen über die du das Login steuerst).

Genutzt wird immer die Rechnenleistung des Rechners wo FFMPEG drauf läuft - es wäre auch sinnlos da die Rechenleistung vom Client zu nehmen da die Anbindung deutlich zu lahm wäre.

Generell halt ein einfaches upload-script mit nem php-exec hinterher. Ich würde nur vorsichtig sein was die möglichkeiten einer Injection angeht -> daher nicht den Befehl sondern die Parameter wenn möglich nur als Dropdown. Nicht das jemand nen && rm -rf / hinter schiebt und dein Server meint er führt das mal mit root aus ;)
Shepherd81
Shepherd81 Jun 20, 2022 at 12:11:50 (UTC)
Goto Top
Zitat von @maretz:

Generell kannst du sowas natürlich einfach in PHP bauen. Du kannst ja auch bei Wordpress auf der Filesystem-Ebene eigene Ordner erzeugen in denen du eigene Scripte hast - aufruf dann halt mit http://www.meinedomain.de/meinOrdner/meinePHP.php (oder ne index-file reinwerfen über die du das Login steuerst).

Genutzt wird immer die Rechnenleistung des Rechners wo FFMPEG drauf läuft - es wäre auch sinnlos da die Rechenleistung vom Client zu nehmen da die Anbindung deutlich zu lahm wäre.

Generell halt ein einfaches upload-script mit nem php-exec hinterher. Ich würde nur vorsichtig sein was die möglichkeiten einer Injection angeht -> daher nicht den Befehl sondern die Parameter wenn möglich nur als Dropdown. Nicht das jemand nen && rm -rf / hinter schiebt und dein Server meint er führt das mal mit root aus ;)

Ja danke erstmal, ich werde es mir mal mit Java oder Javascript anschauen und wenn ich dort nicht dorthin komme wohin ich will, mit Python oder PHP.

Auf jeden fall will ich nur einfache check-buttons einbauen wo jemand optionen entweder nur enablen oder disablen kann und nichts wildes, da ich nur ca. 3 bis 4 Optionen bei ffmpeg brauche.
Auf keinen Fall eine Befehlszeileneingabe!
Ein Webcam-Zugriff soll später auch noch dazu kommen. Da muss ich mir noch was ausdenken für die Portweiterleitung am Router.
MirkoKR
MirkoKR Jun 20, 2022 at 12:13:54 (UTC)
Goto Top
Deine WebGUI - Wordpress - dient nur der Eingabe/Auswahl der Parameter und des Quellstreams...

... das ganze lädst du - per POST z.B. - auf deinen Webserver ..

Dort werden dann im Hintergrund Skripte/Programme angestoßen die deine Verarbeitung mit den Parametern ausführen ...

... und das Ergebnis danach an die WebGUI zurückgeliefert...
maretz
maretz Jun 20, 2022 at 12:34:18 (UTC)
Goto Top
na - viel erfolg.. Mit Java wird das nix (weil Java ist für applikationen gedacht), da könntest du höchstes ne Webapp via Apache Tomcat z.B. bauen. JavaSCRIPT wird idR Clientseitig ausgeführt - da wird es nen Problem das du dann was auf dem Server ausführen willst...
Shepherd81
Shepherd81 Jun 21, 2022 updated at 14:21:32 (UTC)
Goto Top
Zitat von @maretz:

na - viel erfolg.. Mit Java wird das nix (weil Java ist für applikationen gedacht), da könntest du höchstes ne Webapp via Apache Tomcat z.B. bauen. JavaSCRIPT wird idR Clientseitig ausgeführt - da wird es nen Problem das du dann was auf dem Server ausführen willst...

Ok, ich will es sowieso auf 2 Arten lösen. Einmal als Standalone-App in Java und dann als im Web implementierte Seite.
Deshalb frage ich mich wie ein https://mp3cut.net/de oder ein https://www.online-convert.com/de dass dann umsetzt!?
Wird ja nicht so eine Hexerei sein das mir das wer sagen kann womit man das am besten implementiert?
Soweit sehen die ersten beiden Antworten ja nach JavaScript aus. Und es als PHP-Script per Link aufzurufen gefällt mir momentan nicht so sonderlich, mal schauen.
MirkoKR
MirkoKR Jun 21, 2022 updated at 15:25:36 (UTC)
Goto Top
Zitat von @Shepherd81:

Soweit sehen die ersten beiden Antworten ja nach JavaScript aus. Und es als PHP-Script per Link aufzurufen gefällt mir momentan nicht so sonderlich, mal schauen.

Dürfte in so weit Javascript auf der Clientseite benutzt werden, das Parameter und Stream nicht sichtbar als .php Link mit POST Daten verschickt werden, sondern die Kommunikation via "AJAX" - Javascript in dynamisch ... - stattfindet...

letztlich werden aber genauso Links mit POST Daten verwendet, aber eben im Hintergrund dynamisch ....
.

Edit: Wenn du in deinem Browser bei den Seiten das Developer-Fenster öffnest, kannst du machvollziehen. was passiert, wenn du etwas auswählst, erc - sprich, die Kommunikation zwischen Ajax-Client und Server beobachten ...

Edit2: Natürlich gibt es noch eine Reihe anderer Protokolle, wo Client und Server dynamisch Daten austauschen können...
Ein viel verwendetes ist z.B. ws / wss - WebSocket / WebsocketSecure : hier bleibt die Verbindung bestehen, solange sie gebraucht wird und es werden nur die "Nutzdaten" ausgetauscht, dieses auch durch Push, statt Pull... - Requests - http/https - brauchts da normal nur beim Verbindungsaufbau ...
maretz
maretz Jun 22, 2022 at 03:58:18 (UTC)
Goto Top
Naja - mit etwas überlegen könnte der TO auch selbst drauf kommen das eine Clientseitige Ausführung keinen Sinn macht. Denn was passiert wenn ich das ganze z.B. hier aufm Tablet aufrufe? Leider gibts hier kein ffmpeg o.ä was ausgeführt werden könnte.

Wenn man sowas wirklich bauen will dann würde ich in dem Fall das ganze als Java-Webapplikation im Tomcat laufen lassen. Da kann man dann mit verhältnismässig wenig Aufwand sowohl die Webseite in PHP wie auch ne Applikation dranpacken - da es dem Webinterface natürlich egal ist woher die Daten kommen solang die _passend_ kommen. Wäre zwar meiner Meinung nach nen Overkill für so eine Anwendung, aber wer spass dran hat....
MirkoKR
MirkoKR Jun 22, 2022 at 04:18:12 (UTC)
Goto Top
Zitat von @maretz:


Wenn man sowas wirklich bauen will dann würde ich in dem Fall das ganze als Java-Webapplikation im Tomcat laufen lassen.

Irreführend: Tomcat ist eine Server-Applikation, die Java nutzt..., also auch wieder Server-seitig ...

.
maretz
maretz Jun 22, 2022 at 04:29:41 (UTC)
Goto Top
Zitat von @MirkoKR:

Zitat von @maretz:


Wenn man sowas wirklich bauen will dann würde ich in dem Fall das ganze als Java-Webapplikation im Tomcat laufen lassen.

Irreführend: Tomcat ist eine Server-Applikation, die Java nutzt..., also auch wieder Server-seitig ...

.

natürlich - habe ich was anderes behauptet? Clientseitig macht das eben keinen Sinn wenn es auf ner Webseite (wordpress) eingebunden werden soll... Und natürlich kann man sich die Arbeit auch 5x machen: einmal ne java-applikation für lokal schreiben (was dann wieder vorraussetzt das man den ganzen ffmpeg-kram auch lokal installiert hat, pfade stimmen,...) und dann irgendwas für die webseite was aber eh wieder aufm Server irgendwie ausgeführt werden muss (wenn man annimmt das nicht jeder die Programme installiert hat).

Oder man schreibt eben EINE Applikation aufm Server und hängt die clients ran. Wie erwähnt ist es imo. eh nen völlig sinnloser Overkill - da ich das reine konvertieren mit ner Handvoll Zeilen in PHP bauen kann (was vermutlich für ne WP-Installation eh vorhanden ist). Es wäre also höchstens in der Kategorie "Aus Spass an der Freude programmiert" zu sehen, SINN macht es nicht.
MirkoKR
MirkoKR Jun 22, 2022 at 04:41:39 (UTC)
Goto Top
Im Prinzip kann man schon eine pauschale Faustformel vorgeben:

Wenn das, was TO als Beispiel-Sites vorgegeben hat auf einem - sagen wir mal 10 Jahre alten Rechner über eine - sagen wir mal - 10 MBit Leitung geladen würde ...

... bräuchte es > 5 Minuten bis die Javascript-Bibliotheken oder das Java-"Programm" geladen sind um das zu können, was angeboten wird...
...die Bearbeitung würde schon. gar keinen Spass machen - schon weil ein älterer Rechner bis zu Stunden brauchen würde ...

Mal nebenbei bemerkt würden dabei auch die Quellen offen gelegt, was kein Programmierer will...

Die Kommunikation per Request ist dabei auch nicht mehr zeitgemäß, weil der Nutzer heute erleben will. was er macht...

Bleibt also nur AJAX, etc. für kurze Kommunikation oder wss, etc für Interaktion .....

Auf jedenfall benötigt es serverseitige [hoch]performante Programmteile um schnell Benutzeransprüche und gutes Nutzerfeeling zu erfüllen ...

.
Shepherd81
Shepherd81 Jun 22, 2022 at 08:29:24 (UTC)
Goto Top
Zitat von @maretz:

Zitat von @MirkoKR:

Zitat von @maretz:


Wenn man sowas wirklich bauen will dann würde ich in dem Fall das ganze als Java-Webapplikation im Tomcat laufen lassen.

Irreführend: Tomcat ist eine Server-Applikation, die Java nutzt..., also auch wieder Server-seitig ...

.

natürlich - habe ich was anderes behauptet? Clientseitig macht das eben keinen Sinn wenn es auf ner Webseite (wordpress) eingebunden werden soll... Und natürlich kann man sich die Arbeit auch 5x machen: einmal ne java-applikation für lokal schreiben (was dann wieder vorraussetzt das man den ganzen ffmpeg-kram auch lokal installiert hat, pfade stimmen,...) und dann irgendwas für die webseite was aber eh wieder aufm Server irgendwie ausgeführt werden muss (wenn man annimmt das nicht jeder die Programme installiert hat).

Oder man schreibt eben EINE Applikation aufm Server und hängt die clients ran. Wie erwähnt ist es imo. eh nen völlig sinnloser Overkill - da ich das reine konvertieren mit ner Handvoll Zeilen in PHP bauen kann (was vermutlich für ne WP-Installation eh vorhanden ist). Es wäre also höchstens in der Kategorie "Aus Spass an der Freude programmiert" zu sehen, SINN macht es nicht.

Da stellt sich bei mir die Frage, warum in 2022 dass noch immer als ein Overkill gilt wo es doch für 10000 andere Sachen schon 10.000 Automationen gibt!
Ich mache das für meine privaten Zwecke, für mich ist es also sehr sehr sinnvoll.
Mir stellt sich lediglich die Frage, da viele Wege nach Rom führen, was der effektivste und zeitgleich effizienteste Weg wäre um genau das zu realisieren was ich geschrieben habe.
Weil nur anhand der vielen unterschiedlichen Antworten hier sieht es danach aus, dass es extrem umständlich umzusetzen sein wird. Aber das is ja die Challenge!
MirkoKR
MirkoKR Jun 22, 2022 at 08:44:52 (UTC)
Goto Top
... Habe versucht, sinnvoll zu quoten:

Aber: Client und Server-seitige Rechnertätigkeit ist wohl der Schlüssel ......

..
Shepherd81
Shepherd81 Jun 22, 2022 at 09:12:41 (UTC)
Goto Top
Zitat von @MirkoKR:

... Habe versucht, sinnvoll zu quoten:

Aber: Client und Server-seitige Rechnertätigkeit ist wohl der Schlüssel ......

..

Wenn das an mich gerichtet ist, dann ist dein Ansatz viel zu subtil oder abstrakt für mein kleines Programmier-Hirn.
Das ist wie wenn ich Frage: Wohin geht's am schnellsten zum Rathaus und deine Antwort lautet: Folge deiner Nase, es wird ein größeres Gebäude sein! ;)

Wenn, dann brauche ich konkrete Beispiele mit konkreten Schritten.
"Client und Server-seitige Rechnertätigkeit" sagt mir leider überhaupt garnichts. Bin wohl zu doof! 8(
maretz
maretz Jun 22, 2022 at 12:19:01 (UTC)
Goto Top
"Weil nur anhand der vielen unterschiedlichen Antworten hier sieht es danach aus, dass es extrem umständlich umzusetzen sein wird. Aber das is ja die Challenge!"

Nein, wenn du oben mal genau liest ist das eigentlich eben _keine_ challenge, sondern ne handvoll Zeilen in PHP...

Was hast du denn da? Nen simples File-Upload-Form was die Datei irgendwo aufm Server ins Filesystem haut. Ok, is jetzt nix ungewöhnliches... Dann hast du noch nen kleines php-exec - was am ende nur dein ffmpeg-kommando aufruft. Auch nicht weiter wild. Und in deinem Upload-Form noch ne Handvoll Dropdowns was eben bestimmte Parameter an das Exec übergibt.

Eben deshalb ist es völlig überdimensioniert hier mit nem Tomcat und ner Java-Applikation ranzugehen... Es wäre was anderes wenn du z.B. das FFMPeg-Gedöns da auch selbst nachprogrammieren würdest (was auch sinnfrei wäre da es genau das ja schon gibt). Aber wenn es lediglich darum geht ne Datei hochzuladen und eben nen Linux-Shell-Kommando drauf anzusetzen ist das ganze in PHP in ner Stunde oder 2 zusammengenagelt. Da ist also jetzt nix wirklich ne "Challenge"...