2016-07-10 20 views
0

Ich habe einen VLC-Player auf einem Windows 2012-Server installiert. Ich möchte meinen Input-.ogg-Stream mit dem vlc-Player in .mp3 umcodieren. Ich habe eine Web-App, die .ogg Stream produzieren und wenn ein Benutzer auf Convert-Button auf meiner Web-App klicke, möchte ich ein Javascript ausführen, das .ogg stream als meine Eingabe nehmen und einen Windows-Befehl zu vlc player auf dem Server ausführen soll Startet die Transkodierung. Ich habe den Windows-Befehl, um ein .ogg zu .mp3 mit vlc zu transcodieren, aber ich möchte, dass dies programmatisch geschieht. Klicken Sie auf eine Schaltfläche, um auf die Befehlszeile zuzugreifen und einen Windows-Befehl auszuführen?Führen Sie VLC Player von Javascript mit Windows-Befehl

+0

Sollte das Zielsystem nur Windows sein? – StanE

+0

@Stane Ja. Es wird Windows sein. Mach dir keine Sorgen über das Ziel. Ich könnte oder könnte nicht die transcodierte Datei speichern. Ich brauche nur einen Weg, wie ich einen Windows-Befehl von einem Javascript ausführen kann. Oder wenn es einen anderen besseren Weg gibt, einen Windows-Befehl von einer Web-App auszuführen. –

Antwort

0

Ich glaube nicht, dass dies mit JavaScript möglich ist, ohne das Client-System zu manipulieren. Es wäre zu gefährlich, wenn jede Website Befehle auf dem Client-System ausführen könnte. JavaScript in Browsern wird in einer Sandbox ausgeführt, was bedeutet, dass es nicht auf das System zugreifen und Befehle ausführen kann.

Aber wenn Sie die Möglichkeit haben, das System zu manipulieren, dann könnten Sie das tun, denke ich. Zumindest in Windows. Sie könnten der Windows-Registrierung ein neues Pseudo-Protokoll hinzufügen und es mit dem VLC-Player verknüpfen. Ähnlich wie es andere Apps tun, zum Beispiel Torrent-Clients, jDownloader oder IRC-Clients. Dann könnten Sie ein Popup mit einem solchen Protokoll-Adresse eingeben oder öffnen, wie

vlcurl:your-data-comes-here 

Ein Arbeitsbeispiel ist die E-Mail-Pseudo-Protokoll, dass Sie jetzt in Ihrem Browser ausprobieren können:

mailto:test%40example.com?subject=Hello%20you 

Hier ist ein Beispiel:

Aber aufgepasst! Dies kann das Client-System anfällig für Angriffe aus dem Internet machen. Ich zeige es nur als Beispiel und ich würde nicht vorschlagen, diese Methode zu verwenden. Dies funktioniert auch nicht in allen Browsern. Einige Browser behandeln die Einstellung des Registrierungssystems überhaupt nicht und einige zeigen Ihnen einen Dialog an, den Sie akzeptieren müssen. Die Möglichkeiten sind also begrenzt. Ein Registrierungsdateibeispiel:

Windows Registry Editor Version 5.00 

[HKEY_CLASSES_ROOT\vlcurl] 
@="VLC player URL" 
"FriendlyTypeName"="VLC player URL" 
"URL Protocol"="" 
"EditFlags"=dword:00000002 

[HKEY_CLASSES_ROOT\vlcurl\DefaultIcon] 
@="C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe,0" 

[HKEY_CLASSES_ROOT\vlcurl\shell] 

[HKEY_CLASSES_ROOT\vlcurl\shell\open] 

[HKEY_CLASSES_ROOT\vlcurl\shell\open\command] 
@="\"C:\\Program Files (x86)\\VideoLAN\\VLC\\vlc.exe\" \"%1\"" 

Sie müssten die letzte Zeile bearbeiten. Dann könnten Sie die URL, die ich oben geschrieben habe, ausführen ("vlcurl: your-data-come-here").

Eine andere Möglichkeit wäre, ein eigenes Browser-Plugin/Addon wie Flash zu verwenden, das die Sandbox des Browsers umgeht (afaik).